Dela via


Läs- och skrivåtgärder

Windows stöder både synkrona och asynkrona (överlappande) I/O-åtgärder för seriell kommunikation. Överlappande åtgärder gör det möjligt för den anropande tråden att utföra andra uppgifter medan åtgärden körs i bakgrunden. En tråd använder funktionen ReadFile eller ReadFileEx för att läsa från en kommunikationsresurs och funktionen WriteFile eller WriteFileEx för att skriva till en kommunikationsresurs. ReadFile och WriteFile kan utföras synkront eller asynkront. ReadFileEx och WriteFileEx kan bara utföras asynkront.

Beteendet för dessa läs- och skrivfunktioner påverkas av om funktionen körs som en överlappande åtgärd, om tidsgränsparametrarna är associerade med handtaget och om flödeskontrollparametrar är associerade med handtaget.

En tråd kan också skriva till en kommunikationsresurs med hjälp av funktionen TransmitCommChar, som överför ett angivet tecken före väntande data i utdatabufferten. Den här funktionen är användbar för att överföra ett signaltecken med hög prioritet till det mottagande systemet. Överföring av högprioriterad karaktär är fortfarande föremål för flödeskontroll och tidsgränser för skrivning, och åtgärden utförs synkront.

En tråd kan använda funktionen PurgeComm för att ta bort alla tecken i en enhets utdata- eller indatabuffert. PurgeComm- kan också avsluta väntande läs- eller skrivåtgärder, även om åtgärderna inte har slutförts. Om en tråd använder PurgeComm för att rensa en utdatabuffert överförs inte de borttagna tecknen. Om du vill tömma utdatabufferten samtidigt som innehållet överförs kan en tråd anropa funktionen FlushFileBuffers (en synkron åtgärd). Observera dock att FlushFileBuffers är föremål för flödeskontroll men inte för att skriva timeouter, och det kommer inte att returneras förrän alla väntande skrivåtgärder har överförts.