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

指向传输的常驻缓冲区的指针;如果 MDL 在 transferBufferMDL中提供,则为 NULL null。 此缓冲区的内容取决于 TransferFlags的值。 如果指定了USBD_TRANSFER_DIRECTION_IN,则此缓冲区将包含从 HCD 返回时从设备读取的数据。 否则,此缓冲区包含要传输到设备的驱动程序提供的数据。

[in, optional] transferBufferMDL

指向描述常驻缓冲区的 MDL 的指针;如果缓冲区 在 transferBuffer中提供缓冲区,则为 NULL 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 设备驱动程序编程参考

USB_DEVICE_DESCRIPTOR