Lese- und Schreibvorgänge
Windows unterstützt sowohl synchrone als auch asynchrone (überlappende) Datei-E/A-Vorgänge für serielle Kommunikationsressourcen. Überlappende Vorgänge ermöglichen es dem aufrufenden Thread, andere Aufgaben auszuführen, während der Vorgang im Hintergrund ausgeführt wird. Ein Thread verwendet die ReadFile- oder ReadFileEx-Funktion zum Lesen aus einer Kommunikationsressource und die WriteFile- oder WriteFileEx-Funktion zum Schreiben in eine Kommunikationsressource. ReadFile und WriteFile können synchron oder asynchron ausgeführt werden. ReadFileEx und WriteFileEx können nur asynchron ausgeführt werden.
Das Verhalten dieser Lese- und Schreibfunktionen wird davon beeinflusst, ob die Funktion als überlappender Vorgang ausgeführt wird, ob die Time out-Parameter dem Handle zugeordnet sind und ob Flusssteuerungsparameter dem Handle zugeordnet sind.
Ein Thread kann auch mithilfe der TransmitCommChar-Funktion in eine Kommunikationsressource schreiben, die ein angegebenes Zeichen vor allen ausstehenden Daten im Ausgabepuffer überträgt. Diese Funktion ist nützlich, um ein Signalzeichen mit hoher Priorität an das empfangende System zu übertragen. Die Übertragung des Zeichens mit hoher Priorität unterliegt weiterhin Time outs der Flusssteuerung und des Schreibvorgangs, und der Vorgang wird synchron ausgeführt.
Ein Thread kann die PurgeComm-Funktion verwenden, um alle Zeichen im Ausgabe- oder Eingabepuffer eines Geräts zu verwerfen. PurgeComm kann auch ausstehende Lese- oder Schreibvorgänge beenden, auch wenn die Vorgänge nicht abgeschlossen wurden. Wenn ein Thread PurgeComm verwendet, um einen Ausgabepuffer zu leeren, werden die gelöschten Zeichen nicht übertragen. Um den Ausgabepuffer zu leeren und gleichzeitig sicherzustellen, dass der Inhalt übertragen wird, kann ein Thread die FlushFileBuffers-Funktion aufrufen (ein synchroner Vorgang). Beachten Sie jedoch, dass FlushFileBuffers der Flusssteuerung unterliegt, aber keinen Schreibtime outs unterliegt und erst dann zurückgegeben wird, wenn alle ausstehenden Schreibvorgänge übertragen wurden.