Поделиться через


IOCTL_INTERNAL_USBFN_GET_INTERFACE_DESCRIPTOR_SET IOCTL (usbfnioctl.h)

Драйвер класса отправляет этот запрос, чтобы получить весь дескриптор интерфейса USB для функции на устройстве.

примечание Не используйте этот запрос для извлечения набора дескриптора интерфейса для всего устройства.
 

Основной код

IRP_MJ_INTERNAL_DEVICE_CONTROL

Входной буфер

Указатель на буфер, содержащий структуру USBFN_INTERFACE_INFO.

Длина входного буфера

Длина входного буфера должна быть не менее sizeof(USBFN_INTERFACE_INFO).

Выходной буфер

Указатель на буфер, содержащий структуру USBFN_INTERFACE_INFO. Расширение класса функции USB (UFX) заполняет структуру всем набором дескрипторов интерфейса, включая дескрипторы конечных точек.

Длина выходного буфера

Длина выходного буфера должна быть не менее sizeof(USBFN_INTERFACE_INFO).

Блок состояния

Если запрос выполнен успешно, расширение класса функции USB (UFX) возвращает STATUS_SUCCESS или другое значение состояния, для которого NT_SUCCESS(состояние) равно TRUE. В противном случае возвращается значение состояния, для которого NT_SUCCESS(состояние) равно FALSE.

Замечания

Этот запрос должен быть отправлен после отправки запроса IOCTL_INTERNAL_USBFN_ACTIVATE_USB_BUS.

Длина дескриптора всего интерфейса является переменной. Драйвер класса может потребоваться отправить этот запрос IOCTL дважды, чтобы получить весь набор дескрипторов.

Если длина всего набора дескрипторов больше указанной длины выходного буфера, UFX задает член размера USBFN_INTERFACE_INFO фактической длины буфера и завершает запрос с STATUS_BUFFER_TOO_SMALL. Затем драйвер должен выделить выходной буфер длины, указанной size, и повторно отправить запрос.

Требования

Требование Ценность
заголовка usbfnioctl.h

См. также

IOCTL_INTERNAL_USBFN_ACTIVATE_USB_BUS

USBFN_INTERFACE_INFO