次の方法で共有


SpinLock ルール (wdm)

SpinLock 規則では、 KeAcquireSpinLock を呼び出した後、ドライバーは KeAcquireSpinLock または KeAcquireSpinLockRaiseToDpc への後続の呼び出しの前に KeReleaseSpinLock を呼び出します。

入れ子になった呼び出しは、異なるリソースのロックを取得および解放する場合に許可されます。 同じリソースのロックを取得または解放するための入れ子になった呼び出しは、このルールに違反します。

この規則では、ドライバーがディスパッチ ルーチンまたはキャンセル ルーチンが終了する前にすべてのスピン ロックを解放する KeReleaseSpinLock を使用することも指定します。

ドライバーモデル: WDM

このルールで見つかったバグ チェック: バグ チェック 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION (0x00040009)

テスト方法

コンパイル時

静的ドライバー検証 を実行し、 SpinLock 規則を指定します。

コードの分析を実行するには、次の手順に従います。
  1. コードを準備します (ロール型宣言を使用します)。
  2. 静的ドライバー検証ツールを実行します。
  3. 結果を表示および分析します。

詳細については、 「静的ドライバー検証ツールを使用してドライバー の欠陥を見つける」を参照してください。

実行時

ドライバー検証ツール を実行し、 DDI コンプライアンス チェック オプションを選択します。

適用対象

KeAcquireSpinLockKeAcquireSpinLockRaiseToDpcKeReleaseSpinLockKeTryToAcquireSpinLockAtDpcLevel