Compartir a través de


Conjunto de reglas de bloqueo (NDIS)

Use estas reglas para comprobar que el controlador administra correctamente los recursos compartidos.

En esta sección

Tema Descripción

SpinLock

La regla SpinLock comprueba el uso correcto de la interfaz de bloqueo de número NDIS. Esta regla especifica que las llamadas a NdisAcquireSpinLock solo se realizan cuando SpinLock está en estado desbloqueado. Esta regla también comprueba que el SpinLock se libera antes de que se cierre la rutina de controlador de miniporte.

SpinLockBalanced

La regla SpinLockBalanced comprueba que el número de llamadas a funciones que adquieren un SpinLock es igual al número de llamadas a funciones que liberan el mismo SpinLock.

SpinLockDpr

La regla SpinLockDpr comprueba el uso correcto de la interfaz de bloqueo de número NDIS.

Esta regla especifica que las llamadas a NdisDprAcquireSpinLock solo se realizan cuando el bloqueo de número está en estado desbloqueado. Esta regla también comprueba que el bloqueo de número se libere antes de que se cierre la rutina del controlador de miniporte.

SpinLockDprRelease

La regla SpinLockDprRelease comprueba que las llamadas a NdisAcquireSpinLock o NdisDprAcquireSpinLock solo se llaman cuando SpinLock es el estado "desbloqueado". Esta regla también comprueba que antes de salir de la rutina del controlador de minipuerto se ha liberado SpinLock.

SpinLockRelease

La regla SpinLockRelease especifica que un controlador no debe liberar un bloqueo de número (NdisReleaseSpinLock) sin adquirirlo primero.

Para seleccionar el conjunto de reglas de bloqueo

  1. Seleccione el proyecto de controlador (.vcxProj) en Microsoft Visual Studio. En el menú Controlador , haga clic en Iniciar comprobador de controladores estáticos....

  2. Haga clic en la pestaña Reglas . En Conjuntos de reglas, seleccione Bloquear.

    Para seleccionar el conjunto de reglas predeterminado en una ventana del símbolo del sistema para desarrolladores de Visual Studio, especifique Locking.sdv con la opción /check . Por ejemplo:

    msbuild /t:sdv /p:Inputs="/check:Locking.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
    

    Para obtener más información, consulte Uso del comprobador de controladores estáticos para buscar defectos en controladores y comandos comprobadores de controladores estáticos (MSBuild).