Trabalhando com interfaces USB

A estrutura representa cada interface USB como um objeto de interface USB de estrutura. Quando um driver cria um objeto de dispositivo USB de estrutura, a estrutura cria um objeto de interface USB de estrutura para cada interface USB que a primeira configuração USB do dispositivo contém.

A maioria dos dispositivos USB tem apenas uma interface e a interface tem apenas uma configuração alternativa. Os drivers para esses dispositivos normalmente não precisam usar os métodos de objeto definidos pelo objeto de interface USB da estrutura.

Se o driver der suporte a dispositivos USB que fornecem várias interfaces ou configurações alternativas, os métodos de objeto de interface permitirão que o driver execute as seguintes operações:

Obtendo informações de interface

Depois que o driver tiver chamado WdfUsbTargetDeviceCreateWithParameters, ele poderá chamar WdfUsbTargetDeviceGetInterface para obter um identificador para um objeto de interface USB de estrutura que representa uma das interfaces USB do dispositivo. Em seguida, o driver pode chamar vários métodos que o objeto de interface USB define para obter informações sobre a interface USB.

O driver pode chamar os seguintes métodos a qualquer momento depois de ter chamado WdfUsbTargetDeviceCreateWithParameters:

WdfUsbInterfaceGetInterfaceNumber
Retorna o número da interface USB associado a um objeto de interface USB.

WdfUsbInterfaceGetDescriptor
Recupera o descritor de interface USB associado a uma das configurações alternativas de uma interface USB.

WdfUsbInterfaceGetNumEndpoints
Retorna o número de pontos de extremidade associados a uma das configurações alternativas de uma interface USB.

WdfUsbInterfaceGetEndpointInformation
Recupera informações sobre um ponto de extremidade e seu pipe associado.

O driver pode chamar os seguintes métodos depois de chamar WdfUsbTargetDeviceSelectConfig:

WdfUsbInterfaceGetConfiguredSettingIndex
Retorna um valor de índice que identifica a configuração alternativa que está selecionada atualmente para uma interface USB.

WdfUsbInterfaceGetNumConfiguredPipes
Retorna o número de pipes configurados para uma interface de dispositivo USB especificada.

WdfUsbInterfaceGetConfiguredPipe
Retorna um identificador para o objeto de pipe da estrutura associado a uma interface de dispositivo USB especificada e um índice de pipe.

Selecionando uma configuração alternativa para uma interface USB

Depois que um driver tiver chamado WdfUsbTargetDeviceCreateWithParameters, o driver poderá chamar WdfUsbInterfaceGetNumSettings para obter o número de configurações alternativas compatíveis com uma interface USB.

Depois que um driver tiver chamado WdfUsbTargetDeviceSelectConfig para selecionar uma configuração para um dispositivo USB, o driver poderá chamar WdfUsbInterfaceSelectSetting para selecionar uma configuração alternativa para uma das interfaces USB da configuração.

As configurações alternativas do dispositivo devem ser numeradas contíguamente, começando com zero.

Para obter informações relacionadas, consulte Como selecionar uma configuração alternativa em uma interface USB.