WinUsb_ReadIsochPipeAsap-Funktion (winusb.h)
Die WinUsb_ReadIsochPipeAsap-Funktion sendet eine Anforderung, die Daten von einem isochronen IN-Endpunkt liest.
Syntax
BOOL WinUsb_ReadIsochPipeAsap(
[in] WINUSB_ISOCH_BUFFER_HANDLE BufferHandle,
[in] ULONG Offset,
[in] ULONG Length,
[in] BOOL ContinueStream,
[in] ULONG NumberOfPackets,
PUSBD_ISO_PACKET_DESCRIPTOR IsoPacketDescriptors,
[in, optional] LPOVERLAPPED Overlapped
);
Parameter
[in] BufferHandle
Ein undurchsichtiges Handle für den Übertragungspuffer, der von einem vorherigen Aufruf von WinUsb_RegisterIsochBuffer registriert wurde.
[in] Offset
Offset in den Puffer relativ zum Start der Übertragung.
[in] Length
Länge des Übertragungspuffers in Bytes.
[in] ContinueStream
Gibt an, dass die Übertragung nur übermittelt werden soll, wenn sie im ersten Frame nach der letzten ausstehenden Übertragung geplant werden kann.
[in] NumberOfPackets
Gesamtanzahl der isochronen Pakete, die zum Halten des Übertragungspuffers erforderlich sind. Gibt auch die Anzahl der Elemente im Array an, auf die von IsoPacketDescriptors verwiesen wird.
IsoPacketDescriptors
Ein Array von USBD_ISO_PACKET_DESCRIPTOR , das die Details jedes isochronen Pakets in der Übertragung empfängt.
[in, optional] Overlapped
Zeiger auf eine OVERLAPPED-Struktur , die für asynchrone Vorgänge verwendet wird.
Rückgabewert
WinUsb_ReadIsochPipeAsap gibt TRUE zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt diese Funktion FALSE zurück, und der Aufrufer kann den protokollierten Fehler abrufen, indem er GetLastError aufruft.
Wenn der Aufrufer ContinueStream auf TRUE festlegt, schlägt die Übertragung fehl, wenn Winusb.sys die Übertragung nicht planen kann, um den Stream fortzusetzen, ohne einen oder mehrere Frames zu löschen.
Bemerkungen
WinUsb_ReadIsochPipeAsap ermöglicht es dem USB-Treiberstapel, die Startframenummer für die Übertragung auszuwählen. Wenn eine oder mehrere Übertragungen für den Endpunkt bereits ausstehen, wird die Übertragung für die Framenummer geplant, die unmittelbar auf die letzte Framenummer der letzten derzeit ausstehenden Übertragung folgt.
WinUsb_ReadIsochPipeAsap paketiert den Übertragungspuffer, sodass der Host in jedem Intervall die maximal zulässigen Bytes pro Intervall empfangen kann. Die maximalen Bytes werden vom Endpunktdeskriptor für Voll- und Hochgeschwindigkeitsendpunkte und vom Endpunktbegleiterdeskriptor für SuperSpeed-Endpunkte angegeben. Wenn der Aufrufer mehrere Leseanforderungen übermittelt, um Daten vom Gerät zu streamen, sollte die Übertragungsgröße ein Vielfaches der maximalen Bytes pro Intervall (wie von WinUsb_QueryPipeEx zurückgegeben) * 8 / Intervall betragen.
Aufgrund der Übertragungsverpackung, die in der zugrunde liegenden Kernelmodusschnittstelle verwendet wird, beträgt die niedrigste Latenzbenachrichtigung für eine Anwendung oder einen Treiber Intervalle von 1 ms.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 8.1 |
Unterstützte Mindestversion (Server) | Windows Server 2012 R2 |
Zielplattform | Universell |
Header | winusb.h (einschließlich Winusb.h) |
Bibliothek | Winusb.lib |
DLL | Winusb.dll |
Siehe auch
Senden isochroner USB-Übertragungen aus einer WinUSB-Desktop-App