C++ 获取Win10磁盘读写请求百分比
时间: 2024-03-06 14:52:03 浏览: 19
你可以使用Windows API函数来获取Win10磁盘读写请求百分比。具体来说,你可以使用GetDiskFreeSpaceEx和GetDiskIOStatistics这两个函数来获取磁盘的剩余空间和IO统计信息。然后你可以计算出磁盘读写请求的百分比。以下是示例代码:
```c++
#include <Windows.h>
#include <iostream>
int main()
{
ULARGE_INTEGER freeBytesAvailable, totalNumberOfBytes, totalNumberOfFreeBytes;
if (!GetDiskFreeSpaceEx(L"C:\\", &freeBytesAvailable, &totalNumberOfBytes, &totalNumberOfFreeBytes))
{
std::cout << "Error: " << GetLastError() << std::endl;
return 1;
}
HANDLE hDevice = CreateFile(L"\\\\.\\PhysicalDrive0", GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, NULL, NULL);
if (hDevice == INVALID_HANDLE_VALUE)
{
std::cout << "Error: " << GetLastError() << std::endl;
return 1;
}
DISK_PERFORMANCE diskPerformance;
DWORD bytesReturned;
if (!DeviceIoControl(hDevice, IOCTL_DISK_PERFORMANCE, NULL, 0, &diskPerformance, sizeof(diskPerformance), &bytesReturned, NULL))
{
std::cout << "Error: " << GetLastError() << std::endl;
CloseHandle(hDevice);
return 1;
}
CloseHandle(hDevice);
double readPercent = (double)diskPerformance.BytesRead.QuadPart / (double)diskPerformance.BytesRead.QuadPart + diskPerformance.BytesWrite.QuadPart * 100.0;
double writePercent = (double)diskPerformance.BytesWrite.QuadPart / (double)diskPerformance.BytesRead.QuadPart + diskPerformance.BytesWrite.QuadPart * 100.0;
std::cout << "Read Request Percent: " << readPercent << "%" << std::endl;
std::cout << "Write Request Percent: " << writePercent << "%" << std::endl;
return 0;
}
```
这个示例代码使用了C++,并且只是获取了C盘的读写请求百分比。你可以根据需要修改代码来获取其他磁盘的读写请求百分比。