读取mbr时,Createfile失败

时间:2012-09-12 17:24:56

标签: winapi mbr

在WinXP上读取mbr时,Createfile失败。返回-1,即INVALID_DEVICE_HANDLE

HANDLE hDisk = CreateFile((LPCWSTR)"\\\\.\\PhysicalDrive0", GENERIC_READ| GENERIC_WRITE, FILE_SHARE_READ| FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0,NULL );

知道为什么???

2 个答案:

答案 0 :(得分:1)

您忘记将“L”添加到字符串常量“\\。\ PhysicalDrive0”。

HANDLE hDisk = CreateFile(L"\\.\PhysicalDrive0", GENERIC_READ | GENERIC_WRITE,
    FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);

只有在使用API​​的unicode版本时,这才是正确的,即CreateFileW()。

答案 1 :(得分:0)

使用此:

HANDLE hDisk = CreateFile(L"\\\\.\\PhysicalDrive0", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);

这对我有用。