WinUsb_WriteIsochPipeAsap-Funktion (winusb.h)

Der WinUsb_WriteIsochPipeAsap sendet eine Anforderung zum Schreiben des Inhalts eines Puffers an einen isochronen OUT-Endpunkt.

Syntax

BOOL WinUsb_WriteIsochPipeAsap(
  [in]           WINUSB_ISOCH_BUFFER_HANDLE BufferHandle,
  [in]           ULONG                      Offset,
  [in]           ULONG                      Length,
  [in]           BOOL                       ContinueStream,
  [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] ContinueStream

Gibt an, dass die Übertragung nur übermittelt werden soll, wenn sie im ersten Frame nach der letzten ausstehenden Übertragung geplant werden kann.

[in, optional] Overlapped

Zeiger auf eine OVERLAPPED-Struktur , die für asynchrone Vorgänge verwendet wird.

Rückgabewert

WinUsb_WriteIsochPipeAsap 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.

Wenn der Aufrufer ContinueStream auf TRUE festlegt, schlägt die Übertragung fehl, wenn Winusb.sys die Übertragung nicht so planen kann, dass der Stream fortgesetzt wird, ohne einen oder mehrere Frames zu löschen.

Hinweise

WinUsb_WriteIsochPipeAsap ermöglicht es dem USB-Treiberstapel, die Startframenummer für die Übertragung auszuwählen. Wenn eine oder mehrere Übertragungen bereits auf dem Endpunkt ausstehen, wird die Übertragung für die Framenummer geplant, die unmittelbar nach der letzten Framenummer der letzten derzeit ausstehenden Übertragung folgt.

WinUsb_WriteIsochPipeAsap paketiert den Übertragungspuffer, sodass der Host in jedem Intervall von 1 ms die maximal zulässigen Bytes pro Intervall senden kann. Die maximale Byte wird vom Endpunktdeskriptor für Voll- und Hochgeschwindigkeitsendpunkte und vom Endpunktbegleitungsdeskriptor für SuperSpeed-Endpunkte angegeben. Wenn der Aufrufer mehrere Schreibanforderungen zum Streamen von Daten an das Gerät sendet, 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