Share via


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

Cómo enviar un URB

USBD_IsochUrbAllocate

USBD_SelectConfigUrbAllocateAndBuild

USBD_SelectInterfaceUrbAllocateAndBuild

USBD_UrbAllocate