Compartilhar via


Operações de leitura e gravação

O Windows dá suporte a operações de E/S de arquivo síncronas e assíncronas (sobrepostas) em recursos de comunicação serial. As operações sobrepostas permitem que o thread de chamada execute outras tarefas enquanto a operação é executada em segundo plano. Um thread usa a funçãoReadFile ouReadFileEx para ler de um recurso de comunicação e a função WriteFile ou WriteFileEx para gravar em um recurso de comunicação. ReadFile e WriteFile podem ser executados de forma síncrona ou assíncrona. ReadFileEx e WriteFileEx só podem ser executados de forma assíncrona.

O comportamento dessas funções de leitura e gravação é afetado por se a função é executada como uma operação sobreposta, se os parâmetros de tempo limite estão associados ao identificador e se os parâmetros de controle de fluxo estão associados ao identificador.

Um thread também pode gravar em um recurso de comunicação usando a função TransmitCommChar, que transmite um caractere especificado antes de qualquer dado pendente no buffer de saída. Essa função é útil para transmitir um caractere de sinal de alta prioridade para o sistema receptor. A transmissão do caractere de alta prioridade ainda está sujeita a controle de fluxo e tempo limite de gravação e a operação é executada de forma síncrona.

Um thread pode usar a função PurgeComm para descartar todos os caracteres na saída ou no buffer de entrada de um dispositivo. PurgeComm também podem encerrar operações pendentes de leitura ou gravação, mesmo que as operações não tenham sido concluídas. Se um thread usar PurgeComm para liberar um buffer de saída, os caracteres excluídos não serão transmitidos. Para esvaziar o buffer de saída, garantindo que o conteúdo seja transmitido, um thread pode chamar a função FlushFileBuffers (uma operação síncrona). Observe, no entanto, que FlushFileBuffers está sujeito a controle de fluxo, mas não a tempo limite de gravação e não retornará até que todas as operações de gravação pendentes sejam transmitidas.