Вопрос на теорию.
Есть функция ОС ReadFile (https://msdn.microsoft.com/en-us/library/windows/desktop/aa365467%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396)
Параметр nNumberOfBytesToRead = 0.
Т.е. мы пытаемся считать 0 байтов из файла (файл = ком-порт, открытый в асинхронном режиме).
Большую часть времени такие операции проходят успешно, но иногда, по непонятным мне причинам ReadFile выполняется неуспешно и выплевывает код ошибки 1784 "The supplied user buffer is not valid for the requested operation." (1784 "Имеющийся буфер не подходит для указанной операции.")
Вопрос, какое поведение функции ReadFile является правильном при указании nNumberOfBytesToRead = 0.
UPD: на мсдн написано, что 1784 ERROR_INVALID_USER_BUFFER выплевывается в случае большого количества асинхронных запросов, однако применение ф-ций CancelIo результата не дает. Ошибки полностью исчезают (на сколько я могу протестировать) при вставке проверки на количество запрашиваемых байт (т.е. все запросы на чтение 0 байт игнорируются).
Сборка персонального компьютера от Artline: умный выбор для современных пользователей