Partilhar 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 o ReadFile ou função ReadFileEx para ler de um recurso de comunicações e o WriteFile ou função WriteFileEx para gravar em um recurso de comunicações. ReadFile e WriteFile podem ser executadas 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 pelo fato de a função ser executada como uma operação sobreposta, se os parâmetros de tempo limite estão associados à alça e se os parâmetros de controle de fluxo estão associados à alça.

Um thread também pode gravar em um recurso de comunicações usando a funçãoTransmitCommChar, que transmite um caractere especificado antes de quaisquer dados pendentes no buffer de saída. Esta função é útil para transmitir um caractere de sinal de alta prioridade para o sistema recetor. 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. PurgeComm também pode 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 enquanto garante que o conteúdo seja transmitido, um thread pode chamar a funçãoFlushFileBuffers (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.