IOCTL_INTERNAL_USBFN_GET_INTERFACE_DESCRIPTOR_SET IOCTL (usbfnioctl.h)
El controlador de clase envía esta solicitud para obtener todo el conjunto de descriptores de interfaz USB para una función en el dispositivo.
Código principal
IRP_MJ_INTERNAL_DEVICE_CONTROL
Búfer de entrada
Puntero a un búfer que contiene una estructura de USBFN_INTERFACE_INFO .
Longitud del búfer de entrada
La longitud del búfer de entrada debe ser al menos sizeof(USBFN_INTERFACE_INFO)
.
Búfer de salida
Puntero a un búfer que contiene una estructura de USBFN_INTERFACE_INFO . La extensión de clase de función USB (UFX) rellena la estructura con todo el conjunto de descriptores de interfaz, incluidos sus descriptores de punto de conexión.
Longitud del búfer de salida
La longitud del búfer de salida debe ser al menos sizeof(USBFN_INTERFACE_INFO)
.
Bloque de estado
Si la solicitud se realiza correctamente, la extensión de clase de función USB (UFX) devuelve STATUS_SUCCESS u otro valor de estado para el que NT_SUCCESS(status) es igual a TRUE. De lo contrario, devuelve un valor de estado para el que NT_SUCCESS(status) es igual a FALSE.
Comentarios
Esta solicitud debe enviarse después de enviar la solicitud de IOCTL_INTERNAL_USBFN_ACTIVATE_USB_BUS .
La longitud del descriptor de interfaz completo es variable. Es posible que el controlador de clase tenga que enviar esta solicitud IOCTL dos veces para obtener todo el conjunto de descriptores.
Si la longitud del conjunto de descriptores completo es mayor que la longitud del búfer de salida especificada, UFX establece el miembro Size de USBFN_INTERFACE_INFO en la longitud real del búfer y produce un error en la solicitud con STATUS_BUFFER_TOO_SMALL. A continuación, el controlador debe asignar un búfer de salida de longitud especificado por Size y volver a enviar la solicitud.
Requisitos
Requisito | Valor |
---|---|
Header | usbfnioctl.h |