USBD_IsochUrbAllocate函式 (usbdlib.h)
USBD_IsochUrbAllocate 例程會配置和格式化非時程傳輸要求的 URB 結構。
注意
Windows Driver Framework (WDF) 驅動程式: 如果您的用戶端驅動程式是以 WDF 為基礎,您必須呼叫 WdfUsbTargetDeviceCreateIsochUrb 方法,而不是 USBD_IsochUrbAllocate 來配置 URB 結構的記憶體。
語法
NTSTATUS USBD_IsochUrbAllocate(
[in] USBD_HANDLE USBDHandle,
[in] ULONG NumberOfIsochPackets,
[out] PURB *Urb
);
參數
[in] USBDHandle
用戶端驅動程式在先前呼叫 USBD_CreateHandle 例程時擷取的 USBD 句柄。
[in] NumberOfIsochPackets
指定執行傳輸所需的不連續封包數目上限。 傳輸緩衝區會在 USBD_ISO_PACKET_DESCRIPTOR 結構的可變長度陣列中描述,以儲存每個封包的相關信息,例如緩衝區內的封包位元移。 陣列是在 _URB_ISOCH_TRANSFER 結構的 IsoPacket 成員中指定,用來定義不時針要求 URB 的格式。
[out] Urb
URB 結構的指標,它會接收由 USBD_IsochUrbAllocate所配置的 URB。 URB 結構的所有成員都會設定為零。 配置的 URB 夠大,足以保存 由 numberOfIsochPacket所指示的最大無時數封包數目。
用戶端驅動程序必須藉由呼叫 USBD_UrbFree來釋出 URB。
傳回值
如果要求成功,USBD_IsochUrbAllocate 例程會傳回STATUS_SUCCESS。 否則,USBD_UrbAllocate 會將urb 設定為 NULL
,並傳回NT狀態失敗碼。
可能的值包括但不限於 STATUS_INVALID_PARAMETER,這表示傳入 NULL
給 USBDHandle 或 Urb的呼叫端。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 需要適用於 Windows 8 的 WDK。 以 Windows Vista 和更新版本的 Windows作系統為目標。 |
目標平臺 | 桌面 |
標頭 | usbdlib.h |
連結庫 | Usbdex.lib |
IRQL | <=DISPATCH_LEVEL |