función USBD_IsochUrbAllocate (usbdlib.h)
La rutina USBD_IsochUrbAllocate asigna y da formato a una estructura URB para una solicitud de transferencia isócrónica.
Nota
Para controladores de Windows Driver Framework (WDF): Si el controlador de cliente está basado en WDF, debe llamar al método WdfUsbTargetDeviceCreateIsochUrb en lugar de USBD_IsochUrbAllocate asignar memoria para la estructura URB .
NTSTATUS USBD_IsochUrbAllocate(
[in] USBD_HANDLE USBDHandle,
[in] ULONG NumberOfIsochPackets,
[out] PURB *Urb
);
[in] USBDHandle
Identificador USBD recuperado por el controlador cliente en una llamada anterior a la rutina USBD_CreateHandle .
[in] NumberOfIsochPackets
Especifica el número máximo de paquetes isócronos necesarios para realizar la transferencia. El búfer de transferencia se describe en una matriz de longitud variable de USBD_ISO_PACKET_DESCRIPTOR estructuras que almacenan información sobre cada paquete, como el desplazamiento de bytes del paquete dentro del búfer. La matriz se especifica en el miembro IsoPacket de la estructura _URB_ISOCH_TRANSFER , que se usa para definir el formato de un URB de solicitud isócrono.
[out] Urb
Puntero a una estructura URB , que recibe el URB asignado por USBD_IsochUrbAllocate. Todos los miembros de la estructura URB se establecen en cero. El URB asignado es lo suficientemente grande como para contener el número máximo de paquetes isócronos indicados por NumberOfIsochPacket.
El controlador cliente debe liberar el URB cuando el controlador haya terminado de usarlo llamando a USBD_UrbFree.
La rutina USBD_IsochUrbAllocate devuelve STATUS_SUCCESS si la solicitud es correcta. De lo contrario, USBD_UrbAllocate establece UrbNULL
en y devuelve un código de error de estado NT.
Entre los valores posibles se incluyen, entre otros, STATUS_INVALID_PARAMETER, que indica el autor de la llamada pasado NULL
a USBDHandle o Urb.
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 |