_URB_OPEN_STATIC_STREAMS Struktur (usb.h)

Die _URB_OPEN_STATIC_STREAMS-Struktur wird von einem USB-Clienttreiber verwendet, um Streams im angegebenen Massenendpunkt zu öffnen.

Um die URB zu formatieren, rufen Sie die UsbBuildOpenStaticStreamsRequest-Funktion auf.

Syntax

struct _URB_OPEN_STATIC_STREAMS {
  struct _URB_HEADER       Hdr;
  USBD_PIPE_HANDLE         PipeHandle;
  ULONG                    NumberOfStreams;
  USHORT                   StreamInfoVersion;
  USHORT                   StreamInfoSize;
  PUSBD_STREAM_INFORMATION Streams;
};

Member

Hdr

Die _URB_HEADER-Struktur , die die URB-Headerinformationen angibt. Hdr.Function muss URB_FUNCTION_OPEN_STATIC_STREAMS sein, und Hdr.Length muss sein sizeof(_URB_OPEN_STATIC_STREAMS).

PipeHandle

Ein undurchsichtiges Handle für die Pipe, die dem Endpunkt zugeordnet ist, der das Öffnen der Streams unterstützt.

Der Clienttreiber ruft PipeHandle aus der URB_FUNCTION_SELECT_CONFIGURATION- oder URB_FUNCTION_SELECT_INTERFACE-Anforderung ab.

NumberOfStreams

Die Anzahl der zu öffnenden Streams. Der NumberOfStreams-Wert gibt die Anzahl der Elemente im Array an, auf die von Streams verwiesen wird. Dieser Wert muss größer als 0 und kleiner als oder gleich der maximalen Anzahl von Streams sein, die vom USB-Treiberstapel, dem Hostcontroller und dem Endpunkt im Gerät unterstützt werden. Weitere Informationen finden Sie in den Hinweisen.

StreamInfoVersion

Version der USBD_STREAM_INFORMATION-Struktur . Muss auf URB_OPEN_STATIC_STREAMS_VERSION_100 festgelegt werden. Andernfalls schlägt die Anforderung fehl, und die URB-status wird USBD_STATUS_INVALID_PARAMETER.

StreamInfoSize

Größe der USBD_STREAM_INFORMATION Struktur. StreamInfoSize muss seinsizeof(USBD_STREAM_INFORMATION). Andernfalls schlägt die Anforderung fehl, und die URB-status wird USBD_STATUS_INFO_LENGTH_MISMATCH.

Streams

Zeiger auf ein vom Aufrufer zugewiesenes, initialisiertes Array von USBD_STREAM_INFORMATION Strukturen. Die Länge des Arrays hängt von der Anzahl der zu öffnenden Streams ab und muss mit dem NumberOfStreams-Wert identisch sein. Weitere Informationen finden Sie in den Hinweisen.

Hinweise

Um Datenströme (außer dem Standardstream) im Endpunkt für E/A-Vorgänge zu verwenden, öffnet der Clienttreiber die erforderlichen Datenströme, indem er eine Open-Stream-Anforderung (URB_FUNCTION_OPEN_STATIC_STREAMS) an den USB-Treiberstapel sendet. Für die Anforderung muss der Clienttreiber die URB formatieren, indem er die _URB_OPEN_STATIC_STREAMS-Struktur initialisiert. Um die URB zu formatieren, rufen Sie die UsbBuildOpenStaticStreamsRequest-Funktion auf.

Die maximale Anzahl von Streams, die von einem Clienttreiber geöffnet werden können, muss kleiner oder gleich der maximalen Anzahl von Streams sein, die vom USB-Treiberstapel, dem Hostcontroller und dem Massenendpunkt unterstützt werden. Um die maximale Anzahl von Streams abzurufen, die vom Hostcontroller unterstützt werden, rufen Sie USBD_QueryUsbCapability auf. Der USB-Treiberstapel unterstützt bis zu 255 Streams. Wenn der Clienttreiber mehr als 255 Streams anfordert, schlägt USBD_QueryUsbCapability die Anforderung fehl. Um die maximale Anzahl von Streams abzurufen, die vom Endpunkt unterstützt werden, überprüfen Sie den Endpunkt-Begleitdeskriptor (siehe USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR in Usbspec.h).

Informationen zum Formatieren der URB für die Open-Stream-Anforderung und das Codebeispiel finden Sie unter Öffnen und Schließen statischer Streams in einem USB-Massenendpunkt.

Wenn der Clienttreiber die Datenströme verwendet hat, kann der Treiber alle Streams schließen, die einem bestimmten Endpunkt zugeordnet sind, indem er eine Close-Stream-Anforderung sendet. Um die Anforderung zu senden, muss der Clienttreiber Informationen zum Endpunkt in der _URB_PIPE_REQUEST-Struktur angeben. Das Hdr-Element von _URB_PIPE_REQUEST muss URB_FUNCTION_CLOSE_STATIC_STREAMS sein. Das PipeHandle-Element muss das Handle für den Endpunkt sein, der die verwendeten Streams enthält.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8
Kopfzeile usb.h

Weitere Informationen

Öffnen und Schließen statischer Streams in einem USB-Massenendpunkt

URB

USB-Strukturen

_URB_HEADER