Операции чтения и записи

Windows поддерживает синхронные и асинхронные (перекрывающиеся) операции ввода-вывода файлов в ресурсах последовательной связи. Перекрывающиеся операции позволяют вызывающей потоку выполнять другие задачи во время выполнения операции в фоновом режиме. Поток использует функцию ReadFile или ReadFileEx для чтения из ресурса связи и функции WriteFile или WriteFileEx для записи в ресурс связи. ReadFile и WriteFile можно выполнять синхронно или асинхронно. ReadFileEx и WriteFileEx можно выполнять только асинхронно.

Поведение этих функций чтения и записи зависит от того, выполняется ли функция как перекрываемая операция, связаны ли параметры времени ожидания с дескриптором и связаны ли параметры управления потоком с дескриптором.

Поток также может записывать данные в ресурс связи с помощью функции CommunicationCommChar, которая передает указанный символ перед любыми ожидающих данных в выходном буфере. Эта функция полезна для передачи символа сигнала высокого приоритета принимающей системе. Передача символа высокого приоритета по-прежнему подвержена управлению потоками и времени ожидания записи, и операция выполняется синхронно.

Поток может использовать функцию PurgeComm для удаления всех символов в выходном или входном буфере устройства. PurgeComm также может завершить ожидающие операции чтения или записи, даже если операции не были завершены. Если поток использует PurgeComm для очистки выходного буфера, удаленные символы не передаются. Чтобы очистить выходной буфер при передаче содержимого, поток может вызвать функцию FlushFileBuffers (синхронная операция). Однако обратите внимание, что FlushFileBuffers подвержены управлению потоком, но не записывают время ожидания, и он не возвращается до передачи всех ожидающих операций записи.