DDI コンプライアンス ルール
このセクションでは、Windows ドライバー モデル (WDM)、カーネル モード ドライバー フレームワーク (KMDF)、オーディオ (PortCls)、AVStream (KS)、NDIS、Storport ドライバーの検証に使用できる Windows デバイス ドライバー インターフェイス (DDI) のコンプライアンス ルールの一覧を示し、それぞれを説明します。 DDI コンプライアンス ルールは、ドライバーとオペレーティング システムのカーネル インターフェイスとの適切なやり取りのための要件を定義します。
オーディオ ドライバーの規則
AVStream ドライバーの規則
WDM ドライバーの規則
KMDF ドライバーの規則
NDIS ドライバーの規則
Storport ドライバーの規則
重要
Windows ハードウェア互換性プログラムには、クライアントおよびサーバー オペレーティング システム上の静的ツール ロゴ (STL) テスト用の CodeQL が必要です。 引き続き、古い製品の SDV と CA のサポートを維持します。 パートナーは、静的ツール ロゴ テストの CodeQL 要件を確認することを強くお勧めします。 CodeQL の使用方法の詳細については、「 CodeQL と静的ツール ロゴ テストを参照してください。
ドライバー検証ツール
コード検証ツールの 静的ドライバー検証ツール および ドライバー検証ツール を使用して、DDI 使用ルールに準拠しているかどうか、ドライバーをテストできます。 静的ドライバー検証ツール (SDV) は、開発サイクルの早い段階で SDV を使用できるように、ドライバーのソース コードで静的分析を実行します。 ドライバー検証ツールは、オペレーティング システムと統合されているため、ビルド、展開、インストール後、実行時にドライバーをテストできます。
ドライバーのソース コードを使用して、 静的ドライバー検証ツール は、ドライバーとオペレーティング システムのモデルを作成します。 このモデルでは、SDV はドライバーを悪意のある環境に置き、形式化された一連のドライバー コンプライアンス ルール (静的ドライバー検証ルール) に対する違反の有無を確認することによって、ドライバーを介するコード パスを体系的にテストします。
Windows 8 以降では、DDI コンプライアンス チェックを有効にすると、ドライバー検証ツール を構成して、インストールされたドライバーに対して同じコンプライアンス チェックの一部を実行できます。
重要
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 と静的ツール ロゴ テストを参照してください。