UsbBuildInterruptOrBulkTransferRequest 宏 (usbdlib.h)
UsbBuildInterruptOrBulkTransferRequest 宏格式化 URB 以在大容量管道上发送或接收数据,或从中断管道接收数据。
语法
void UsbBuildInterruptOrBulkTransferRequest(
[in, out] urb,
[in] length,
[in] pipeHandle,
[in, optional] transferBuffer,
[in, optional] transferBufferMDL,
[in] transferBufferLength,
[in] transferFlags,
[in] link
);
参数
[in, out] urb
指向要格式化为中断或大容量传输请求的 URB 的指针。
[in] length
指定 URB 的大小(以字节为单位)。
[in] pipeHandle
指定选择配置时 HCD 返回的此管道的句柄。
[in, optional] transferBuffer
指向传输的常驻缓冲区的指针;如果在 TransferBufferMDL 中提供了 MDL,则为 NULL。 此缓冲区的内容取决于 TransferFlags 的值。 如果指定了USBD_TRANSFER_DIRECTION_IN,则此缓冲区将包含从 HCD 返回时从设备读取的数据。 否则,此缓冲区包含要传输到设备的驱动程序提供的数据。
[in, optional] transferBufferMDL
指向描述常驻缓冲区的 MDL 的指针;如果 TransferBuffer 中提供了缓冲区,则为 NULL。 缓冲区的内容取决于 TransferFlags 的值。 如果指定了USBD_TRANSFER_DIRECTION_IN,则描述的缓冲区将包含从 HCD 返回时从设备读取的数据。 否则,缓冲区包含要传输到设备的驱动程序提供的数据。 MDL 必须从非分页池中分配。
[in] transferBufferLength
指定 TransferBuffer 中指定的缓冲区或 TransferBufferMDL 中所述的缓冲区的长度(以字节为单位)。
[in] transferFlags
指定以下标志的零、一或组合:
USBD_TRANSFER_DIRECTION_IN
设置为从设备请求数据。 若要将数据传输到设备,必须清除此标志。
USBD_SHORT_TRANSFER_OK
如果设置了USBD_TRANSFER_DIRECTION_IN,可以使用 。 如果已设置,则指示 HCD 在从设备接收的数据包短于终结点的最大数据包大小时返回错误。 否则,短请求将返回错误条件。
[in] link
保留。 必须设置为 NULL。
返回值
无
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | usbdlib.h (包括 Usbdlib.h) |
另请参阅
USB device driver programming reference(USB 设备驱动程序编程参考)