Ensemble de règles d’utilisation DDI (NDIS)
Utilisez ces règles pour vérifier que votre pilote utilise correctement les DDIS NDIS.
Contenu de cette section
Rubrique | Description |
---|---|
La règle Init_DeRegisterInterrupt spécifie que si NdisMRegisterInterruptEx est appelé au moins une fois pendant MPInitilize, NdisMDeregisterInterruptEx doit être appelé au moins une fois dans MPHaltEx. |
|
La règle Init_NdisAllocateIoWorkItem spécifie que si NdisAllocateIoWorkItem est appelé au moins une fois pendant MiniportInitializeEx, la fonction NdisFreeIoWorkItem doit :
|
|
La règle de Init_RegisterInterrupt spécifie que l’inscription des interruptions, qui se produit généralement pendant l’initialisation, doit être annulée en cas de problème dans le processus d’initialisation ou pendant l’arrêt du pilote miniport. Si NdisMRegisterInterruptEx est appelé au moins une fois pendant MiniportInitializeEx, la fonction NdisMDeregisterInterruptEx doit être appelée au moins une fois dans MiniportHaltEx. |
|
La règle de Init_RegisterSG spécifie que l’inscription de la liste de collecte de points (SG), qui se produit généralement pendant l’initialisation, doit être annulée en cas de problème dans le processus d’initialisation ou pendant l’arrêt du pilote miniport. Si NdisMRegisterScatterGatherDma est appelé au moins une fois pendant MiniportInitializeEx, la fonction NdisMDeregisterScatterGatherDma doit être appelée au moins une fois dans MiniportHaltEx. |
|
Un pilote de filtre doit appeler NdisFDeregisterFilterDriver à partir de sa routine FilterDriverUnload . |
|
Une fois que NdisMDeregisterInterruptEx retourne le contrôle, le pilote miniport ne peut pas appeler la fonction NdisMSynchronizeWithInterruptEx . |
|
La règle NullCheck vérifie qu’une valeur NULL à l’intérieur du code du pilote n’est pas déréférée ultérieurement dans le pilote. Cette règle signale un défaut si l’une de ces conditions est vraie :
Avec les violations de règle NullCheck, les instructions de code les plus pertinentes sont mises en surbrillance dans le volet d’arborescence des traces. Pour plus d’informations sur l’utilisation de la sortie de rapport, consultez Rapport du vérificateur de pilote statique et Présentation de la visionneuse de traces. |
Pour sélectionner l’ensemble de règles d’utilisation DDI
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 DDIUsage.
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 DDIUsage.sdv avec l’option /case activée. Par exemple :
msbuild /t:sdv /p:Inputs="/check:DDIUsage.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).