Partager via


Règle DoubleFetch (wdm)

La règle DoubleFetch est une règle de sécurité importante qui vérifie qu’un pilote accède en toute sécurité aux mémoires tampons qui sont passées à l’espace utilisateur via les irps. La façon appropriée d’envoyer des données en toute sécurité entre un pilote et un composant en mode utilisateur est décrite dans Utilisation des E/S directes ou mises en mémoire tampon.

Un pilote doit accéder aux mémoires tampons de données en suivant les instructions et les meilleures pratiques décrites dans Méthodes d’accès aux mémoires tampons de données.

Cette règle vérifie la double extraction à partir des pointeurs de mémoire en mode utilisateur. Les accès en mode noyau double de la mémoire en mode utilisateur peuvent entraîner un problème de sécurité de condition de concurrence. Lors de l’accès aux données en mode utilisateur, le code en mode noyau doit effectuer une copie des données en mode utilisateur localement et éviter d’accéder aux données en mode utilisateur plusieurs fois. Si vous ne le faites pas, vous obtenez un type de problème appelé « double extraction », où les données peuvent changer après leur premier accès.

Cette règle est disponible à partir de Windows 10 WDK, build 20236. Cette règle n’est disponible que pour les types de pilotes WDM et génériques .

Modèle de pilote : WDM, Generic

Comment tester

Au moment de la compilation :

  1. Exécutez Static Driver Verifier et spécifiez la règle de doublefetch .

  2. Utilisez les étapes suivantes (décrites dans Utilisation du vérificateur de pilote statique pour rechercher des défauts dans les pilotes Windows) pour exécuter une analyse de votre code :

Pour plus d’informations, consultez Utilisation du vérificateur de pilote statique pour rechercher des défauts dans les pilotes.