静的ドライバー検証ツール
静的ドライバー検証ツール (「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++ 再頒布可能パッケージ パッケージが必要です。 以下を参照してください:
- Visual Studio 2019 の再配布
- Visual Studio 2017 の Visual C++ 再頒布可能パッケージ
- Visual Studio 2013 向け Visual C++ 再頒布可能パッケージ
Windows 10 バージョン 1809 またはそれ以前の WDK で使用可能な SDV のバージョンでは、2017 パッケージの代わりに Visual Studio 2012 の Visual C++ 再頒布可能パッケージをインストールする必要があります。
Visual Studio の統合
静的ドライバー検証ツールは、Visual Studio に統合されています。 Visual Studio ドライバー プロジェクトで静的分析を実行できます。 静的ドライバー検証ツールは、Visual Studio の [ドライバー] メニューから、起動、構成、制御できます。
静的ドライバー検証ツールのドキュメント
- 「静的ドライバー検証ツールの既知の問題」は、静的ドライバー検証ツールの最新の既知の問題の一覧です。
- 「ドライバーの不具合を見つけるための静的ドライバー検証ツールの使用」は、Visual Studio 環境でドライバー コードの解析を開始するために必要なことが記載されています。
- 「静的ドライバー検討ツールのコマンド (MSBuild)」では、Visual Studio のコマンド プロンプト ウィンドウで SDV を実行するために使用する MSBuild コマンドが一覧表示されています。
- 「静的ドライバー検証ツールの概要」では、静的分析ツールの概要について説明しています。
- 「静的ドライバー検証ツールの使用」では、静的分析ツールの使用と構成の詳細について説明しています。
- 「静的ドライバー検証ツール レポート」では、静的コード分析の詳細なトレースを表示するビューアーについて説明しています。
- 「静的ドライバー検証ツールのルール」このルールでは、ドライバー モデルとオペレーティング システムのカーネル インターフェイス間の適切なやり取りの要件を定義しています。
- 「静的ドライバー検証ツールのリファレンス」では、 関数のロール型、SDV 構成ファイル、エラー、警告メッセージに関する参照情報が記載されています。
Windows ドライバー コードでのバグの検出
Microsoft では、SDV を使用して、Microsoft Windows オペレーティング システムに含まれるカーネル モード ドライバーをテストし、また、WDK のサンプル ドライバーをテストします。 特定のドライバー モデルに対して DDI コンプライアンス ルールを使用することで、SDV はドライバーの正常な動作を確認できます。 たとえば、SDV は次の項目でドライバーを確認できます。
- 正しい IRQL で関数を呼び出す
- 正しいシーケンスでロックを取得および解放する
- I/O 要求パケット (IRP) を処理する関数を正しく使用する
SDV は、ドライバー コードを通じて、利用可能なすべてのパスを調べます。 これは、徹底的にテストしても遭遇する可能性が低いあいまいなパスで、重大なエラーを発見するために設計されています。
その他のリソース
SDV で検証できるドライバーの詳細については、「サポートされているドライバー」を参照してください。
静的ドライバー検証ツールの使用に関する詳細とヒントについては、次を参照してください。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示