Freigeben über


USBD_AssignUrbToIoStackLocation-Funktion (usbdlib.h)

Die USBD_AssignUrbToIoStackLocation Routine wird von einem Clienttreiber aufgerufen, um dem nächsten Stapelspeicherort des IRP eine URB zuzuordnen.

Syntax

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

Parameter

[in] USBDHandle

Ein USBD-Handle, das in einem vorherigen Aufruf der USBD_CreateHandle-Routine abgerufen wurde.

[in] IoStackLocation

Zeiger auf den nächsten Stapelspeicherort (IO_STACK_LOCATION) des IRP. Der Clienttreiber hat in einem vorherigen Aufruf von IoGetNextIrpStackLocation einen Zeiger auf den Stapelspeicherort erhalten.

[in] Urb

Zeiger auf die URB-Struktur , die von USBD_UrbAllocate, USBD_IsochUrbAllocate, USBD_SelectConfigUrbAllocateAndBuild oder USBD_SelectInterfaceUrbAllocateAndBuild zugeordnet wird.

Rückgabewert

Keine

Bemerkungen

Wenn der Clienttreiber eine URB durch Aufrufen von USBD_UrbAllocate, USBD_IsochUrbAllocate, USBD_SelectConfigUrbAllocateAndBuild oder USBD_SelectInterfaceUrbAllocateAndBuild zugewiesen hat, muss der Treiber USBD_AssignUrbToIoStackLocation aufrufen, um die URB IO_STACK_LOCATION zuzuordnen, die dem IRP zugeordnet ist. Für URBs, die von diesen Routinen zugeordnet werden, ersetzt USBD_AssignUrbToIoStackLocation die Einstellung Parameters.Others.Argument1 von IO_STACK_LOCATION auf den URB. (siehe IOCTL_INTERNAL_USB_SUBMIT_URB).

Der Clienttreiber darf USBD_AssignUrbToIoStackLocation für eine URB nicht aufrufen, die mithilfe anderer Mechanismen wie der Zuweisung der URB im Stapel zugeordnet wird. Andernfalls generiert der USB-Treiberstapel eine Fehlerüberprüfung.

Der Clienttreiber muss USBD_AssignUrbToIoStackLocation aufrufen, bevor IoCallDriver aufgerufen wird, um die Anforderung zu senden. USBD_AssignUrbToIoStackLocation füllt den nächsten Stapelspeicherort des IRP mit der URB auf. Die Routine aktualisiert auch den FileObject-Member von IO_STACK_LOCATION.

Ein Codebeispiel finden Sie unter Übermitteln einer URB.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Erfordert WDK für Windows 8. Zielt auf Windows Vista und höhere Versionen des Windows-Betriebssystems ab.
Zielplattform Desktop
Kopfzeile usbdlib.h
Bibliothek Usbdex.lib
IRQL <=DISPATCH_LEVEL

Weitere Informationen

Übermitteln einer URB

USBD_IsochUrbAllocate

USBD_SelectConfigUrbAllocateAndBuild

USBD_SelectInterfaceUrbAllocateAndBuild

USBD_UrbAllocate