Ensemble de règles d’avertissement (WDM)
Utilisez ces règles pour vérifier que votre pilote peut traiter correctement les IRP dans différents contextes et suivre les meilleures pratiques recommandées par Microsoft.
Contenu de cette section
Rubrique | Description |
---|---|
La règle CheckDeviceObjectFlags spécifie qu’un pilote de bus doit case activée que les indicateurs d’objet d’appareil pour DO_POWER_PAGABLE et DO_POWER_INRUSH sont définis de manière cohérente pour le FDO et les PDO enfants. Cette règle s’applique uniquement aux pilotes de bus. |
|
La règle CompletionEventChecking spécifie qu’un pilote n’appelle pas IoMarkIrpPending et KeSetEvent dans une routine d’achèvement pour le même IRP. |
|
La règle DeleteDevice spécifie que les pilotes ne doivent pas s’appuyer sur le Gestionnaire d’E/S ou le Gestionnaire PnP pour maintenir l’objet DeviceObject actif après un appel à IoDeleteDevice. |
|
La règle MultRemoveLock vérifie que IoAcquireRemoveLock est appelé avec un seul verrou de suppression unique. Il s’agit d’une règle d’avertissement. |
|
La règle PagedCode spécifie que le pilote appelle la macro PAGED_CODE uniquement lorsqu’elle s’exécute à IRQL <= APC_LEVEL. |
|
La règle PagedCodeAtPowerTrans spécifie qu’un pilote ne doit pas appeler PAGED_CODE lorsqu’il répond à un système IRP_MJ_POWER Irp (IRP_MN_SET_POWER) et à un appareil IRP_MJ_POWER Irp (IRP_MN_SET_POWER). |
|
La règle ReservedDDIs vérifie que les pilotes n’appellent aucune fonction réservée. |
Pour sélectionner l’ensemble de règles d’avertissement
Sélectionnez votre projet de pilote (.vcxProj) dans Microsoft Visual Studio. Dans le menu Pilote , cliquez sur Lancer le vérificateur de pilote statique....
Cliquez sur l’onglet Règles . Sous Ensembles de règles, sélectionnez Avertissement.
Pour sélectionner l’ensemble de règles par défaut dans une fenêtre d’invite de commandes du développeur Visual Studio, spécifiez Warning.sdv avec l’option /case activée. Par exemple :
msbuild /t:sdv /p:Inputs="/check:Warning.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
Pour plus d’informations, consultez Utilisation du vérificateur de pilote statique pour rechercher des défauts dans les pilotes et commandes msBuild (Static Driver Verifier).