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


функция USBD_ParseDescriptors (usbdlib.h)

Подпрограмма USBD_ParseDescriptors выполняет поиск заданного дескриптора конфигурации и возвращает указатель на первый дескриптор, соответствующий критериям поиска.

Синтаксис

PUSB_COMMON_DESCRIPTOR USBD_ParseDescriptors(
  [in] PVOID DescriptorBuffer,
  [in] ULONG TotalLength,
  [in] PVOID StartPosition,
  [in] LONG  DescriptorType
);

Параметры

[in] DescriptorBuffer

Указатель на дескриптор конфигурации, содержащий дескриптор, для которого требуется выполнить поиск.

[in] TotalLength

Задает размер буфера в байтах, на который указывает descriptorBuffer.

[in] StartPosition

Указатель на адрес в дескрипторе конфигурации, указанный в descriptorBuffer, чтобы начать поиск. Чтобы выполнить поиск с начала дескриптора конфигурации, параметры DescriptorBuffer и StartPosition должны быть одинаковыми.

[in] DescriptorType

Указывает код типа дескриптора, назначенный USB. Следующие значения допустимы для типов дескрипторов, определенных USB.

USB_STRING_DESCRIPTOR_TYPE

Указывает, что искомый дескриптор является строковым дескриптором.

USB_INTERFACE_DESCRIPTOR_TYPE

Указывает, что поиск дескриптора является дескриптором интерфейса.

USB_ENDPOINT_DESCRIPTOR_TYPE

Указывает, что поиск дескриптора является дескриптором конечной точки.

Возвращаемое значение

USBD_ParseDescriptors возвращает указатель на структуру USB_COMMON_DESCRIPTOR, которая является головой первого дескриптора, соответствующего заданным критериям поиска, или возвращается NULL, если совпадение не найдено:

Замечания

Эта структура используется для хранения части дескриптора, чтобы вызывающий объект USBD_ParseDescriptors может определить правильную структуру для доступа к оставшимся данным дескриптора. Каждый тип дескриптора имеет эти поля в начале данных и вызывающих элементов может использовать bLength и bDescriptorType элементов, чтобы правильно определить тип этого дескриптора.

Когда эта подпрограмма анализирует дескриптор конфигурации, который ищет дескриптор, соответствующий условиям поиска, он возвращает первое совпадение, завершив поиск.

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка usbdlib.h (include Usbdlib.h)
библиотеки Usbd.lib
IRQL < DISPATCH_LEVEL

См. также

справочник по программированию драйверов USB-устройств