Comme nous le savons tous, le modèle de pilote WDF, à partir de Windows 2000, doit être basé sur WDM. Cependant, son développement est très difficile et nous ne pouvons pas nous attendre à ce qu'il soit aussi simple que le développement d'applications en mode utilisateur. Pour améliorer cette situation, Microsoft a lancé un nouvel environnement de développement de pilotes. Il convient de préciser au préalable qu'il ne s'agit pas d'une réinvention, mais d'une modélisation et d'une encapsulation basées sur WDM. La particularité importante est qu'elle réduit la difficulté de développement. parce que:
1. Appliquer la technologie originale basée sur les objets dans la programmation ordinaire au développement de pilotes. Bien qu’il existe un modèle objet dans WDM, ce n’est pas du tout la même chose qu’une véritable technologie basée sur les objets. Afin de mettre en œuvre une technologie basée sur les objets, Microsoft a soigneusement conçu le modèle objet et l'a encapsulé. Propriétés, méthodes, événements, etc. "aucun d'entre eux ne peut manquer".
2. Les pilotes en mode noyau et les pilotes en mode utilisateur sont construits à l'aide du même modèle objet et utilisent le même support de base. Cette fondation est WDF. Bien que WDF soit déjà un modèle objet encapsulé et défini, pour les objets en mode noyau et en mode utilisateur, WDF est l'objet parent des deux. En d’autres termes, les deux sont hérités de WDF, ou les deux sont dérivés de WDF. Par rapport au mode noyau, l'objet dérivé est appelé « framework KMD » ou KMDF ; par rapport au mode utilisateur, le modèle dérivé est appelé « framework UMD » ou UMDF ; Quel que soit le modèle du framework, ses méthodes d'encapsulation internes et ses comportements d'exécution sont effectivement complétés à l'aide de WDM.
3. Plus important encore, et ce que Microsoft a montré à plusieurs reprises, c'est l'encapsulation de certains comportements courants dans les pilotes : par exemple, le plug and play et la gestion de l'alimentation font partie de ce comportement courant. Étant donné que la plupart des pilotes doivent gérer des problèmes de plug-and-play et de gestion de l'alimentation, on dit que cela nécessite environ des milliers de lignes de code. De plus, il ne sera peut-être pas capable de bien le gérer sans un certain niveau de compétence. Afin de résoudre le problème une fois pour toutes, WDF a simplement encapsulé le plug-and-play et la gestion de l'alimentation dans l'objet, ce qui en fait le comportement par défaut de l'objet d'un seul coup.
4. La relation entre le noyau du système d'exploitation et le pilote a été modifiée. Dans le pilote WDM, d'une part, il doit gérer le matériel et, d'autre part, il doit gérer l'interaction entre le pilote. et le noyau du système d'exploitation. Désormais, WDF sépare le pilote du noyau du système d'exploitation. L'interaction entre le pilote et le système d'exploitation est complétée par des méthodes (fonctions) encapsulées dans le framework, de sorte que les développeurs de pilotes doivent uniquement se concentrer sur le traitement du comportement du matériel. Cela évite non seulement les inconvénients de se concentrer sur une chose au détriment de l'autre, mais aussi en raison de la séparation des deux parties, cela présente un grand avantage pour certains changements dans le système d'exploitation et le développement de pilotes de support pour les fabricants de matériel. .
5. Les deux modes de pilotes (KMDF, UMDF) sont construits en utilisant le même environnement, appelé WDK.
Autrement dit, l'environnement de développement de KMDF et UMDF est WDK.
Windows Device Kit (WDK) : En intégrant des suites de tests, le DDK devient le WDK. WDK est un système de développement intégré avec pilotes pour la série de systèmes d'exploitation Microsoft. Il combine les kits Windows DDK et Hardware Compatibility Test (HCT) (outils de test de compatibilité matérielle) et fournit également la suite de tests interne de Microsoft pour tester la stabilité et la fiabilité des systèmes d'exploitation Windows.
6. Bien qu'il soit encapsulé et qu'une technologie basée sur les objets soit introduite, l'efficacité d'exécution du pilote développé n'est pas inférieure à celle d'origine.
Cet article provient du blog CSDN Veuillez indiquer la source lors de la réimpression : http://blog.csdn.net/ding_3/archive/2009/12/23/5060907.aspx.
-