Freigeben über


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

WinUSB-Funktionen