Freigeben über


USBD_AssignUrbToIoStackLocation-Funktion (usbdlib.h)

Die USBD_AssignUrbToIoStackLocation Routine wird von einem Clienttreiber aufgerufen, um eine URB- dem nächsten Stapelspeicherort des IRP 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 wird.

[in] IoStackLocation

Zeiger auf die nächste Stapelposition des IRP (IO_STACK_LOCATION). Der Clienttreiber hat einen Zeiger auf die Stapelposition in einem vorherigen Aufruf von IoGetNextIrpStackLocationempfangen.

[in] Urb

Zeiger auf die URB- Struktur, die durch USBD_UrbAllocate, USBD_IsochUrbAllocate, USBD_SelectConfigUrbAllocateAndBuildoder USBD_SelectInterfaceUrbAllocateAndBuildzugeordnet wird.

Rückgabewert

Nichts

Bemerkungen

Wenn der Clienttreiber eine URB durch Aufrufen von USBD_UrbAllocate, USBD_IsochUrbAllocate, USBD_SelectConfigUrbAllocateAndBuildoder USBD_SelectInterfaceUrbAllocateAndBuildzugewiesen hat, muss der Treiber USBD_AssignUrbToIoStackLocation aufrufen, um die URB mit IO_STACK_LOCATION zu verknüpfen, die dem IRP zugeordnet sind. Bei URBs, die diesen Routinen zugewiesen werden, ersetzt USBD_AssignUrbToIoStackLocation einstellung Parameters.Others.Argument1 von IO_STACK_LOCATION an den URB. (siehe IOCTL_INTERNAL_USB_SUBMIT_URB).

Der Clienttreiber muss nicht Aufrufen USBD_AssignUrbToIoStackLocation für eine URB, die mithilfe anderer Mechanismen zugewiesen wird, z. B. das Zuweisen der URB auf dem Stapel. 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 die nächste Stapelposition des IRP mit der URB auf. Die Routine aktualisiert auch das FileObject Member von IO_STACK_LOCATION.

Ein Codebeispiel finden Sie unter How to Submit an URB.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Erfordert WDK für Windows 8. Zielt auf Windows Vista und höhere Versionen des Windows-Betriebssystems ab.
Zielplattform- Desktop
Header- usbdlib.h
Library Usbdex.lib
IRQL- <=DISPATCH_LEVEL

Siehe auch

Übermitteln eines URB-

USBD_IsochUrbAllocate

USBD_SelectConfigUrbAllocateAndBuild

USBD_SelectInterfaceUrbAllocateAndBuild

USBD_UrbAllocate