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:
  1. Prepara el código (usa declaraciones de tipos de rol).
  2. Ejecuta el comprobador de controlador estático.
  3. Consulta y analiza los resultados.

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