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) |