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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de