Trabajar con interfaces USB
El marco representa cada interfaz USB como un objeto de interfaz USB de marco. Cuando un controlador crea un objeto de dispositivo USB de marco, el marco crea un objeto de interfaz USB de marco para cada interfaz USB que contiene la primera configuración USB del dispositivo.
La mayoría de los dispositivos USB solo tienen una interfaz y la interfaz solo tiene una configuración alternativa. Normalmente, los controladores de estos dispositivos no necesitan usar los métodos de objeto que define el objeto de interfaz USB del marco.
Si el controlador admite dispositivos USB que proporcionan varias interfaces o configuraciones alternativas, los métodos de objeto de interfaz permiten al controlador realizar las siguientes operaciones:
Obtención de información de interfaz
Una vez que el controlador haya llamado a WdfUsbTargetDeviceCreateWithParameters, puede llamar a WdfUsbTargetDeviceGetInterface para obtener un identificador a un objeto de interfaz USB de marco que representa una de las interfaces USB del dispositivo. A continuación, el controlador puede llamar a varios métodos que el objeto de interfaz USB define para obtener información sobre la interfaz USB.
El controlador puede llamar a los métodos siguientes en cualquier momento después de llamar a WdfUsbTargetDeviceCreateWithParameters:
WdfUsbInterfaceGetInterfaceNumber
Devuelve el número de interfaz USB asociado a un objeto de interfaz USB.
WdfUsbInterfaceGetDescriptor
Recupera ese descriptor de interfaz USB asociado a una de las opciones alternativas de una interfaz USB.
WdfUsbInterfaceGetNumEndpoints
Devuelve el número de puntos de conexión asociados a una de las opciones alternativas de una interfaz USB.
WdfUsbInterfaceGetEndpointInformation
Recupera información sobre un punto de conexión y su canalización asociada.
El controlador puede llamar a los métodos siguientes después de llamar a WdfUsbTargetDeviceSelectConfig:
WdfUsbInterfaceGetConfiguredSettingIndex
Devuelve un valor de índice que identifica la configuración alternativa seleccionada actualmente para una interfaz USB.
WdfUsbInterfaceGetNumConfiguredPipes
Devuelve el número de canalizaciones configuradas para una interfaz de dispositivo USB especificada.
WdfUsbInterfaceGetConfiguredPipe
Devuelve un identificador al objeto de canalización del marco asociado a una interfaz de dispositivo USB y un índice de canalización especificados.
Seleccionar una configuración alternativa para una interfaz USB
Una vez que un controlador ha llamado a WdfUsbTargetDeviceCreateWithParameters, el controlador puede llamar a WdfUsbInterfaceGetNumSettings para obtener el número de configuraciones alternativas que admite una interfaz USB.
Después de llamar a un controlador WdfUsbTargetDeviceSelectConfig para seleccionar una configuración para un dispositivo USB, el controlador puede llamar a WdfUsbInterfaceSelectSetting para seleccionar una configuración alternativa para una de las interfaces USB de la configuración.
La configuración alternativa del dispositivo debe estar numerada de forma contigua, empezando por cero.
Para obtener información relacionada, vea Cómo seleccionar una configuración alternativa en una interfaz USB.