次の方法で共有


CriticalRegions ルール (wdm)

CriticalRegions 規則は、ドライバーが KeLeaveCriticalRegion を呼び出す前に KeEnterCriticalRegion を呼び出す必要があり、その後の KeEnterCriticalRegion への呼び出しの前に、ドライバーが KeLeaveCriticalRegion を呼び出す必要があることを指定します。 (入れ子になった呼び出しは許可されます。)

この規則では、ドライバーが戻る前に通常のカーネル非同期プロシージャ呼び出し (APC) の配信を再度有効にする KeLeaveCriticalRegion を呼び出すも指定します。

KeEnterCriticalRegionKeLeaveCriticalRegion の WDK ドキュメントでは、これらの関数の呼び出し元を IRQL<=APC_LEVEL で実行できることを説明しています。 この状況では、この規則によってベスト プラクティスの推奨事項が適用されます。

ドライバーモデル: WDM

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

テスト方法

コンパイル時

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

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

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

実行時

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

適用対象

ExEnterCriticalRegionAndAcquireResourceExclusiveExReleaseResourceAndLeaveCriticalRegionKeEnterCriticalRegionKeLeaveCriticalRegion