_URB_OPEN_STATIC_STREAMS 結構 (usb.h)
_URB_OPEN_STATIC_STREAMS結構是由 USB 用戶端驅動程式用來開啟指定大量端點中的數據流。
若要格式化 URB,請呼叫 UsbBuildOpenStaticStreamsRequest 函式。
語法
struct _URB_OPEN_STATIC_STREAMS {
struct _URB_HEADER Hdr;
USBD_PIPE_HANDLE PipeHandle;
ULONG NumberOfStreams;
USHORT StreamInfoVersion;
USHORT StreamInfoSize;
PUSBD_STREAM_INFORMATION Streams;
};
成員
Hdr
指定 URB 標頭資訊的 _URB_HEADER 結構。 Hdr.Function 必須 URB_FUNCTION_OPEN_STATIC_STREAMS,Hdr.Length 必須是 sizeof(_URB_OPEN_STATIC_STREAMS)
。
PipeHandle
與端點相關聯的管道不透明句柄,可支援要開啟的數據流。
用戶端驅動程式會從URB_FUNCTION_SELECT_CONFIGURATION或URB_FUNCTION_SELECT_INTERFACE要求取得 PipeHandle 。
NumberOfStreams
要開啟的數據流數目。 NumberOfStreams 值表示 Streams 所指向陣列中的元素數目。 此值必須大於零,且小於或等於USB驅動程式堆疊、主機控制器和裝置中的端點所支持的數據流數目上限。 如需詳細資訊,請參閱<備註>。
StreamInfoVersion
USBD_STREAM_INFORMATION 結構的版本。 必須設定為 URB_OPEN_STATIC_STREAMS_VERSION_100;否則,要求會失敗,且 URB 狀態USBD_STATUS_INVALID_PARAMETER。
StreamInfoSize
USBD_STREAM_INFORMATION 結構的大小。 StreamInfoSize 必須是 sizeof(USBD_STREAM_INFORMATION)
;否則,要求會失敗,且URB狀態USBD_STATUS_INFO_LENGTH_MISMATCH。
Streams
呼叫端配置的已初始化 USBD_STREAM_INFORMATION 結構的陣列指標。 陣列的長度取決於要開啟的數據流數目,而且必須與 NumberOfStreams 值相同。 如需詳細資訊,請參閱<備註>。
備註
若要在 I/O 作業的端點中使用預設數據流) 以外的數據流 (,用戶端驅動程式會透過將開啟資料流要求 (URB_FUNCTION_OPEN_STATIC_STREAMS) 傳送至 USB 驅動程式堆疊來開啟必要的數據流。 針對要求,客戶端驅動程式必須藉由初始化 _URB_OPEN_STATIC_STREAMS 結構來格式化 URB。 若要格式化 URB,請呼叫 UsbBuildOpenStaticStreamsRequest 函式。
用戶端驅動程式可以開啟的數據流數目上限,必須小於或等於USB驅動程式堆疊、主機控制器和大量端點所支持的數據流數目上限。 若要取得主機控制器支持的數據流數目上限,請呼叫 USBD_QueryUsbCapability。 USB 驅動程式堆疊最多可支援 255 個數據流。 如果客戶端驅動程式要求超過 255 個數據流, USBD_QueryUsbCapability 要求失敗。 若要取得端點支持的數據流數目上限,請檢查端點隨附描述元 (請參閱 Usbspec.h) 中的 USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR 。
如需格式化開啟數據流要求 URB 和程式碼範例的資訊,請參閱 如何在 USB 大量端點中開啟和關閉靜態數據流。
當客戶端驅動程式使用數據流完成時,驅動程式可以藉由傳送關閉數據流要求來關閉與特定端點相關聯的所有數據流。 若要傳送要求,用戶端驅動程式必須在 _URB_PIPE_REQUEST 結構中指定端點的相關信息。 _URB_PIPE_REQUEST的Hdr 成員必須URB_FUNCTION_CLOSE_STATIC_STREAMS;PipeHandle 成員必須是端點的句柄,其中包含使用中的數據流。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 |
標頭 | usb.h |