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
USBD_SelectConfigUrbAllocateAndBuild