WinUsb_ReadIsochPipe-Funktion (winusb.h)
Die funktion WinUsb_ReadIsochPipe liest Daten von einem isochronen IN-Endpunkt.
Syntax
BOOL WinUsb_ReadIsochPipe(
[in] WINUSB_ISOCH_BUFFER_HANDLE BufferHandle,
[in] ULONG Offset,
[in] ULONG Length,
[in, out] PULONG FrameNumber,
[in] ULONG NumberOfPackets,
[out] PUSBD_ISO_PACKET_DESCRIPTOR IsoPacketDescriptors,
[in, optional] LPOVERLAPPED Overlapped
);
Parameter
[in] BufferHandle
Ein undurchsichtiges Handle für den Übertragungspuffer, der durch einen vorherigen Aufruf von WinUsb_RegisterIsochBuffer registriert wurde.
[in] Offset
Offset in den Puffer relativ zum Starten der Übertragung.
[in] Length
Länge des Übertragungspuffers in Byte.
[in, out] FrameNumber
Gibt bei der Eingabe die Startframenummer für die Übertragung an. Enthält bei der Ausgabe die Framenummer des Frames, der auf den letzten Frame folgt, der in der Übertragung verwendet wurde.
[in] NumberOfPackets
Gesamtanzahl der isochronen Pakete, die erforderlich sind, um den Übertragungspuffer zu enthalten. Gibt auch die Anzahl der Elemente im Array an, auf das von IsoPacketDescriptors verwiesen wird.
[out] IsoPacketDescriptors
Ein Array von USBD_ISO_PACKET_DESCRIPTOR Strukturen. Nach Abschluss der Übertragung enthält jedes Element die status und die Größe des isochronen Pakets.
[in, optional] Overlapped
Zeiger auf eine OVERLAPPED-Struktur , die für asynchrone Vorgänge verwendet wird.
Rückgabewert
WinUsb_ReadIsochPipe gibt TRUE zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt diese Funktion FALSE zurück, und der Aufrufer kann den protokollierten Fehler durch Aufrufen von GetLastError abrufen.
Hinweise
WinUsb_ReadIsochPipe paketisiert den Übertragungspuffer, sodass der Host in jedem Intervall von 1 ms die maximal zulässigen Bytes pro Intervall empfangen kann. Die maximale Byte wird vom Endpunktdeskriptor für Voll- und Hochgeschwindigkeitsendpunkte und vom Endpunktbegleitungsdeskriptor für SuperSpeed-Endpunkte angegeben. Wenn der Aufrufer mehrere Leseanforderungen zum Streamen von Daten vom Gerät übermittelt, sollte die Übertragungsgröße ein Vielfaches der maximalen Bytes pro Intervall (wie von WinUsb_QueryPipeEx zurückgegeben) * 8 / Intervall betragen.
Aufgrund der Übertragungspaketerstellung, die in der zugrunde liegenden Kernelmodusschnittstelle verwendet wird, beträgt die niedrigste Latenzbenachrichtigung an eine Anwendung oder einen Treiber Intervalle von 1 ms.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 8.1 |
Unterstützte Mindestversion (Server) | Windows Server 2012 R2 |
Zielplattform | Universell |
Header | winusb.h (winusb.h einschließen) |
Bibliothek | Winusb.lib |
DLL | Winusb.dll |
Weitere Informationen
Senden isochroner USB-Übertragungen von einer WinUSB-Desktop-App