Compartir a través de


Interfaces UMDF 1.x específicas de USB

Advertencia

UMDF 2 es la versión más reciente de UMDF y sustituye a UMDF 1. Todos los nuevos controladores UMDF deben escribirse mediante UMDF 2. No se agregan nuevas características a UMDF 1 y hay compatibilidad limitada con UMDF 1 en versiones más recientes de Windows 10. Los controladores universales de Windows deben usar UMDF 2.

Los ejemplos de UMDF 1 archivados se pueden encontrar en la actualización de ejemplos de controladores de Windows 11, versión 22H2 - mayo de 2022.

Para obtener más información, consulta Introducción a UMDF.

Un dispositivo USB puede tener una o varias configuraciones. Cada configuración puede tener una o varias interfaces. Cada interfaz está asociada a una o varias configuraciones alternativas y cada configuración alternativa define uno o varios puntos de conexión. Un punto de conexión representa un búfer en el hardware del dispositivo.

Una canalización es una abstracción de software de una conexión entre el controlador de host y un punto de conexión en la configuración alternativa actual. Una canalización puede ser un destino para E/S y se expone en UMDF mediante la interfaz IWDFUsbTargetPipe .

Las interfaces UMDF específicas de USB se basan en la arquitectura de WinUSB . Por diseño, WinUSB solo permite el acceso a la primera configuración de un dispositivo de configuración múltiple. Por lo tanto, la interfaz WinUSB no expone la capacidad de enviar una solicitud de configuración de selección. Por lo tanto, la funcionalidad de destino de E/S en UMDF no admite la selección de ninguna configuración de dispositivo que no sea la primera.

Las interfaces UMDF específicas de USB tienen una jerarquía de objetos similar a la del modelo USB general. Un controlador UMDF crea un objeto de dispositivo de destino, que se expone mediante la interfaz IWDFUsbTargetDevice . A continuación, el controlador puede usar métodos de IWDFUsbTargetDevice para acceder a interfaces USB, que se exponen mediante instancias de IWDFUsbInterface. El controlador puede llamar a métodos IWDFUsbInterface para manipular la configuración y los puntos de conexión.

En la tabla siguiente se muestra la jerarquía de interfaz UMDF específica del USB:

Interfaz UMDF específica de USB Deriva de
IWDFUsbTargetDevice IWDFIoTarget
IWDFUsbInterface IWDFObject
IWDFUsbTargetPipe IWDFIoTarget

Las interfaces IWDFUsbTargetDevice e IWDFUsbTargetPipe derivan de la interfaz IWDFIoTarget y, por lo tanto, exponen objetos de destino de E/S. La interfaz IWDFUsbInterface no deriva de IWDFIoTarget (IWDFUsbInterface deriva de la interfaz IWDFObject ) y, por lo tanto, no expone un objeto de destino de E/S. Cualquier E/S enviada para detectar y manipular los detalles de la interfaz se envía al dispositivo de destino.

Para obtener instrucciones paso a paso sobre cómo escribir un controlador de cliente USB simple basado en UMDF, consulte Cómo escribir su primer controlador de cliente USB (UMDF).

Para obtener información sobre el código fuente necesario para un controlador de cliente USB basado en UMDF, consulte Descripción de la estructura de código del controlador de cliente USB (UMDF).