共用方式為


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 設備驅動器程式設計參考

USB_DEVICE_DESCRIPTOR