Partager via


Création d’un pilote de filtre

Dans cette rubrique, nous expliquons comment utiliser Visual Studio pour commencer à écrire un nouveau pilote de filtre. Les pilotes de filtre sont différents des pilotes de fonction de périphérique, des pilotes logiciels et des pilotes de système de fichiers, que nous aborderons dans d’autres rubriques. Pour en savoir plus sur les pilotes de filtre et la façon dont ils diffèrent des autres types de pilotes, consultez les rubriques suivantes.

Pour commencer, déterminez d’abord le modèle de pilote approprié pour votre pilote de filtre. Pour obtenir de l’aide sur le modèle qui vous convient le mieux, consultez Choix d’un modèle de pilote. Si vous écrivez un pilote de filtre pour un périphérique matériel, déterminez l’emplacement de votre appareil dans la liste des technologies décrites dans Technologies de périphérique et de pilote. Consultez la documentation relative à cette technologie particulière pour voir s’il existe des conseils pour choisir un modèle de pilote de filtre. Le modèle de pilote de filtre recommandé varie d’une technologie à l’autre. Pour certaines technologies, la documentation recommande d’utiliser l’infrastructure de pilote en mode utilisateur (UMDF), l’infrastructure de pilote en mode noyau (KMDF) ou le modèle de pilote Windows (WDM). Pour les autres technologies, la documentation fournit des détails explicites sur l’écriture d’un pilote de filtre. Certaines technologies ont des modèles de filtre mini. Pour certaines technologies, il peut ne pas y avoir de recommandation pour un modèle de pilote de filtre.

Ensuite, déterminez lequel des cas suivants décrit votre recommandation de modèle de pilote et suivez les étapes suivantes :

Cas 1 : La documentation de votre technologie recommande UMDF.

  1. Dans Visual Studio, dans le menu Fichier , choisissez Nouveau | Projet.
  2. Dans la boîte de dialogue Nouveau projet, dans le volet gauche, recherchez et sélectionnez Visual C++ | Pilote Windows | WDF.
  3. Dans le volet central, sélectionnez Pilote en mode utilisateur (UMDF).
  4. Renseignez les zones Nom et Emplacement , puis sélectionnez OK. Pour plus d’informations, consultez Écriture d’un pilote UMDF basé sur un modèle. Note Lorsque vous créez un pilote UMDF, vous devez sélectionner un nom de pilote contenant 32 caractères ou moins. Cette limite de longueur est définie dans wdfglobals.h.
  5. À ce stade, vous avez un projet de pilote qui implémente le code général requis par la plupart des pilotes UMDF. Vous pouvez maintenant fournir le code spécifique à votre filtre.

Cas 2 : La documentation de votre technologie recommande KMDF.

  1. Dans Visual Studio, dans le menu Fichier , choisissez Nouveau | Projet.
  2. Dans la boîte de dialogue Nouveau projet, dans le volet gauche, recherchez et sélectionnez WDF.
  3. Dans le volet central, sélectionnez Pilote en mode noyau (KMDF).
  4. Renseignez les zones Nom et Emplacement , puis sélectionnez OK. Pour plus d’informations, consultez Écriture d’un pilote KMDF basé sur un modèle. Note Lorsque vous créez un pilote KMDF, vous devez sélectionner un nom de pilote contenant 32 caractères ou moins. Cette limite de longueur est définie dans wdfglobals.h.
  5. À ce stade, vous avez un projet de pilote qui implémente le code général requis par la plupart des pilotes KMDF. Vous pouvez maintenant fournir le code spécifique à votre filtre.

Cas 3 : La documentation de votre technologie décrit un filtre ou un mini-modèle de filtre spécifique.

Si votre technologie d’appareil a un modèle de filtre ou de minifiltre spécifique, case activée pour voir si Visual Studio dispose d’un modèle pour le modèle.

  1. Dans Visual Studio, dans le menu Fichier , choisissez Nouveau | Projet.
  2. Dans la boîte de dialogue Nouveau projet, dans le volet gauche, recherchez et sélectionnez Modèles | Visual C++ | Pilote Windows.
  3. Parcourez la liste des modèles installés pour voir s’il existe un modèle pour le type de filtre que vous devez écrire. Par exemple, vous pouvez choisir le modèle Filtrer le pilote : NDIS sous Mise en réseau.
  4. S’il n’existe aucun modèle pour votre type de pilote de filtre sous Pilote Windows, sélectionnez En ligne et parcourez les modèles disponibles en ligne.
  5. Si vous trouvez un modèle pour votre type de pilote de filtre, sélectionnez-le, renseignez les zones Nom et Emplacement , puis sélectionnez OK.
  6. À ce stade, vous disposez d’un projet de pilote qui implémente le code général requis par votre pilote de filtre. Vous pouvez maintenant fournir le code spécifique à votre filtre. Reportez-vous à la documentation de votre technologie pour en savoir plus sur les fonctions que vous devez implémenter.

Si votre technologie d’appareil a un modèle de filtre spécifique ou un modèle de minifiltre et que vous ne trouvez pas de modèle pour votre type de pilote de filtre, reportez-vous à votre documentation spécifique à la technologie pour déterminer s’il faut utiliser UMDF, KMDF ou WDM.

Cas 4 : La documentation de votre technologie recommande WDM.

  1. Dans Visual Studio, dans le menu Fichier , choisissez Nouveau | Projet.

  2. Dans Visual Studio, dans la boîte de dialogue Nouveau projet, sous Pilote Windows, sélectionnez WDM.

  3. Renseignez les zones Nom et Emplacement , puis sélectionnez OK.

  4. À ce stade, vous avez un projet de pilote WDM vide. Dans la fenêtre Explorateur de solutions, sélectionnez votre projet de pilote de façon enfoncée (ou cliquez avec le bouton droit), puis choisissez Ajouter | Nouvel élément.

  5. Dans la boîte de dialogue Ajouter un nouvel élément, sélectionnez Fichier C++ (.cpp), entrez un nom pour votre fichier, puis sélectionnez OK.

    Note Si vous souhaitez créer un fichier .c au lieu d’un fichier .cpp, entrez un nom qui a l’extension .c .

  6. Implémentez les fonctions requises par votre filtre. Lorsque vous implémentez et organisez vos fonctions, vous pouvez décider d’ajouter des fichiers .cpp ou .c supplémentaires.

Cas 5 : La documentation de votre technologie n’a pas de recommandation pour un modèle de pilote de filtre.

  1. Déterminez si UMDF, KMDF ou WDM est le meilleur modèle pour votre pilote de filtre. Pour obtenir de l’aide, consultez Choix d’un modèle de pilote.

  2. Dans Visual Studio, dans le menu Fichier , choisissez Nouveau | Projet.

  3. Dans Visual Studio, dans la boîte de dialogue Nouveau projet, sous Pilote Windows, sélectionnez l’un des modèles suivants :

    • WDF | Pilote en mode utilisateur (UMDF)
    • WDF | Pilote en mode noyau (KMDF)
    • WDM | Pilote de noyau vide

    Note Lorsque vous créez un pilote KMDF ou UMDF, vous devez sélectionner un nom de pilote contenant 32 caractères ou moins. Cette limite de longueur est définie dans wdfglobals.h.

  4. Implémentez les fonctions requises par votre filtre. Créez des fichiers .c ou .cpp en fonction des besoins.

Si vous ne savez pas quel modèle utiliser, envisagez de lire ou de publier sur le forum Windows Hardware WDK and Driver Development .