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
USBD_SelectConfigUrbAllocateAndBuild