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 です。 このバッファーの内容は、 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

0、1、または次のフラグの組み合わせを指定します。

USBD_TRANSFER_DIRECTION_IN

デバイスからデータを要求するように設定されます。 デバイスにデータを転送するには、このフラグをクリアする必要があります。

USBD_SHORT_TRANSFER_OK

USBD_TRANSFER_DIRECTION_INが設定されている場合に使用できます。 が設定されている場合、エンドポイントの最大パケット サイズより短いパケットがデバイスから受信された場合に、HCD にエラーが返されないように指示します。 それ以外の場合、短い要求はエラー条件を返します。

[in] link

予約済み。 NULL に設定する必要があります。

戻り値

なし

必要条件

要件
対象プラットフォーム デスクトップ
Header usbdlib.h (Usbdlib.h を含む)

こちらもご覧ください

Urb

USB デバイス ドライバーのプログラミング参照

USB_DEVICE_DESCRIPTOR