次の方法で共有


静的ドライバー検証ツール

静的ドライバー検証ツール ("StaticDV" または "SDV" とも呼ばれます) は、Windows カーネル モード ドライバーのソース コードを体系的に分析する静的検証ツールです。 SDV は、ドライバーの欠陥や設計の問題を検出できるコンパイル時ツールです。 一連のインターフェイス規則とオペレーティング システムのモデルに基づいて、SDV は、ドライバーが Windows オペレーティング システムカーネルと正しく対話するかどうかを決定します。

Von Bedeutung

SDV はサポートされなくなり、Windows 24H2 WDK または EWDK リリースでは SDV を使用できません。 ビルド 26017 より新しい WDK では使用できません。また、Windows 24H2 RTM WDK には含まれていません。 SDV は、Windows Driver Kit (WDK) のダウンロードから Visual Studio ビルド ツール 17.1.5 を使用して Windows 11 バージョン 22H2 EWDK (2023 年 10 月 24 日リリース) をダウンロードしても使用できます。 SDV を実行する Enterprise WDK のみを使用することをお勧めします。 古いバージョンの標準 WDK を Visual Studio の最近のリリースと組み合わせて使用することはお勧めしません。これにより、分析エラーが発生する可能性があります。
今後、CodeQL はドライバーの主要な静的分析ツールになります。 CodeQL には、クエリ対象のデータベースとしてコードを扱う強力なクエリ言語が用意されているため、特定の動作やパターンなどに対するクエリを簡単に記述できます。 CodeQL の使用方法の詳細については、「 CodeQL と静的ツールのロゴ テスト」を参照してください。

静的ドライバー検証ツールのインストール

静的ドライバー検証ツールは、完全な WDK エクスペリエンスとスタンドアロン Enterprise WDK の両方で、Windows ドライバー キット (WDK) の一部として使用できます。 さらに、SDV を実行するには、Visual Studio 用の Visual C++ 再頒布可能パッケージが必要です。 以下をご覧ください。

Visual Studio の統合

静的ドライバー検証ツールは Visual Studio に統合されています。 Visual Studio ドライバー プロジェクトで静的分析を実行できます。 Visual Studio の [ ドライバー] メニュー から、静的ドライバー検証ツールを起動、構成、および制御できます。

静的ドライバー検証ツールのドキュメント

Windows ドライバー コードでのバグの検出

Microsoft では、SDV を使用して、Microsoft Windows オペレーティング システムに含まれているカーネル モード ドライバーをテストし、WDK のサンプル ドライバーをテストします。 特定のドライバー モデルに対して DDI コンプライアンス規則を使用することで、SDV は正しいドライバーの動作を確認できます。 たとえば、SDV はドライバーが次のことを確認できます。

  • 正しい IRQL で関数を呼び出す
  • 正しいシーケンスでロックを取得および解放します
  • I/O 要求パケット (IRP) を処理する関数を正しく使用する

SDV は、ドライバー コードを通じてすべての可能なパスを調べます。 これは、徹底的なテストでも遭遇する可能性が低いあいまいなパスで重大なエラーを見つけるために設計されています。

その他のリソース

SDV で検証できるドライバーの詳細については、「サポートされているドライバー」を参照してください。

静的ドライバー検証ツールの使用に関する詳細とヒントについては、次を参照してください。