USBD_IsochUrbAllocate函式 (usbdlib.h)

USBD_IsochUrbAllocate例程會配置和格式化非時序傳輸要求的 URB 結構。

注意

針對 Windows Driver Framework (WDF) 驅動程式: 如果您的用戶端驅動程式是以 WDF 為基礎,您必須呼叫 WdfUsbTargetDeviceCreateIsochUrb 方法,而不是 USBD_IsochUrbAllocateURB 結構配置記憶體。

語法

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_UrbAllocateUrb 設定為 NULL ,並傳回 NT 狀態失敗碼。

可能的值包括但不限於STATUS_INVALID_PARAMETER,這表示傳入 NULLUSBDHandleUrb的呼叫端。

規格需求

需求
最低支援的用戶端 需要 Windows 8的 WDK。 以 Windows Vista 和更新版本的 Windows 作業系統為目標。
目標平台 桌面
標頭 usbdlib.h
程式庫 Usbdex.lib
IRQL <=DISPATCH_LEVEL

另請參閱