Regla SpinLock (wdm)
La regla SpinLock especifica que, después de llamar a KeAcquireSpinLock, el controlador llama a KeReleaseSpinLock antes de las llamadas posteriores a KeAcquireSpinLock o a KeAcquireSpinLockRaiseToDpc.
Se permiten llamadas anidadas si adquieren y liberan bloqueos para distintos recursos. Las llamadas anidadas para adquirir o liberar bloqueos para los mismos recursos infringen esta regla.
Esta regla también especifica que el controlador ha usado KeReleaseSpinLock para liberar todos los bloqueos de número antes de que finalice la rutina de envío o cancelar la rutina.
Modelo de controlador: WDM
Comprobaciones de errores encontradas con esta regla: Comprobación de errores 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION (0x00040009)
Cómo probar
En tiempo de compilación |
---|
Ejecute el Comprobador de controladores estáticos y especifique la regla SpinLock . Usa los pasos siguientes para ejecutar un análisis de tu código:
Para obtener más información, vea Usar comprobador de controladores estáticos para buscar defectos en controladores. |
En tiempo de ejecución |
---|
Ejecute Comprobador de controladores y seleccione la opción comprobación de cumplimiento de DDI . |
Se aplica a
KeAcquireSpinLockKeAcquireSpinLockRaiseTodpcKeReleaseSpinLockKeTryToAcquireSpinLockAtdpcLevel