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

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

重要

Windows ハードウェア互換性プログラムには、クライアントおよびサーバー オペレーティング システム上の静的ツール ロゴ (STL) テスト用の CodeQL が必要です。 引き続き、古い製品の SDV と CA のサポートをメインします。 パートナーは、静的ツール ロゴ テストの 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 で検証できるドライバーの詳細については、「サポートされているドライバー」を参照してください。

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