Freigeben über


Lese- und Schreibvorgänge

Windows unterstützt synchrone und 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 funktion ReadFile oder ReadFileEx, um aus einer Kommunikationsressource zu lesen, und die WriteFile- oder WriteFileEx--Funktion, um in eine Kommunikationsressource zu schreiben. 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 ist davon betroffen, ob die Funktion als überlappender Vorgang ausgeführt wird, ob die Timeoutparameter 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 bestimmtes Zeichen vor ausstehenden Daten im Ausgabepuffer überträgt. Diese Funktion ist nützlich, um ein Signalzeichen mit hoher Priorität an das Empfangssystem zu übertragen. Die Übertragung des Zeichens mit hoher Priorität unterliegt weiterhin der Flusssteuerung und dem Schreiben von Timeouts, 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 zum Leeren eines Ausgabepuffers verwendet, werden die gelöschten Zeichen nicht übertragen. Um den Ausgabepuffer zu leeren und sicherzustellen, dass der Inhalt übertragen wird, kann ein Thread die FlushFileBuffers-Funktion (synchroner Vorgang) aufrufen. Beachten Sie jedoch, dass FlushFileBuffers- ablaufsteuerung unterliegen, aber keine Timeouts schreiben, und sie wird erst zurückgegeben, wenn alle ausstehenden Schreibvorgänge übertragen wurden.