次の方法で共有


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 テストには、次のカテゴリのテストが含まれています。

実行時テスト パラメーターの設定

多くの 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 つのデバイスからシステム内のすべてのデバイスまで) を表すのに使うことができます。

一般的な例:

特定の INF ファイルを使ってインストールされたすべてのデバイスをテストするには:

INF::FileName=INF_File_Name

例: INF::OriginalInfFileName='%InfFileName%'

これは既定値です。

特定のデバイス ID を持つデバイスをテストするには:

DeviceId=’DeviceId

例: DeviceID=’USB\ROOT_HUB\4&1CD5D022&0’

特定のインターフェイスを持つデバイスをテストするには:

Interfaces::InterfaceGUID

特定のドライブ文字を持つデバイスをテストするには:

Volume::DriverLetter=’DriveLetter

例: Volume::DriverLetter=’c:\’

特定のドライバーを持つデバイスをテストするには:

DriverBinaryNames=mydriver.sys

特定のデバイス クラスのすべてのデバイスをテストするには:

たとえば、Class=CDROM は CDROM クラスのすべてのデバイスをテストします。

たとえば、ClassGUID= {36fc9e60-c465-11cf-8056-444553540000} は、クラス GUID が指定した GUID と一致するすべてのデバイスをテストします。この例では、 GUID は USB クラスの GUID です。

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 つ (または複数の) デバイスのドライバーすべてに対して、ドライバーの検証ツールを有効にすることができます。

パラメーター: - 「ドライバーの検証ツールのオプション」をご覧ください。

 

関連トピック

Visual Studio を使って実行時にドライバーをテストする方法

Device Fundamental のテスト

提供されている WDTF シンプル I/O プラグイン

WDTF シンプル I/O アクション プラグインを使ってデバイスの I/O をカスタマイズする方法