Работа с USB-интерфейсами
Платформа представляет каждый ИНТЕРФЕЙС USB как объект интерфейса USB платформы. Когда драйвер создает объект USB-устройства платформы, платформа создает объект интерфейса USB платформы для каждого ИНТЕРФЕЙСА USB, который содержит первая конфигурация USB устройства.
Большинство USB-устройств имеют только один интерфейс, а интерфейс имеет только один альтернативный параметр. Драйверам для таких устройств обычно не требуется использовать методы объектов, определяемые объектом интерфейса USB платформы.
Если драйвер поддерживает USB-устройства, предоставляющие несколько интерфейсов или альтернативных параметров, методы объекта интерфейса позволяют драйверу выполнять следующие операции:
Получение сведений об интерфейсе
После вызова WdfUsbTargetDeviceCreateWithParameters драйвер может вызвать WdfUsbTargetDeviceGetInterface , чтобы получить дескриптор объекта интерфейса USB платформы, который представляет один из ИНТЕРФЕЙСов USB устройства. Затем драйвер может вызвать несколько методов, которые объект интерфейса USB определяет для получения сведений об интерфейсе USB.
Драйвер может в любое время вызывать следующие методы после вызова WdfUsbTargetDeviceCreateWithParameters:
WdfUsbInterfaceGetInterfaceNumber
Возвращает номер интерфейса USB, связанный с объектом интерфейса USB.
WdfUsbInterfaceGetDescriptor
Извлекает дескриптор интерфейса USB, связанный с одним из альтернативных параметров ИНТЕРФЕЙСА USB.
WdfUsbInterfaceGetNumEndpoints
Возвращает количество конечных точек, связанных с одним из альтернативных параметров ИНТЕРФЕЙСА USB.
WdfUsbInterfaceGetEndpointInformation
Извлекает сведения о конечной точке и связанном с ней канале.
После вызова WdfUsbTargetDeviceSelectConfig драйвер может вызвать следующие методы:
WdfUsbInterfaceGetConfiguredSettingIndex
Возвращает значение индекса, определяющее альтернативный параметр, выбранный в данный момент для ИНТЕРФЕЙСА USB.
WdfUsbInterfaceGetNumConfiguredPipes
Возвращает количество каналов, настроенных для указанного интерфейса USB-устройства.
WdfUsbInterfaceGetConfiguredPipe
Возвращает дескриптор объекта канала платформы, связанного с указанным интерфейсом USB-устройства и индексом канала.
Выбор альтернативного параметра для интерфейса USB
После вызова драйвера WdfUsbTargetDeviceCreateWithParameters драйвер может вызвать WdfUsbInterfaceGetNumSettings , чтобы получить количество альтернативных параметров, поддерживаемых USB-интерфейсом.
После вызова драйвера WdfUsbTargetDeviceSelectConfig для выбора конфигурации USB-устройства драйвер может вызвать WdfUsbInterfaceSelectSetting , чтобы выбрать альтернативный параметр для одного из USB-интерфейсов конфигурации.
Альтернативные параметры устройства должны быть пронумерованы непрерывно, начиная с нуля.
Дополнительные сведения см. в статье Выбор альтернативного параметра в ИНТЕРФЕЙСе USB.