【发布时间】:2018-01-07 15:59:52
【问题描述】:
这段代码在 Windows 7 上启动时非常好:
HANDLE hVol = CreateFile(L"\\\\.\\c:", GENERIC_WRITE | GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
// hVol is always successful (both of Win7 and 10), I double-checked
BYTE pData[sizeof(DWORDLONG) + 0x10000];
DWORD cb;
MFT_ENUM_DATA med;
med.StartFileReferenceNumber = 0;
med.LowUsn = 0;
med.HighUsn = MAXLONGLONG;
DeviceIoControl(hVol, FSCTL_ENUM_USN_DATA, &med, sizeof(med), pData, sizeof(pData), &cb, NULL);
err = GetLastError();
但在 Windows 10 上运行时出现错误 87 (ERROR_INVALID_PARAMETER)。可能是什么原因?
【问题讨论】:
-
为什么指定
GENERIC_WRITE?你似乎只是在阅读。
标签: c++ windows winapi ntfs deviceiocontrol