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 (status) равно TRUE. В противном случае возвращается значение состояния, для которого NT_SUCCESS(status) равно FALSE.

Комментарии

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

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

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

Требования

Требование Значение
Заголовок usbfnioctl.h

См. также раздел

IOCTL_INTERNAL_USBFN_ACTIVATE_USB_BUS

USBFN_INTERFACE_INFO