función USBD_AssignUrbToIoStackLocation (usbdlib.h)
Un controlador cliente llama a la rutina USBD_AssignUrbToIoStackLocation para asociar un URB a la siguiente ubicación de pila del IRP.
Sintaxis
void USBD_AssignUrbToIoStackLocation(
[in] USBD_HANDLE USBDHandle,
[in] PIO_STACK_LOCATION IoStackLocation,
[in] PURB Urb
);
Parámetros
[in] USBDHandle
Identificador USBD que se recupera en una llamada anterior a la rutina USBD_CreateHandle .
[in] IoStackLocation
Puntero a la siguiente ubicación de pila del IRP (IO_STACK_LOCATION). El controlador cliente recibió un puntero a la ubicación de la pila en una llamada anterior a IoGetNextIrpStackLocation.
[in] Urb
Puntero a la estructura URB asignada por USBD_UrbAllocate, USBD_IsochUrbAllocate, USBD_SelectConfigUrbAllocateAndBuild o USBD_SelectInterfaceUrbAllocateAndBuild.
Valor devuelto
None
Observaciones
Si el controlador de cliente asignó un URB llamando a USBD_UrbAllocate, USBD_IsochUrbAllocate, USBD_SelectConfigUrbAllocateAndBuild o USBD_SelectInterfaceUrbAllocateAndBuild, el controlador debe llamar a USBD_AssignUrbToIoStackLocation para asociar el URB con IO_STACK_LOCATION asociado al IRP. Para las direcciones URL asignadas por esas rutinas, USBD_AssignUrbToIoStackLocation reemplaza el valor Parameters.Others.Argument1 de IO_STACK_LOCATION al URB. (consulte IOCTL_INTERNAL_USB_SUBMIT_URB).
El controlador cliente no debe llamar a USBD_AssignUrbToIoStackLocation para un URB asignado mediante otros mecanismos, como asignar el URB en la pila. De lo contrario, la pila del controlador USB genera una comprobación de errores.
El controlador cliente debe llamar a USBD_AssignUrbToIoStackLocation antes de llamar a IoCallDriver para enviar la solicitud. USBD_AssignUrbToIoStackLocation rellena la siguiente ubicación de pila del IRP con el URB. La rutina también actualiza el miembro FileObject de IO_STACK_LOCATION.
Para obtener un ejemplo de código, vea Cómo enviar un URB.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Requiere WDK para Windows 8. Tiene como destino Windows Vista y versiones posteriores del sistema operativo Windows. |
Plataforma de destino | Escritorio |
Encabezado | usbdlib.h |
Library | Usbdex.lib |
IRQL | <=DISPATCH_LEVEL |
Consulte también
USBD_SelectConfigUrbAllocateAndBuild