Compartilhar via


Operações de leitura e gravação

O Windows oferece 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ção ReadFile ou ReadFileEx 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 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 quaisquer dados pendentes no buffer de saída. Esta função é útil para transmitir um caráter 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 tempos 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 no buffer de saída ou entrada de um dispositivo. O PurgeComm também pode encerrar operações de leitura ou gravação pendentes, 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 e, ao mesmo tempo, garantir 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 ao controle de fluxo, mas não a tempos limite de gravação, e não retornará até que todas as operações de gravação pendentes tenham sido transmitidas.