ReaFile считать 0 байт

191
20 мая 2018, 22:00

Вопрос на теорию.
Есть функция ОС 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 байт игнорируются).

READ ALSO
Как установить флаги компилятор через cmake?

Как установить флаги компилятор через cmake?

столкнулся с проблемой, для компилирования программы надо указать gcc флаги -I -L -lТак вот не получается установить данные флаги в cmake

312
Как можно синхронизировать C++ и Python

Как можно синхронизировать C++ и Python

Всем привет! Столкнулся с такой необходимостью, у меня есть код, написанный на C++ это программа со статистикой(там диаграмма и графики)И есть...

205
Библиотеки для распознавания речи [требует правки]

Библиотеки для распознавания речи [требует правки]

Какие библиотеки лучше использовать? Какие книги, мануалы посоветуетеСпасибо

235
Скомпилировать dll в Сlion под ubuntu

Скомпилировать dll в Сlion под ubuntu

Как скомпилировать dll в Сlion под ubuntu, компилятор g++, сборщик Cmake

196