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 |
---|---|
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. |
|
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. |
|
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. |
|
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. |
|
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
Seleccione el proyecto de controlador (.vcxProj) en Microsoft Visual Studio. En el menú Controlador , haga clic en Iniciar comprobador de controladores estáticos....
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).