Olvasási és írási műveletek

A Windows támogatja a soros kommunikációs erőforrások szinkron és aszinkron (átfedésben lévő) fájl I/O-műveleteit is. Az átfedésben lévő műveletek lehetővé teszik, hogy a hívószál más feladatokat is végrehajthasson, miközben a művelet a háttérben fut. A szál a ReadFile vagy ReadFileEx függvényt használja egy kommunikációs erőforrásból való olvasáshoz, a WriteFile vagy WriteFileEx függvény pedig kommunikációs erőforrásba való íráshoz. ReadFile és WriteFile szinkronizálva vagy aszinkron módon is végrehajtható. ReadFileEx és WriteFileEx csak aszinkron módon hajtható végre.

Az olvasási és írási függvények viselkedését befolyásolja, hogy a függvény egymást átfedő műveletként van-e végrehajtva, az időtúllépési paraméterek a leíróhoz vannak-e társítva, és hogy a folyamatvezérlő paraméterek a leíróhoz vannak-e társítva.

A szálak a TransmitCommChar függvénnyel is írhatnak kommunikációs erőforrásba, amely egy adott karaktert továbbít a kimeneti pufferben lévő függőben lévő adatok előtt. Ez a függvény egy magas prioritású jel karakterének a fogadó rendszerbe való továbbításához hasznos. A magas prioritású karakter átvitele továbbra is folyamatvezérlési és írási időtúllépések tárgyát képezi, és a művelet szinkron módon történik.

A szálak a PurgeComm függvénnyel elvethetik az eszköz kimeneti vagy bemeneti pufferének összes karakterét. PurgeComm akkor is leállíthatja a függőben lévő olvasási vagy írási műveleteket, ha a műveletek még nem fejeződtek be. Ha egy szál PurgeComm használ a kimeneti puffer kiürítéséhez, a rendszer nem továbbítja a törölt karaktereket. A kimeneti puffer kiürítéséhez és a tartalom átvitelének biztosításához egy szál meghívhatja a FlushFileBuffers függvényt (szinkron művelet). Vegye figyelembe azonban, hogy FlushFileBuffers a folyamat szabályozása alatt áll, de az írási időtúllépések nem, és csak akkor tér vissza, ha az összes függőben lévő írási műveletet át nem adták.