Regla QueuedSpinLock (wdm)
La regla QueuedSpinLock especifica que el controlador llama a KeAcquireInStackQueuedSpinLock antes de llamar a KeReleaseInStackQueuedSpinLock y que el controlador llama a KeReleaseInStackQueuedSpinLock antes de cualquier llamada posterior a KeAcquireInStackQueuedSpinLock.
Las llamadas anidadas se permiten si adquieren y liberan recursos diferentes. Las llamadas anidadas para adquirir o liberar los mismos recursos infringen esta regla.
Esta regla también especifica que el controlador ha llamado a KeReleaseInStackQueuedSpinLock para liberar todos los bloqueos de número en cola 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 (0x00040006)
Cómo probar
En tiempo de compilación |
---|
Ejecute el Comprobador de controladores estáticos y especifique la regla QueuedSpinLock . Usa los pasos siguientes para ejecutar un análisis de tu código:
Para obtener más información, consulte Uso del comprobador de controladores estáticos para buscar defectos en controladores. |
En tiempo de ejecución |
---|
Ejecute el Comprobador de controladores y seleccione la opción comprobación de cumplimiento de DDI . |
Se aplica a
KeAcquireInStackQueuedSpinLockKeReleaseInStackQueuedSpinLock