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)

另请参阅

URB

USB device driver programming reference(USB 设备驱动程序编程参考)

USB_DEVICE_DESCRIPTOR