RemoveLockReleaseCleanup rule (wdm)

The RemoveLockReleaseCleanup rule specifies that calls to IoAcquireRemoveLock and IoReleaseRemoveLock are used in strict alternation. Each call to IoAcquireRemoveLock must have a matching call to IoReleaseRemoveLock. Moreover, at the end of the dispatch routine the driver should not hold the remove lock.

Driver model: WDM

How to test

At compile time

Run Static Driver Verifier and specify the RemoveLockReleaseCleanup 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

ExInterlockedInsertHeadList ExInterlockedInsertTailList ExInterlockedPushEntryList InsertHeadList IoAcquireRemoveLock IoCsqInsertIrp IoCsqInsertIrpEx IoReleaseRemoveLock IoReleaseRemoveLockAndWait RemoveHeadList