Поделиться через


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

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

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

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

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