在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 );
知道为什么???
答案 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);
这对我有用。