use*_*627 0 c++ windows winapi visual-c++
DISK_PERFORMANCE DiskPerformance = {0};
DWORD dwDiskInfoSize = 0;
for (int i = 0; i < 10; i++)
{
std::printf("Try %d th Open \\\\.\\c:\n", i);
HANDLE hDevice = CreateFile(L"\\\\.\\c:",
0,
FILE_SHARE_READ | FILE_SHARE_WRITE,
//SYNCHRONIZE | FILE_READ_ATTRIBUTES,
NULL,
OPEN_EXISTING,
0,
NULL);
std::printf("hDevice = %p\n", hDevice);
if (hDevice == INVALID_HANDLE_VALUE)
{
std::printf("CreateFile failed = %d \n", GetLastError());
continue;
}
if (!DeviceIoControl(hDevice,
IOCTL_DISK_PERFORMANCE,
NULL,
0,
&DiskPerformance,
sizeof(DiskPerformance),
&dwDiskInfoSize,
NULL))
{
CloseHandle(hDevice);
std::printf("DeviceIoControl failed = %d \n", GetLastError());
continue;
}
std::printf("QuDeviceIoControlery Success\n");
CloseHandle(hDevice);
Sleep(1000);
std::printf("\n\n");
}
Run Code Online (Sandbox Code Playgroud)
我重新启动程序,大约 95% DeviceIoControl 将得到error 2,5% 得到正确结果......
我无法在另一台机器上重现该错误,因为此代码在我的笔记本电脑 (win10) 上 100% 有效。
我的目标操作系统是 Windows Server 2016。