Partager via


Ensemble de règles de verrouillage (NDIS)

Utilisez ces règles pour vérifier que votre pilote gère correctement les ressources partagées.

Contenu de cette section

Rubrique Description

SpinLock

La règle SpinLock vérifie l’utilisation correcte de l’interface de verrouillage de rotation NDIS. Cette règle spécifie que les appels à NdisAcquireSpinLock sont effectués uniquement lorsque le SpinLock est dans l’état déverrouillé. Cette règle vérifie également que spinlock est libéré avant la fermeture de la routine du gestionnaire miniport.

SpinLockBalanced

La règle SpinLockBalanced vérifie que le nombre d’appels aux fonctions qui acquièrent un SpinLock est égal au nombre d’appels aux fonctions qui libèrent le même SpinLock.

SpinLockDpr

La règle SpinLockDpr vérifie l’utilisation correcte de l’interface de verrouillage de rotation NDIS.

Cette règle spécifie que les appels à NdisDprAcquireSpinLock sont effectués uniquement lorsque le verrou de rotation est à l’état déverrouillé. Cette règle vérifie également que le verrou de rotation est libéré avant la fermeture de la routine du gestionnaire miniport.

SpinLockDprRelease

La règle SpinLockDprRelease vérifie que les appels à NdisAcquireSpinLock ou NdisDprAcquireSpinLock sont appelés uniquement lorsque l’état SpinLock est « déverrouillé ». Cette règle vérifie également qu’avant de quitter la routine de gestionnaire miniport, spinlock a été libéré.

SpinLockRelease

La règle SpinLockRelease spécifie qu’un pilote ne doit pas libérer un verrou tournant (NdisReleaseSpinLock) sans l’acquérir au préalable.

Pour sélectionner l’ensemble de règles de verrouillage

  1. Sélectionnez votre projet de pilote (.vcxProj) dans Microsoft Visual Studio. Dans le menu Pilote , cliquez sur Lancer le vérificateur de pilote statique....

  2. Cliquez sur l’onglet Règles . Sous Ensembles de règles, sélectionnez Verrouillage.

    Pour sélectionner l’ensemble de règles par défaut à partir d’une fenêtre d’invite de commandes développeur Visual Studio, spécifiez Locking.sdv avec l’option /case activée. Par exemple :

    msbuild /t:sdv /p:Inputs="/check:Locking.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).