USBD_IsochUrbAllocate 函数 (usbdlib.h)

USBD_IsochUrbAllocate例程为常时等量传输请求分配 URB 结构并设置其格式。

注意

对于 Windows 驱动程序框架 (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 时,客户端驱动程序必须释放 URB

返回值

如果请求成功 ,USBD_IsochUrbAllocate 例程将返回STATUS_SUCCESS。 否则, USBD_UrbAllocateUrb 设置为 NULL 并返回 NT 状态失败代码。

可能的值包括但不限于STATUS_INVALID_PARAMETER,指示传入 NULLUSBDHandleUrb 的调用方。

要求

要求
最低受支持的客户端 Windows 8需要 WDK。 面向 Windows Vista 和更高版本的 Windows 操作系统。
目标平台 桌面
标头 usbdlib.h
Library Usbdex.lib
IRQL <=DISPATCH_LEVEL

另请参阅