次の方法で共有


SpinLockSafe ルール (wdm)

SpinLockSafe ルールは、スピン ロックを保持しているときに IoStartNextPacketIoCompleteRequest が呼び出されないことを指定します。

この規則では、ドライバーが KeReleaseSpinLock または KeAcquireSpinLockAtDpcLevel を呼び出す前に KeReleaseSpinLockFromDpcLevel または KeReleaseSpinLock を呼び出し、 IoReleaseCancelSpinLock を呼び出す前にIoAcquireCancelSpinLock を呼び出すことも指定します。

静的ドライバー検証ツールは、ドライバーに入れ子になった SpinLock が含まれている場合、これらのスピン ロックが取得され、正しく解放された場合でも、この規則の誤った違反を報告できます。

ドライバーモデル: WDM

テスト方法

コンパイル時

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

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

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

適用対象

IoAcquireCancelSpinLockIoCompleteRequestIoReleaseCancelSpinLockIoStartNextPacketKeAcquireSpinLockKeAcquireSpinLockRaiseToDpcKeReleaseSpinLock