共用方式為


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_SelectConfigUrbAllocateAndBuildUSBD_SelectInterfaceUrbAllocateAndBuild所配置之 URB 結構的指標。

傳回值

沒有

言論

如果客戶端驅動程式透過呼叫 USBD_UrbAllocateUSBD_IsochUrbAllocateUSBD_SelectConfigUrbAllocateAndBuildUSBD_SelectInterfaceUrbAllocateAndBuild來配置 URB,則驅動程式 必須 呼叫 USBD_AssignUrbToIoStackLocation,讓 URB 與與 IRP 相關聯的 IO_STACK_LOCATION 產生關聯。 針對這些例程配置的 URB,USBD_AssignUrbToIoStackLocation 會取代將 Parameters.Others.Argument1IO_STACK_LOCATION 設定為 URB。 (請參閱 IOCTL_INTERNAL_USB_SUBMIT_URB)。

用戶端驅動程序必須 呼叫使用其他機制配置 URB 的 URB USBD_AssignUrbToIoStackLocation,例如配置堆棧上的 URB。 否則,USB 驅動程式堆疊會產生錯誤檢查。

用戶端驅動程序必須先呼叫 USBD_AssignUrbToIoStackLocation,才能呼叫 IoCallDriver 以傳送要求。 USBD_AssignUrbToIoStackLocation 使用 URB 填入 IRP 的下一個堆疊位置。 例程也會更新 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