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:
Para obtener más información, vea Usar comprobador de controladores estáticos para buscar defectos en controladores. |
Se aplica a
IoAcquireCancelSpinLockIoCompleteRequestIoReleaseCancelSpinLockIoStartNextPacketKeAcquireSpinLockKeAcquireSpinLockRaiseTodpcKeReleaseSpinLock