用ReadFile()读取CF卡raw data有问题,各位高手请支招

rokiechen 2005-11-09 09:26:10
试图用以下代码读取CF卡原始数据,

HANDLE hPhysicalDrive = CreateFile("\\\\.\\PhysicalDrive2",
GENERIC_READ ¦ GENERIC_WRITE,
FILE_SHARE_READ ¦ FILE_SHARE_WRITE,
0, OPEN_EXISTING, 0, 0 );

char buff[1024];
DWORD iRead, dwError;
BOOL bResult;

bResult=ReadFile(hPhysicalDrive, buff, 10, &iRead, NULL);

返回句柄看上去是正常的。

在ReadFile时,bResult=0,GetLastError=87 (invalid parameter)。
用本地文件替代"\\\\.\\PhysicalDrive2",能够顺利读出内容。

不知道为什么出错,是否需要提升程序权限?
我是以Administrator登陆的。
...全文
138 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
rokiechen 2005-11-09
  • 打赏
  • 举报
回复
这是用DeviceIOControl取到的physicaldisk信息:
Geometry of \\.\PhysicalDrive0:
Cylinders = 2432
Tracks/cylinder = 255
Sectors/track = 63
Bytes/sector = 512
Disk size = 20003880960 (Bytes) = 18 (Gb)

Geometry of \\.\PhysicalDrive2:
Cylinders = 7
Tracks/cylinder = 255
Sectors/track = 63
Bytes/sector = 512
Disk size = 57576960 (Bytes) = 0 (Gb)

看上去,\\.\PhysicalDrive2应该是存在并且能够识别的。

2,643

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧