Share via


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

WinUSB-Funktionen