Программа работает нормально в течение нескольких минут, а затем ReadFile начинает сбой с кодом ошибки ERROR_WORKING_SET_QUOTA.Вызов ReadFile return ERROR_WORKING_SET_QUOTA
Я использую ReadFile с перекрытого ввода/вывода, как так:
while (continueReading)
{
BOOL bSuccess = ReadFile(deviceHandle, pReadBuf, length,
&bytesRead, readOverlappedPtr);
waitVal = WaitForMultipleObjects(
(sizeof(eventsToWaitFor)/sizeof(eventsToWaitFor[0])),
eventsToWaitFor, FALSE, INFINITE);
if (waitVal == WAIT_OBJECT_0) {
// do stuff
} else if (waitVal == WAIT_OBJECT_0 + 1) {
// do stuff
} else if (waitVal == WAIT_OBJECT_0 + 2) {
// complete the read
bSuccess = GetOverlappedResult(deviceHandle, &readOverlapped,
&bytesRead, FALSE);
if (!bSuccess) {
errorCode = GetLastError();
printf("ReadFile error=%d\n", errorCode);
}
}
}
Почему я получаю эту ошибку?
Ближе. Но на самом деле проверка того, что ReadFile возвращает FALSE и GetLastError(), возвращает ERROR_IO_PENDING * очень важно. Чтение файлов часто завершается немедленно, когда данные поступают из кеша файловой системы. –
Спасибо, обновлено, чтобы включить ваши предложения. –