首页
社区
课程
招聘
[求助]读取磁盘OK,读取卷错误
发表于: 2010-6-3 11:10 4361

[求助]读取磁盘OK,读取卷错误

2010-6-3 11:10
4361
很简单的代码,我打开PhysicalDrive1就可以,但打开C:就错误,请问这是为什么?
#include <stdio.h>
#include <windows.h>
#include <winioctl.h>

int main(void)
{
	//LPCTSTR lpszDevice = "\\\\.\\PhysicalDrive1";
	LPCTSTR lpszDevice = "\\\\.\\C:";
	HANDLE hDevice = CreateFile(lpszDevice,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL);

	if (!hDevice || (hDevice==(HANDLE)-1))
	{
		printf("Open Device error:0x%x\n",GetLastError());
		return -1;
	}

	DWORD temp;
	const int SECTOR_SIZE = 512;
	UCHAR buffer[SECTOR_SIZE];
	ReadFile(hDevice,buffer,SECTOR_SIZE,&temp,NULL);

	CloseHandle(hDevice);

	return 0;
}

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 63
活跃值: (17)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
FILE_SHARE_READ
->
FILE_SHARE_WRITE | FILE_SHARE_READ
2010-6-3 11:57
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
真是高手啊!我只想读,为什么还要加上FILE_SHARE_WRITE ?
2010-6-3 12:39
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
4
你想读没错,但是你读的时候还不想让人写,对于系统盘来说可能非常困难。。。
2010-6-3 13:30
0
雪    币: 133
活跃值: (113)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
2楼的答案我也是无意中试出来的。抓狂了好几天。
2010-6-3 23:06
0
游客
登录 | 注册 方可回帖
返回
//