0

在 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 );

知道为什么吗???

4

2 回答 2

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()。

于 2012-09-12T17:35:23.100 回答
0

用这个:

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

它对我有用。

于 2015-07-07T11:12:13.443 回答