Choisir un modèle de pilote
Microsoft Windows fournit un large éventail de modèles de pilotes que vous pouvez utiliser pour écrire des pilotes. La stratégie de choix du meilleur modèle de pilote dépend du type de pilote que vous envisagez d’écrire. Voici les options suivantes :
- Pilote de fonction de périphérique
- Pilote de filtre de périphérique
- Pilote logiciel
- Pilote de filtre du système de fichiers
- Pilote du système de fichiers
Pour une discussion sur les différences entre les différents types de pilotes, consultez Qu’est-ce qu’un pilote ? et les nœuds d’appareil et les piles d’appareils. Les sections suivantes expliquent comment choisir un modèle pour chaque type de pilote.
Choix d’un modèle de pilote pour un pilote de fonction d’appareil
Lorsque vous concevez un périphérique matériel, l’une des premières choses à prendre en compte est de savoir si vous devez écrire un pilote de fonction. Posez les questions suivantes :
Pouvez-vous éviter d’écrire un pilote entièrement ? Si vous devez écrire un pilote de fonction, quel est le meilleur modèle de pilote à utiliser ? Pour répondre à ces questions, déterminez l’emplacement de votre appareil dans la liste des technologies décrites dans les technologies de périphérique et de pilote. Consultez la documentation relative à cette technologie particulière pour déterminer si vous avez besoin d’écrire un pilote de fonction et pour en savoir plus sur les modèles de pilotes disponibles pour votre appareil.
Certaines des technologies individuelles ont des modèles minidriver. Dans un modèle minidriver, le pilote de périphérique se compose de deux parties : une qui gère les tâches générales et une qui gère les tâches spécifiques à l’appareil. En règle générale, Microsoft écrit la partie générale et le fabricant de l’appareil écrit la partie spécifique à l’appareil. Les parties spécifiques de l’appareil ont un large éventail de noms, dont la plupart partagent le préfixe mini. Voici quelques-uns des noms utilisés dans les modèles minidriver :
- Afficher le pilote miniport
- Pilote de miniport audio
- Pilote miniclasse de batterie
- Pilote de protocole Bluetooth
- Minidriver HID
- Minidriver WIA
- Pilote miniport NDIS
- Pilote miniport de stockage
- Minidriver de diffusion en continu
Pour obtenir une vue d’ensemble des modèles minidriver, consultez minidrivers et paires de pilotes.
Toutes les technologies répertoriées dans les technologies de périphérique et de pilote n’ont pas de modèle minidriver dédié. La documentation relative à une technologie particulière peut vous conseiller d’utiliser l’infrastructure kmDF (Kernel-Mode Driver Framework) ; la documentation d’une autre technologie peut vous conseiller d’utiliser l’infrastructure de pilote en mode utilisateur (UMDF). Le point clé est que vous devez commencer par étudier la documentation de votre technologie d’appareil spécifique. Si la technologie de votre appareil a un modèle minidriver, vous devez utiliser le modèle minidriver. Sinon, suivez les conseils de la documentation spécifique à la technologie sur l’utilisation de la fonction UMDF, KMDF ou du modèle de pilote Windows (WDM).
Choix d’un modèle de pilote pour un pilote de filtre d’appareil
Souvent, plusieurs pilotes participent à une demande d’E/S unique (comme la lecture de données à partir d’un appareil). Les pilotes sont superposés dans une pile, et la façon conventionnelle de visualiser la pile est avec le premier pilote en haut et le dernier pilote en bas. La pile a un pilote de fonction et peut également avoir des pilotes de filtre. Pour une discussion sur les pilotes de fonction et les pilotes de filtre, consultez Qu’est-ce qu’un pilote et les nœuds d’appareil et les piles d’appareils.
Si vous préparez à écrire un pilote de filtre pour un appareil, déterminez l’emplacement de votre appareil dans la liste des technologies décrites dans les technologies de périphérique et de pilote. Vérifiez si la documentation de votre technologie d’appareil particulière contient des conseils sur le choix d’un modèle de pilote de filtre. Si la documentation de votre technologie d’appareil n’offre pas ces conseils, envisagez d’abord d’utiliser UMDF comme modèle de pilote. Si votre pilote de filtre a besoin d’accéder aux structures de données qui ne sont pas disponibles via UMDF, envisagez d’utiliser KMDF comme modèle de pilote. Dans les rares cas où votre pilote a besoin d’accéder aux structures de données non disponibles via KMDF, utilisez WDM comme modèle de pilote.
Choix d’un modèle de pilote pour un pilote logiciel
Un pilote qui n’est pas associé à un appareil est appelé pilote logiciel. Pour une discussion sur les pilotes logiciels, consultez Qu’est-ce qu’un pilote ?. Les pilotes logiciels sont utiles, car ils peuvent s’exécuter en mode noyau, ce qui leur donne accès aux données de système d’exploitation protégées. Pour plus d’informations sur les modes processeur, consultez le mode utilisateur et le mode noyau.
Pour un pilote logiciel, vos deux options sont KMDF et le modèle de pilote Windows NT hérité. Avec KMDF et le modèle Windows NT hérité, vous pouvez écrire votre pilote sans vous soucier de Plug-and-Play (PnP) et de la gestion de l’alimentation. Vous pouvez vous concentrer plutôt sur les tâches principales de votre pilote. Avec KMDF, vous n’avez pas à vous soucier de PnP et de puissance, car l’infrastructure gère PnP et la puissance pour vous. Avec le modèle Windows NT hérité, vous n’avez pas à vous soucier de PnP et de l’alimentation, car les services en mode noyau fonctionnent dans un environnement complètement indépendant de PnP et de la gestion de l’alimentation.
Notre recommandation est que vous utilisez KMDF, en particulier si vous êtes déjà familiarisé avec elle. Si vous souhaitez que votre pilote soit complètement indépendant de PnP et de la gestion de l’alimentation, utilisez le modèle Windows NT hérité. Si vous devez écrire un pilote logiciel qui connaît les transitions d’alimentation ou les événements PnP, vous ne pouvez pas utiliser le modèle Windows NT hérité ; vous devez utiliser KMDF.
Remarque : Dans le cas très rare où vous devez écrire un pilote logiciel qui connaît pnP ou des événements d’alimentation, et que votre pilote a besoin d’accéder aux données qui ne sont pas disponibles via KMDF, vous devez utiliser WDM.
Choix d’un modèle de pilote pour un pilote de système de fichiers
Pour obtenir de l’aide sur le choix d’un modèle pour un pilote de système de fichiers, consultez les exemples de pilotes du système de fichiers. Notez que les pilotes de système de fichiers peuvent être complexes et peuvent nécessiter une connaissance des concepts avancés pour le développement de pilotes.
Choix d’un modèle de pilote pour un pilote de filtre de système de fichiers
Pour obtenir de l’aide sur le choix d’un modèle pour un pilote de filtre de système de fichiers, consultez les pilotes minifilter du système de fichiers et les pilotes de filtre de système de fichiers.
Choix d’un modèle de pilote pour un pilote minifilter du système de fichiers
Pour obtenir de l’aide sur le choix d’un modèle pour un pilote minifilter du système de fichiers, consultez Pilotes minifiltres du système de fichiers.