我想将文件IO设置为低优先级而不更改线程优先级,所以我使用如下的SetFileInformationByHandle:
FILE_IO_PRIORITY_HINT_INFO priorityHint;
priorityHint.PriorityHint = IoPriorityHintVeryLow;
bool result = SetFileInformationByHandle(desHandle,
FileIoPriorityHintInfo,
&priorityHint,
sizeof(priorityHint));
我创建这样的文件:
HANDLE desHandle = CreateFile(desPath.c_str(), GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_FLAG_SEQUENTIAL_SCAN, NULL);
每次我像这样写deskandle 4kb数据:
while()
{
....
if (!WriteFile(desHandle, startPtr, numOfEachWrite, reinterpret_cast<LPDWORD> (&numOfBytesWritten), NULL))![enter image description here][1]
{}
...
}
但是当我使用进程监视器来查找只有低优先级的前4kb数据时,所有其他数据都具有正常优先级
答案 0 :(得分:0)
您可能应该尝试使用非缓存IO。在这种情况下,您的意图将完全传递给底层块级驱动程序。优先是毕竟的暗示。