Device Fundamental テストを選んで構成する方法
Windows 8 用 WDK には、Device Fundamental テストと呼ばれる一連のテストを含むドライバー テスト フレームワークが用意されています。Device Fundamental テストはテストのコレクションで、Windows と WDK に同梱されるドライバーやドライバー サンプルのテスト用に Microsoft 社内で使われることも、Windows ハードウェア認定プログラムの一環として外部で使われることもあります。 このテストは開発環境から実行できます。テストを実行するときは、Windows 認定のテストで使ったのと同じパラメーターを使ったり、テストやデバッグのニーズに応じてランタイム パラメーターの構成やカスタマイズを行ったりできます。
Device Fundamental テストの有効活用
Device Fundamental テストを最大限に有効活用するには、デバイスが既定の I/O プラグインでサポートされている必要があります。 デバイスの種類がサポートされているかどうかと、テストに固有の要件があるかどうかを確認するには、「提供されている WDTF シンプル I/O プラグイン」をご覧ください。Device Fundamental テストには、デバイスがサポートされているかどうかの確認テストに使うことができるユーティリティも含まれています。デバイスがサポートされていない場合は、WDTF シンプル I/O プラグインを Visual Studio で作ることができます。詳しくは、「WDTF シンプル I/O アクション プラグインを使ってデバイスの I/O をカスタマイズする方法」をご覧ください。
Device Fundamental テストについて
WDK には、"基本" と "認定" の 2 つの構成の Device Fundamental テストが用意されています。どちらの構成でも、対象のデバイスやドライバーをどのようにテストするかに応じてテスト パラメーターを編集し、テストの長さや実行するテスト サイクルの数などを変えることができます。基本構成は、一般的なドライバーとデバイスのテストとデバッグを対象としています。開発サイクルの初期段階とサイクル全体で、基本構成を使います。基本構成のテストの設定は、実行時間が短いことを除いて、Windows 認定のテストで使う設定と同じです。認定構成では、テストの設定は Windows 認定のテストで使う設定と同じです。デバイスやドライバーについて、Windows ハードウェア認定プログラムのテストの準備が整っているかどうかを確認するには、認定構成を使います。
Device Fundamental テストには、次のカテゴリのテストが含まれています。
- CHAOS テスト (Device Fundamental)
- カバレッジ テスト (Device Fundamental)
- CPUStress テスト (Device Fundamental)
- Driver Install テスト (Device Fundamental)
- I/O テスト (Device Fundamental)
- 侵入テスト (Device Fundamental)
- PNP テスト (Device Fundamental)
- 再起動テスト (Device Fundamental)
- スリープ テスト (Device Fundamental)
- ユーティリティ
- ドライバーの検証ツール
実行時テスト パラメーターの設定
多くの Device Fundamental テストで、ランタイム パラメーターを編集できます。 [Driver Test Group] (ドライバー テスト グループ) ウィンドウで、テスト名の横に表示される矢印 (») は、そのテストに変更できるパラメーターがあることを示しています。 矢印 (») をクリックして、実行時パラメーターを表示します。
最も有用なパラメーターの 1 つは DQ で、テスト対象のデバイスを指定します。既定値 (IsDevice) の場合は、ターゲット コンピューター上のすべてのデバイスがテストされます。 DQ パラメーターは、対象のデバイスを特定する WDTF SDEL クエリを受け取ります。 特定のデバイスをテスト対象に指定できます。たとえば、
DeviceID=’USB\ROOT_HUB\4&1CD5D022&0’ は、DeviceID で指定されたデバイスのみをテスト対象として選択します。
DQ パラメーターとその他のランタイム パラメーターについて詳しくは、「Device Fundamental テストのパラメーター」をご覧ください。
Device Fundamental テストのパラメーター
パラメーター | 説明 |
---|---|
DQ |
テストに使うデバイスを特定します。DQ パラメーターは、対象のデバイスを特定する WDTF SDEL クエリを実行します。このクエリは非常に柔軟で、任意の数のデバイス (1 つのデバイスからシステム内のすべてのデバイスまで) を表すのに使うことができます。 一般的な例:
|
DoPoolCheck |
True または False。プール タグとルックアサイド リストを使って、ドライバーによる ページ システム メモリ プールと非ページ システム メモリ プールの使用状況を監視します。このオプションを使うと、処理された例外の数の変化 (これは例外処理のエラーを表す場合があります) も監視されます。 |
ChangeBufferProtectionFlags |
True または False。テスト対象のデバイスに渡されたバッファーの メモリ保護フラグを変更します。メモリ保護フラグは、アクセスなし、読み取り専用、 ページ ガードによる読み取り専用のいずれかが適用されます。 |
DoSimpleIO |
True または False。PNP 操作の実行の前後に、テスト デバイスでシンプル I/O (見つかった場合) を実行します。 |
DoConcurrentIO |
True または False。WDTF 同時 I/O インターフェイスを使って、PNP 操作の実行中に対象のデバイス スタックに I/O 要求を送信します。 |
FillZeroPageWithNull |
True または False。ゼロ ページをマッピングし、 NULL 値を入力します。このテストでは、ポインターを逆参照する前にポインター参照を 検証しないドライバーを特定します。 |
FuzzTestPeriod |
ファジー テスト期間 (単位: 分)。 |
HPU |
高いプロセッサ使用率の割合を指定します。 |
Impersonate |
True または False。管理者特権を持たないユーザーとしてテストを実行します。 |
IOPeriod |
I/O 期間を分単位で指定します。 |
IOType |
I/O ストレス テストの種類として SimpleIOStressEx または SimpleIOStressProc (別のプロセスの I/O) を指定します。 |
LPU |
低いプロセッサ使用率の割合を指定します。 |
MaxInBuffer |
FSCTL (または IOCTL テストの IOCTL) でドライバーに渡される 入力バッファーの最大サイズをバイト数で指定します。 |
MinInBuffer |
FSCTL (または IOCTL テストの IOCTL) でドライバーに渡される 入力バッファーの最小サイズをバイト数で指定します。 |
MaxOutBuffer |
FSCTL (または IOCTL テストの IOCTL) でドライバーに渡される 出力バッファーの最大サイズをバイト数で指定します。 |
MinOutBuffer |
FSCTL (または IOCTL テストの IOCTL) でドライバーに渡される 出力バッファーの最小サイズをバイト数で指定します。 |
MaxRandomCalls |
テストが発行する呼び出しの最大数を 指定します。 |
MaxTailoredCalls |
調整済みランダム テストの際にテストが発行する 呼び出しの最大数を指定します。 |
MaxDeviceType |
FSCTL (または IOCTL テストの IOCTL) 内の DeviceType フィールドの最大値を指定します。指定できる最大の値は 65535 です。 |
MinDeviceType |
FSCTL (または IOCTL テストの IOCTL) 内の DeviceType フィールドの最小値を指定します。指定できる最小の値は 0 です。 |
MaxFunctionCode |
FSCTL (または IOCTL テストの IOCTL) 内の FunctionCode フィールドの最大値を指定します。指定できる最大の値は 4095 です。 |
MinFunctionCode |
FSCTL (または IOCTL テストの IOCTL) 内の FunctionCode フィールドの最小値を指定します。指定できる最小の値は 0 です。 |
PU |
プロセッサ使用率の割合を指定します。 |
PingPongPeriod |
プロセッサ使用率レベルが高い状態 (HPU) から低い状態 (LPU) まで変化する間のピンポン期間を分単位で指定します。 |
ResumeDelay |
コンピューターがスリープ モードから再開された後、次の I/O サイクルが開始されるまでの遅延時間 (単位: 秒)。この遅延時間は、デバイスが稼働状態の復元 (ネットワーク カードの IP アドレスの更新など) を行うために必要です。 |
TestCycles |
実行するテスト サイクル (反復) の数を指定します。 |
WDTFREMOTESYSTEM |
このパラメーターは、テスト中のデバイスまたはその子デバイスのいずれかが、IPv6 ゲートウェイ アドレスを持たない有線ネットワーク アダプターである場合にのみ必要です。ネットワークでこのパラメーターが必要な場合、テスト ネットワーク アダプターがネットワークをテストするために ping できる IPv6 アドレスを指定する必要があります。 例: fe80::78b6:810:9c12:46cd |
Wpa2PskAesSsid |
このパラメーターは、テスト中のデバイスまたはその子デバイスのいずれかが、WiFi アダプターである場合にのみ必要です。テストで WiFi アダプターのテストに使用できる WPA2 AES WiFi ネットワークの SSID を指定します。 既定値: kitstestssid |
Wpa2PskPassword |
このパラメーターは、テスト中のデバイスまたはその子デバイスのいずれかが、WiFi アダプターである場合にのみ必要です。Wpa2PskAesSsid パラメーターを使用して指定された WPA2 AES WiFi ネットワークのパスワードを指定します。 既定値: password |
ユーティリティ テスト
テスト | 説明 |
---|---|
WDTF シンプル I/O プラグインを持つデバイスの表示 |
パラメーター: なし |
ドライバーの検証ツールが有効になっているデバイスの表示 |
パラメーター: なし |
デバイスの表示 |
パラメーター: なし |
ドライバーの検証ツール
テスト | 説明 |
---|---|
Disable Driver Verifier (ドライバーの検証ツールの無効化) |
テスト コンピューターでドライバーの検証ツールを無効にします。 パラメーター: なし |
Enable Driver Verifier (ドライバーの検証ツールの有効化) |
このテストを使うと、テスト コンピューター上の 1 つ (または複数の) デバイスのドライバーすべてに対して、ドライバーの検証ツールを有効にすることができます。 パラメーター: - 「ドライバーの検証ツールのオプション」をご覧ください。 |