_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_FUNCTION_CLOSE_STATIC_STREAMS _URB_PIPE_REQUESTHdr 成員:PipeHandle 成員必須是包含使用中數據流之端點的句柄。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 8 |
標頭 | usb.h |