静的ドライバー検証ツールの概要
Windows ドライバー モデル (WDM) またはカーネル モード ドライバー フレームワーク (KMDF)、NDIS、または Storport に準拠する堅牢なドライバーを作成するには、専門知識を持ち、ドライバーが I/O マネージャーと対話する方法を理解する必要があります。 これらのドライバーのテストも同様に難しくなります。
固体ドライバーの開発は、次の理由で困難な場合があります。
ドライバーは、単一プロセッサ コンピューター上でも非同期です。
ドライバーは大規模に再入可能です。
ドライバーは、多くのあいまいなルールを使用します。
ドライバー モデルは、時間の経過に伴い進化し成熟します。
デバイス ドライバーのテストは、次の理由によって制限されます。
観測。 ドライバーとオペレーティング システムの間の相互作用でエラーを観察することはできません。 ドライバーは暗黙的な使用規則に違反し、クラッシュや不適切な動作を引き起こす可能性がありますが、ドライバーの開発とテスト時にエラーの根本原因を検出することは困難です。
制御。 通常の状況で正しく動作するドライバーには、スタック内のドライバーの下にあるドライバーが IRP に失敗した場合など、例外的な状況でのみ発生する微妙なエラーが発生する可能性があります。 このような状況は実行が困難であるため、従来のテストではドライバー コードを通じてエラー パスが適切に検出されません。
SDV は、ドライバーをテストするときに持っている観察と制御の両方を強化します。 WDM、KMDF、NDIS、および Storport 関数を適切に使用するための規則を定義し、それらの規則に対するドライバーのコンプライアンスを監視することで、SDV はエラーを観察する機能を向上させます。 たとえば、WDM 規則 LowerDriverReturn では、特定の状況では、ドライバーのディスパッチ ルーチンは常にスタック内の下位ドライバーによって返された値を返す必要があることを指定します。
SDV では、次の機能を提供することで制御も強化されます。
いくつかの最悪のシナリオ (オペレーティング システムの呼び出しが継続的に失敗するなど) が発生する可能性がある、ドライバーの環境の敵対的なモデル。
ドライバーで可能なすべての実行パスを体系的に調査する強力な静的分析 (モデル チェックと呼ばれます)。
SDV は、デバイス ドライバーに不可欠な単体テスト ツールです。 ドライバーを敵対的な環境に配置し、ドライバー モデルの使用規則の違反を探して、ドライバーを介してコード パスを体系的にテストします。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示