次の方法で共有


USBD_AssignUrbToIoStackLocation関数 (usbdlib.h)

USBD_AssignUrbToIoStackLocation ルーチンは、URB を IRP の次のスタックの場所に関連付けるために、クライアント ドライバーによって呼び出されます。

構文

void USBD_AssignUrbToIoStackLocation(
  [in] USBD_HANDLE        USBDHandle,
  [in] PIO_STACK_LOCATION IoStackLocation,
  [in] PURB               Urb
);

パラメーター

[in] USBDHandle

USBD_CreateHandle ルーチンへの以前の呼び出しで取得される USBD ハンドル。

[in] IoStackLocation

IRP の次のスタック位置 (IO_STACK_LOCATION) へのポインター。 クライアント ドライバーは、IoGetNextIrpStackLocationへの以前の呼び出しでスタックの場所へのポインターを受け取りました。

[in] Urb

USBD_UrbAllocateUSBD_IsochUrbAllocateUSBD_SelectConfigUrbAllocateAndBuild、または USBD_SelectInterfaceUrbAllocateAndBuildによって割り当てられる URB 構造体へのポインター。

戻り値

何一つ

備考

クライアント ドライバーが、USBD_UrbAllocateUSBD_IsochUrbAllocateUSBD_SelectConfigUrbAllocateAndBuild、または USBD_SelectInterfaceUrbAllocateAndBuildを呼び出して URB を割り当てた場合、ドライバー は、USBD_ASSIGNURBTOIOSTACKLOCATION を呼び出して、IRP に関連付けられている IO_STACK_LOCATION に URB を関連付ける 必要があります。 これらのルーチンによって割り当てられる URB の場合、USBD_AssignUrbToIoStackLocation は URB に IO_STACK_LOCATION の Parameters.Others.Argument1 設定を置き換えます。 (IOCTL_INTERNAL_USB_SUBMIT_URBを参照)。

クライアント ドライバー 、スタック上の URB の割り当てなど、他のメカニズムを使用して割り当てられた URB の呼び出し USBD_AssignUrbToIoStackLocation してはなりません。 それ以外の場合、USB ドライバー スタックによってバグチェックが生成されます。

クライアント ドライバーは、要求を送信 IoCallDriver を呼び出す前に、USBD_AssignUrbToIoStackLocation を呼び出す必要があります。 USBD_AssignUrbToIoStackLocation は、IRP の次のスタックの場所に URB を設定します。 このルーチンは、IO_STACK_LOCATIONFileObject メンバーも更新します。

コード例については、「URBを送信する方法」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 8 用 WDK が必要です。 Windows Vista 以降のバージョンの Windows オペレーティング システムを対象としています。
ターゲット プラットフォーム デスクトップ
ヘッダー usbdlib.h
ライブラリ Usbdex.lib
IRQL <=DISPATCH_LEVEL

関連項目

URB を送信する方法

USBD_IsochUrbAllocate

USBD_SelectConfigUrbAllocateAndBuild

USBD_SelectInterfaceUrbAllocateAndBuild

USBD_UrbAllocate