Compartir a través de


Regla SpinLockSafe (wdm)

La regla SpinLockSafe especifica que no se llama a IoStartNextPacket y IoCompleteRequest mientras mantiene un bloqueo de número.

Esta regla también especifica que el controlador llama a KeAcquireSpinLock o KeAcquireSpinLockAtDpcLevel antes de llamar a KeReleaseSpinLockFromDpcLevel o KeReleaseSpinLock, y que llama a IoAcquireCancelSpinLock antes de llamar a IoReleaseCancelSpinLock.

El comprobador de controladores estáticos puede notificar infracciones falsas de esta regla si el controlador incluye spinLocks anidados, incluso si esos bloqueos de número se adquieren y liberan correctamente.

Modelo de controlador: WDM

Cómo probar

En tiempo de compilación

Ejecute el Comprobador de controladores estáticos y especifique la regla SpinLockSafe .

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.

Se aplica a

IoAcquireCancelSpinLockIoCompleteRequestIoReleaseCancelSpinLockIoStartNextPacketKeAcquireSpinLockKeAcquireSpinLockRaiseTodpcKeReleaseSpinLock