Interfaces UMDF 1.x spécifiques à USB
Avertissement
UMDF 2 est la dernière version de UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide de UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et il existe une prise en charge limitée de UMDF 1 sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2.
Les exemples UMDF 1 archivés sont disponibles dans la mise à jour des exemples de pilotes Windows 11 version 22H2 - Mai 2022.
Pour plus d’informations, consultez Bien démarrer avec UMDF.
Un périphérique USB peut avoir une ou plusieurs configurations. Chaque configuration peut avoir une ou plusieurs interfaces. Chaque interface est associée à un ou plusieurs paramètres alternatifs, et chaque paramètre secondaire définit un ou plusieurs points de terminaison. Un point de terminaison représente une mémoire tampon sur le matériel de l’appareil.
Un canal est une abstraction logicielle d’une connexion entre le contrôleur hôte et un point de terminaison dans le paramètre alternatif actuel. Un canal peut être une cible pour les E/S et est exposé dans UMDF par l’interface IWDFUsbTargetPipe .
Les interfaces UMDF spécifiques à l’USB sont basées sur l’architecture WinUSB . Par conception, WinUSB autorise l’accès uniquement à la première configuration d’un appareil de configuration multiple. Par conséquent, l’interface WinUSB n’expose pas la possibilité d’envoyer une demande de configuration de sélection. Par conséquent, la fonctionnalité cible d’E/S dans UMDF ne prend pas en charge la sélection d’une configuration d’appareil autre que la première.
Les interfaces UMDF spécifiques à USB ont une hiérarchie d’objets similaire à celle du modèle USB général. Un pilote UMDF crée un objet d’appareil cible, qui est exposé par l’interface IWDFUsbTargetDevice . Le pilote peut ensuite utiliser des méthodes d’IWDFUsbTargetDevice pour accéder aux interfaces USB, qui sont exposées par des instances d’IWDFUsbInterface. Le pilote peut appeler des méthodes IWDFUsbInterface pour manipuler les paramètres et les points de terminaison.
Le tableau suivant montre la hiérarchie d’interface UMDF spécifique à USB :
Interface UMDF spécifique à USB | Dérivé de |
---|---|
IWDFUsbTargetDevice | IWDFIoTarget |
IWDFUsbInterface | IWDFObject |
IWDFUsbTargetPipe | IWDFIoTarget |
Les interfaces IWDFUsbTargetDevice et IWDFUsbTargetPipe dérivent de l’interface IWDFIoTarget et, par conséquent, exposent des objets cibles d’E/S. L’interface IWDFUsbInterface ne dérive pas de IWDFIoTarget (IWDFUsbInterface dérive de l’interface IWDFObject ) et, par conséquent, n’expose pas d’objet cible d’E/S. Tous les E/S envoyés pour découvrir et manipuler les détails de l’interface sont envoyés à l’appareil cible.
Pour obtenir des instructions pas à pas sur l’écriture d’un pilote client USB simple basé sur UMDF, consultez Comment écrire votre premier pilote client USB (UMDF).
Pour en savoir plus sur le code source requis pour un pilote client USB basé sur UMDF, consultez Présentation de la structure de code du pilote client USB (UMDF).