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 |