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