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_UrbAllocate、USBD_IsochUrbAllocate、USBD_SelectConfigUrbAllocateAndBuild、または USBD_SelectInterfaceUrbAllocateAndBuildによって割り当てられる URB 構造体へのポインター。
戻り値
何一つ
備考
クライアント ドライバーが、USBD_UrbAllocate、USBD_IsochUrbAllocate、USBD_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_LOCATIONの FileObject メンバーも更新します。
コード例については、「URBを送信する方法」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8 用 WDK が必要です。 Windows Vista 以降のバージョンの Windows オペレーティング システムを対象としています。 |
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | usbdlib.h |
ライブラリ | Usbdex.lib |
IRQL | <=DISPATCH_LEVEL |
関連項目
URB を送信する方法
USBD_SelectConfigUrbAllocateAndBuild