Skip to content

Latest commit

 

History

History
53 lines (44 loc) · 3.09 KB

wdm-spinlockdpc.md

File metadata and controls

53 lines (44 loc) · 3.09 KB
title description ms.date keywords topic_type ms.topic api_name api_type
SpinLockDpc Rule (WDM)
The SpinLockDpc rule specifies that calls to KeAcquireSpinLock or KeAcquireSpinLockRaiseToDpc and KeReleaseSpinLock must be made in strict alternation.
05/21/2018
SpinLockDpc rule (wdm)
apiref
reference
SpinLockDpc
NA

SpinLockDpc rule (wdm)

The SpinLockDpc rule specifies that calls to KeAcquireSpinLock or KeAcquireSpinLockRaiseToDpc and KeReleaseSpinLock must be made in strict alternation. That is, after calling KeAcquireSpinLock or KeAcquireSpinLockRaiseToDpc, the driver must call KeReleaseSpinLock before subsequent calls to KeAcquireSpinLock or to KeAcquireSpinLockRaiseToDpc.

Moreover, at the end of the dispatch or cancel routine, the driver should not hold the spinlock.

Driver model: WDM

How to test

At compile time

Run Static Driver Verifier and specify the SpinLockDpc rule.

Use the following steps to run an analysis of your code:
  1. Prepare your code (use role type declarations).
  2. Run Static Driver Verifier.
  3. View and analyze the results.

For more information, see Using Static Driver Verifier to Find Defects in Drivers.

Applies to

KeAcquireSpinLock KeAcquireSpinLockRaiseToDpc KeReleaseSpinLock