Le travail unifié avec tous les appareils d'un ordinateur personnel sous Windows, ainsi que certaines autres fonctions du système d'exploitation sont assurés par un ensemble de pilotes. Pour écrire des pilotes, vous devez avoir une bonne compréhension de la programmation, des principes du noyau et des divers sous-systèmes Windows.
Nécessaire
Kit de développement de pilotes Windows
Instructions
Étape 1
Téléchargez la distribution Windows Driver Development Kit (DDK) sur microsoft.com (disponible pour les abonnés MSDN) et installez-la sur votre ordinateur. Ce package contient tous les outils nécessaires au développement et à la construction de pilotes (compilateur, éditeur de liens, fichiers d'en-tête, bibliothèques), ainsi qu'une documentation complète.
Étape 2
Étudiez en détail toute la documentation disponible sur l'écriture de pilotes pour Windows. Utilisez les informations de référence du DDK et de la rubrique MSDN associée (msdn.microsoft.com). Vous devez bien comprendre tous les aspects du modèle de pilote Windows (WDM) et saisir les concepts architecturaux de base. Vous devez clairement comprendre les différences entre les pilotes en mode utilisateur et en mode noyau, les pilotes de périphérique et les pilotes de système de fichiers. Vous devez connaître les caractéristiques des différentes classes de pilotes, leurs types (pilotes de bus, filtres, pilotes fonctionnels) et leurs sous-types (pilotes d'affichage, modems, périphériques réseau, ports parallèles et série, périphériques de stockage). Portez une attention particulière aux principes des E/S pilotées par paquets avec des IRP réutilisables, de la gestion de la mémoire, de la gestion des exceptions et de l'application correcte des objets de synchronisation.
Étape 3
Définissez clairement la fonctionnalité du pilote en cours de développement. Sur cette base, déterminez à quel type et à quelle classe il appartient.
Étape 4
Sélectionnez un langage de programmation. Traditionnellement, les pilotes en mode noyau sont implémentés en C. Les pilotes en mode utilisateur sont généralement développés en C ++. Il existe plusieurs exceptions à ces règles. Par exemple, les minipilotes clients pour les flux audio et vidéo, les pilotes audio WDM pour les miniports en mode noyau, les pilotes WIA et parfois les pilotes d'affichage sont écrits en C++.
Étape 5
Créez un projet qui implémente le stub du pilote. Explorez le répertoire DDK avec des exemples. Trouvez le bon projet de démonstration de pilote. Si vous ne trouvez pas d'exemple approprié, créez vous-même les fichiers qui contiennent le code source requis et créez les fichiers de script. Par exemple, lors du développement d'un pilote en mode noyau, vous devez implémenter la fonction DriverEntry, qui contient le code d'initialisation ainsi que certaines routines standard (telles que AddDevice, StartIo, etc.).
Étape 6
Implémenter la fonctionnalité du pilote. Ajoutez du code aux fonctions créées à l'étape précédente. Ajoutez une logique pour gérer les demandes d'E/S, etc.