Prise en main avec UMDF

Cette section décrit User-Mode Driver Framework (UMDF) et détaille les différences entre les versions 1 et 2 d’UMDF. Il fournit également des informations architecturales de haut niveau sur UMDF. Utilisez cette section pour déterminer si un pilote UMDF est le bon choix pour vos besoins et pour déterminer la version d’UMDF à utiliser.

Windows Driver Frameworks (WDF) contient UMDF, une infrastructure pour la création de pilotes en mode utilisateur. Comme Kernel-Mode Driver Framework (KMDF), UMDF fournit une couche d’abstraction à partir de WDM, qui gère une grande partie des fonctionnalités de Plug-and-Play (PnP) et de gestion de l’alimentation, et permet au pilote d’opter pour des fonctionnalités et une gestion des événements spécifiques.

Dans Windows 8.1, il existe deux versions principales d’UMDF, les versions 1 et 2. UMDF version 1.11 (un point onze) est la version la plus récente d’UMDF version 1 et est la version finale avant l’avènement d’UMDF 2. Pour obtenir un tableau montrant les informations de version complètes et la pertinence du système d’exploitation, consultez Historique des versions UMDF.

L’écriture d’un pilote à l’aide d’UMDF version 1 nécessite l’utilisation du modèle de programmation COM pour écrire du code C++. Alors que la version 2 d’UMDF est basée sur le même modèle de programmation de pilote conceptuel que KMDF, UMDF 1 implémente le modèle avec différents composants, interfaces de pilote de périphérique (DDIs) et structures de données. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide d’UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et la prise en charge d’UMDF 1 est limitée sur les versions plus récentes de Windows 10 et Windows 11.

En revanche, à partir d’UMDF version 2, vous pouvez écrire un pilote UMDF dans le langage de programmation C qui appelle la plupart des méthodes disponibles pour les pilotes KMDF. Toutes les interfaces partagées entre UMDF version 2 et KMDF ont les mêmes noms, paramètres et définitions de structure. Si votre pilote utilise uniquement des fonctionnalités partagées ou utilise des macros conditionnelles autour des appels pris en charge uniquement dans une infrastructure, vous pouvez écrire un seul pilote que vous pouvez compiler avec UMDF ou KMDF. Pour plus d’informations, consultez Comment générer un pilote UMDF à partir d’un pilote KMDF.

Bien qu’il existe des points communs significatifs entre UMDF 2 et KMDF, il existe encore une petite quantité de fonctionnalités disponibles uniquement dans une infrastructure ou l’autre. Pour plus d’informations, consultez Comparaison des fonctionnalités UMDF 2 à KMDF. Pour obtenir la liste de tous les rappels et méthodes UMDF 2 et KMDF, ainsi que les framework(s) auxquels ils s’appliquent, consultez Résumé des rappels et méthodes WDF. Dans certains cas, un membre de structure ou un paramètre d’une méthode s’applique uniquement à une infrastructure ou à l’autre. La documentation décrit ces différences dans les pages de référence correspondantes.