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

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

重要

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

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

静的ドライバー検証ツールは、Windows Driver Kit (WDK) の一部として、完全な WDK 体験版とスタンドアロンの Enterprise WDK の両方で利用できます。 また、SDV を実行するには、Visual Studio 用の Visual C++ 再頒布可能パッケージ パッケージが必要です。 以下を参照してください:

Windows 10 バージョン 1809 またはそれ以前の WDK で使用可能な SDV のバージョンでは、2017 パッケージの代わりに Visual Studio 2012 の 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 で検証できるドライバーの詳細については、「サポートされているドライバー」を参照してください。

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