QueuedSpinLock ルール (wdm)
QueuedSpinLock 規則は、ドライバーが KeReleaseInStackQueuedSpinLock を呼び出す前に KeAcquireInStackQueuedSpinLock を呼び出し、ドライバーが KeAcquireInStackQueuedSpinLock への後続の呼び出しの前に KeReleaseInStackQueuedSpinLock を呼び出すことを指定します。
入れ子になった呼び出しは、異なるリソースを取得して解放する場合に許可されます。 同じリソースを取得または解放するための入れ子になった呼び出しは、この規則に違反します。
この規則では、ディスパッチ ルーチンまたはキャンセル ルーチンが終了する前に、キューに入っているすべてのスピン ロックを解放するために、ドライバーが KeReleaseInStackQueuedSpinLock を呼び出していることも指定します。
ドライバーモデル: WDM
このルールで見つかったバグ チェック: バグ チェック 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION (0x00040006)
テスト方法
コンパイル時 |
---|
静的ドライバー検証 を実行し、 QueuedSpinLock 規則を指定します。 コードの分析を実行するには、次の手順に従います。詳細については、 「静的ドライバー検証ツールを使用してドライバー の欠陥を見つける」を参照してください。 |
実行時 |
---|
ドライバー検証ツール を実行し、 DDI コンプライアンス チェック オプションを選択します。 |
適用対象
KeAcquireInStackQueuedSpinLockKeReleaseInStackQueuedSpinLock