Operazioni di lettura e scrittura

Windows supporta sia le operazioni di I/O sincrone che asincrone (sovrapposte) sui file nelle risorse di comunicazione seriale. Le operazioni sovrapposte consentono al thread chiamante di eseguire altre attività mentre l'operazione viene eseguita in background. Un thread usa la funzione ReadFile o ReadFileEx per leggere da una risorsa di comunicazione e la funzione WriteFile o WriteFileEx per scrivere in una risorsa di comunicazione. ReadFile e WriteFile possono essere eseguiti in modo sincrono o asincrono. ReadFileEx e WriteFileEx possono essere eseguiti solo in modo asincrono.

Il comportamento di queste funzioni di lettura e scrittura è influenzato dal fatto che la funzione venga eseguita come operazione sovrapposta, se i parametri di timeout sono associati all'handle e se i parametri di controllo del flusso sono associati all'handle.

Un thread può anche scrivere in una risorsa di comunicazione usando la funzione TransmitCommChar , che trasmette un carattere specificato prima di tutti i dati in sospeso nel buffer di output. Questa funzione è utile per trasmettere un carattere di segnale ad alta priorità al sistema ricevente. La trasmissione del carattere ad alta priorità è ancora soggetta al controllo del flusso e ai timeout di scrittura e l'operazione viene eseguita in modo sincrono.

Un thread può usare la funzione PurgeComm per rimuovere tutti i caratteri nell'output o nel buffer di input di un dispositivo. PurgeComm può anche terminare le operazioni di lettura o scrittura in sospeso, anche se le operazioni non sono state completate. Se un thread usa PurgeComm per scaricare un buffer di output, i caratteri eliminati non vengono trasmessi. Per svuotare il buffer di output assicurandosi che il contenuto venga trasmesso, un thread può chiamare la funzione FlushFileBuffers (operazione sincrona). Si noti, tuttavia, che FlushFileBuffers è soggetto al controllo del flusso, ma non ai timeout di scrittura e non verrà restituito finché non vengono trasmesse tutte le operazioni di scrittura in sospeso.