USBD_IsochUrbAllocate 函数 (usbdlib.h)
USBD_IsochUrbAllocate例程为常时等量传输请求分配 URB 结构并设置其格式。
注意
对于 Windows 驱动程序框架 (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 时,客户端驱动程序必须释放 URB。
返回值
如果请求成功 ,USBD_IsochUrbAllocate 例程将返回STATUS_SUCCESS。 否则, USBD_UrbAllocate 将 Urb 设置为 NULL
并返回 NT 状态失败代码。
可能的值包括但不限于STATUS_INVALID_PARAMETER,指示传入 NULL
USBDHandle 或 Urb 的调用方。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8需要 WDK。 面向 Windows Vista 和更高版本的 Windows 操作系统。 |
目标平台 | 桌面 |
标头 | usbdlib.h |
Library | Usbdex.lib |
IRQL | <=DISPATCH_LEVEL |