Eine Pipe ist eine Verbindung zwischen einem Endpunkt eines Gerätes und der Host-Software. Sie ermöglichen den Datenfluß zwischen Host-Software und Endpunkt über Puffer im
Speicher.
Es gibt zwei verschiedene Arten von Pipes: Stream-Pipes, deren Daten keine USB-spezifische Struktur besitzen und Message-Pipes, die USB-spezifische Daten transportieren.
Stream-Pipes unterstützen Bulk-, Interrupt- und isochrone Transfers und sind immer uni-direktional, was durch das IN- oder OUT-Token im Protokoll festgelegt wird.
Mit Message-Pipes ist bidirektionale Kommunikation möglich. Außerdem unterstützen sie nur Kontroll-Transfers.
Das USB-System intepretiert die Daten nicht, wenn sie über die Pipes transportiert werden. Dies gilt auch für Message-Pipes.
Eine Client-Software fragt Daten normalerweise über I/O Request Pakete (IRPs) ab. Sie wartet anschließend bis sie Nachricht über Erfolg oder Mißerfolg der Transaktion erhält. Genaue
IRP-Datails sind Betriebssystem-spezifisch.
|