ドライバーの検証ツールDriver Verifier

ドライバーの検証ツールは、Windows カーネルモードドライバーとグラフィックスドライバーを監視して、無効な関数呼び出しやシステムを破損する可能性があるアクションを検出します。Driver Verifier monitors Windows kernel-mode drivers and graphics drivers to detect illegal function calls or actions that might corrupt the system. ドライバーの検証ツールは、Windows ドライバーにさまざまなストレスを適用し、不適切な動作を検出するためのテストを行います。Driver Verifier can subject Windows drivers to a variety of stresses and tests to find improper behavior. 実行するテストを構成できます。これにより、高負荷の負荷によってドライバーを配置したり、より効率的なテストを行ったりすることができます。You can configure which tests to run, which allows you to put a driver through heavy stress loads or through more streamlined testing. また、複数のドライバーで同時に、または一度に1つのドライバーに対して、ドライバーの検証ツールを実行することもできます。You can also run Driver Verifier on multiple drivers simultaneously, or on one driver at a time.

注意事項

  • ドライバーの検証ツールを実行すると、コンピューターがクラッシュする可能性があります。Running Driver Verifier could cause the computer to crash.
  • ドライバーの検証は、テストとデバッグに使用しているコンピューターでのみ実行してください。You should only run Driver Verifier on computers that you are using for testing and debugging.
  • ドライバーの検証ツールを使用するには、コンピューターの Administrators グループにいる必要があります。You must be in the Administrators group on the computer to use Driver Verifier.
  • Driver Verifier は Windows 10 S には含まれていないため、代わりに Windows 10 でドライバーの動作をテストすることをお勧めします。Driver Verifier is not included in Windows 10 S, so we recommend testing driver behavior on Windows 10 instead.

ドライバーの検証ツールはどこでダウンロードできますか。Where can I download Driver Verifier?

%WinDir%\system32\ では、ほとんどのバージョンの Windows に含まれているため、ドライバーの検証ツールをダウンロードする必要はありません。You don't need to download Driver Verifier, because it is included with most versions of Windows in %WinDir%\system32\ as Verifier.exe. (Driver Verifier は Windows 10 S には含まれていません)。ドライバーの検証ツールは、ダウンロードパッケージとして個別に配布されません。(Driver Verifier is not included with Windows 10 S.) Driver Verifier is not distributed separately as a download package.

Windows 10 および windows の以前のバージョンでの Driver Verifier の変更については、「 Driver verifier: 新機能」を参照してください。For information about changes in Driver Verifier for Windows 10 and previous versions of Windows, see Driver Verifier: What's New.

ドライバーの検証ツールを使用する場合When to use Driver Verifier

ドライバーの開発とテストを通じて、ドライバーの検証ツールを実行します。Run Driver Verifier throughout development and testing of your driver. 具体的には、次の目的でドライバーの検証ツールを使用します。More specifically, use Driver Verifier for the following purposes:

  • 開発サイクルの早い段階で問題を見つけるために、より簡単で費用がかからない場合は、問題を解決します。To find problems early in the development cycle, when they are easier and less costly to correct.

  • テストの失敗とコンピューターのクラッシュのトラブルシューティングとデバッグに使用します。For troubleshooting and debugging test failures and computer crashes.

  • WDK、Visual Studio、およびWindows Hardware Lab kit (windows HLK) またはWindows ハードウェア認定キット(Windows 8.1) のテストを使用してテスト用のドライバーをデプロイするときの動作を監視する。To monitor behavior when you deploy a driver for testing using the WDK, Visual Studio, and the tests from the Windows Hardware Lab Kit (Windows HLK) or Windows Hardware Certification Kit (for Windows 8.1). ドライバーのテストの詳細については、「ドライバーのテスト」を参照してください。For more information about testing drivers, see Testing a Driver.

ドライバーの検証ツールを開始する方法How to start Driver Verifier

ドライバー検証は、テストコンピューター、またはテストおよびデバッグしているコンピューターでのみ実行する必要があります。You should only run Driver Verifier on test computers, or on computers that you are testing and debugging. ドライバーの検証ツールの利点を最大限に活用するには、カーネルデバッガーを使用して、テストコンピューターに接続する必要があります。To get the most benefit from Driver Verifier, you should use a kernel debugger and connect to the test computer. デバッグツールの詳細については、「 Windows 用デバッグツール (WinDbg、KD、CDB、NTSD)」を参照してください。For more information about debugging tools, see Debugging Tools for Windows (WinDbg, KD, CDB, NTSD).

  1. [管理者として実行] を選択してコマンドプロンプトウィンドウを起動し、「 verifier 」と入力して、ドライバー検証マネージャーを開きます。Start a Command Prompt window by selecting Run as administrator, and type verifier to open Driver Verifier Manager.

  2. [標準設定の作成] (既定のタスク) を選択し、 [次へ] をクリックします。Select Create standard settings (the default task), and click Next.

    [カスタム設定の作成] を選択して、定義済みの設定から選択することも、個々のオプションを選択することもできます。You can also choose Create custom settings to select from predefined settings, or to select individual options. 詳細については、「 Driver verifier options and rule classes 」と「 driver verifier options」を参照してください。For more information, see Driver Verifier options and rule classes and Selecting Driver Verifier Options.

  3. [確認するドライバーを選択してください] で、次の表に記載されているいずれかの選択方式を選択します。Under Select what drivers to verify, choose one of the selection schemes described in the following table.

    オプションOption 推奨される用途Recommended use
    署名されていないドライバーを自動的に選択するAutomatically select unsigned drivers

    署名されたドライバーを必要としない Windows のバージョンを実行しているコンピューターでのテストに役立ちます。Useful for testing on computers that are running versions of Windows that do not require signed drivers.

    以前のバージョンの Windows 用にビルドされたドライバーを自動的に選択するAutomatically select drivers built for older versions of Windows

    新しいバージョンの Windows とドライバーの互換性をテストする場合に便利です。Useful for testing driver compatibility with newer versions of Windows.

    このコンピューターにインストールされているすべてのドライバーを自動的に選択するAutomatically select all drivers installed on this computer

    システムでテストされているドライバーの数に関して最大カバレッジを提供します。Provides maximum coverage in terms of the number of drivers that are tested on a system. このオプションは、ドライバーがシステム上の他のデバイスまたはドライバーと対話できるテストシナリオに便利です。This option is useful for test scenarios where a driver can interact with other devices or drivers on a system.

    このオプションを使用すると、特別なプールおよび一部のリソース追跡で利用可能なリソースを枯渇させることもできます。This option can also exhaust the resources available for Special Pool and some resource tracking. すべてのドライバーをテストすると、システムのパフォーマンスに悪影響を及ぼすこともあります。Testing all drivers can also adversely affect system performance.

    一覧からドライバー名を選択するSelect driver names from a list

    ほとんどの場合、テストするドライバーを指定する必要があります。In most cases, you will want to specify which drivers to test.

    デバイススタック内のすべてのドライバーを選択すると、拡張 I/o 検証オプションを使用してオブジェクトを追跡し、対応を確認できます。これは、i/o 要求パケット (IRP) がスタック内の各ドライバー間で渡されるためです。これにより、エラーが検出された場合により詳細なレベルの詳細を提供できます。Selecting all drivers in a device stack allows the Enhanced I/O Verification option to track objects and check compliance because an I/O request packet (IRP) is passed between each of the drivers in the stack, which allows for a greater level of detail to be provided when an error is detected.

    システムまたはドライバーのパフォーマンスメトリックを測定するテストシナリオを実行している場合や、メモリ破損またはリソース追跡の問題 (デッドロックなど) を検出するために使用できるリソースの最大数を割り当てる場合は、1つのドライバーを選択します。mutex)。Select a single driver if you are running a test scenario that measures system or driver performance metrics, or if you want to allocate the greatest number of resources available for detecting memory corruption or resource tracking issues (such as deadlocks or mutexes). 特別なプールおよびi/o 検証オプションは、一度に1つのドライバーで使用するとより効果的です。The Special Pool and I/O Verification options are more effective when used on one driver at a time.

  4. [一覧からドライバー名を選択] する を選択した場合は、 [次へ] をクリックし、1つまたは複数の特定のドライバーを選択します。If you chose Select driver names from a list, click Next, and then select one or more specific drivers.

  5. [完了] をクリックし、コンピューターを再起動します。Click Finish, and then restart the computer.

注意

ドライバー検証ツールマネージャーを起動せずに、コマンドプロンプトウィンドウでドライバーの検証ツールを実行することもできます。You can also run Driver Verifier in a Command Prompt window without starting Driver Verifier Manager. たとえば、 Mydriverというドライバーで標準設定を使用して driver Verifier を実行するには、次のコマンドを使用します。For example, to run Driver Verifier with the standard settings on a driver called myDriver.sys, you would use the following command:

verifier /standard /driver myDriver.sys

コマンドラインオプションの詳細については、「 Driver Verifier コマンド構文」を参照してください。For more information about command line options, see Driver Verifier Command Syntax.

ドライバーの検証機能を制御する方法How to control Driver Verifier

ドライバー検証ツールマネージャーまたはコマンドラインを使用して、ドライバーの検証機能を制御できます。You can use either Driver Verifier Manager or a command line to control Driver Verifier. ドライバー検証マネージャーを起動するには、このトピックの前半の「ドライバーの検証を開始する方法」を参照してください。To start Driver Verifier Manager, see How to start Driver Verifier, earlier in this topic.

次の各操作について、ドライバー検証マネージャーを使用するか、コマンドラインを入力できます。For each of the following actions, you can use Driver Verifier Manager or enter a command line.

ドライバーの検証ツールを停止またはリセットするにはTo stop or reset Driver Verifier

  1. ドライバー検証マネージャーで、 [既存の設定を削除] する を選択し、 [完了] をクリックします。In Driver Verifier Manager, select Delete existing settings, and then click Finish.

    またはor

    コマンド プロンプトに次のコマンドを入力します。Enter the following command at a command prompt:

    verifier /reset
    
  2. コンピューターを再起動します。Restart the computer.

ドライバーの検証の統計情報を表示するにはTo view Driver Verifier statistics

  • ドライバー検証マネージャーで、 [現在検証されているドライバーに関する情報を表示する] を選択し、 [次へ] をクリックします。In Driver Verifier Manager, select Display information about the currently verified drivers, and then click Next. [次へ] をクリックすると、追加情報が表示されます。Continuing to click Next displays additional information.

    またはor

    コマンド プロンプトに次のコマンドを入力します。Enter the following command at a command prompt:

    verifier /query
    

ドライバーの検証の設定を表示するにはTo view Driver Verifier settings

  • ドライバー検証マネージャーで、 [既存の設定を表示] する を選択し、 [次へ] をクリックします。In Driver Verifier Manager, select Display existing settings, and then click Next.

    またはor

    コマンド プロンプトに次のコマンドを入力します。Enter the following command at a command prompt:

    verifier /querysettings
    

ドライバーの検証違反をデバッグする方法How to debug Driver Verifier violations

Driver Verifier の利点を最大限に活用するには、カーネルデバッガーを使用して、テストコンピューターに接続する必要があります。To get the most benefit from Driver Verifier, you should use a kernel debugger and connect it to the test computer. Windows 用デバッグツールの概要については、「 windows 用デバッグツール (WinDbg、KD、CDB、NTSD)」を参照してください。For an overview of debugging tools for Windows, see Debugging Tools for Windows (WinDbg, KD, CDB, NTSD).

ドライバーの検証ツールによって違反が検出された場合、コンピューターを停止するバグチェックが生成されます。If Driver Verifier detects a violation, it generates a bug check to stop the computer. これは、問題のデバッグに使用できる最も多くの情報を提供するためです。This is to provide you with the most information possible for debugging the issue. ドライバーの検証ツールを実行しているテストコンピューターにカーネルデバッガーが接続されていて、ドライバーの検証ツールによって違反が検出された場合、Windows はデバッガーにブレークし、エラーの簡単な説明を表示します。When you have a kernel debugger connected to a test computer that is running Driver Verifier, and Driver Verifier detects a violation, Windows breaks into the debugger and displays a brief description of the error.

ドライバーの検証ツールによって検出されたすべての違反は、バグチェックになります。All violations detected by Driver Verifier result in bug checks. 一般的なバグチェックコードには、次のものがあります。Common bug check codes include the following:

詳細については、「ドライバーの検証機能が有効になっている場合のバグチェックの処理」を参照してください。For more information, see Handling a Bug Check When Driver Verifier is Enabled. バグチェックのデバッグに関するヒントについては、「バグチェックのデバッグ 0xc4: ドライバー_VERIFIER_検出された_違反」を参照してください。For tips about debugging Bug Check 0xC4, see Debugging Bug Check 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION.

新しいデバッグセッションを開始するときは、デバッガー拡張機能コマンドである ! analyzeを使用します。When you start a new debugging session, use the debugger extension command, !analyze. カーネルモードでは、 [分析] コマンドを使用すると、最新のバグチェックに関する情報が表示されます。In kernel mode, the !analyze command displays information about the most recent bug check. 追加情報を表示するには、エラーが発生したドライバーを識別するために、次のようにオプション -vkd > プロンプトでコマンドに追加します。To display additional information, to help identify the faulting driver, add option -v to the command at the kd> prompt:

kd> !analyze -v

! Analyzeに加えて、次のデバッガー拡張機能をkd > プロンプトに入力して、Driver Verifier に固有の情報を表示できます。In addition to !analyze, you can enter the following debugger extensions at the kd> prompt to view information that is specific to Driver Verifier:

  • ! verifierは、キャプチャされたドライバーの検証ツールの統計情報をダンプします。!verifier dumps captured Driver Verifier statistics. ! Verifier-? を使用します。Use !verifier -? を選択すると、使用可能なすべてのオプションが表示されます。to display all of the available options.

    kd> !verifier
    
  • ! デッドロックは、ドライバー検証ツールのデッドロック検出機能によって追跡されるロックまたはオブジェクトに関連する情報を表示します。!deadlock displays information related to locks or objects tracked by Driver Verifier's deadlock detection feature. ! デッドロックを使用しますか?Use !deadlock -? を選択すると、使用可能なすべてのオプションが表示されます。to display all of the available options.

    kd> !deadlock
    
  • ! Ioブランコ p [アドレス] は、i/o 検証ツールによって追跡される IRP に関連する情報を表示します。!iovirp [address] displays information related to an IRP tracked by I/O Verifier. 次に、例を示します。For example:

    kd> !iovirp 947cef68
    
  • ! ruleinfo [RuleID] に違反したDDI 準拠チェック規則に関連する情報が表示されます。!ruleinfo [RuleID] displays information related to the DDI compliance checking rule that was violated. (RuleIDは常にバグチェックの最初の引数です)。DDI 準拠チェックからのすべての規則 Id は、0x200nnという形式になっています。(RuleID is always the first argument to the bug check.) All rule IDs from DDI compliance checking are in the form 0x200nn. 次に、例を示します。For example:

    kd> !ruleinfo 0x20005
    

ドライバーの検証ツール: 新機能Driver Verifier: What's New

ドライバーの検証ツールのオプションDriver Verifier Options

Driver Verifier コマンドの構文Driver Verifier Command Syntax

ドライバーの検証ツールの使用Using Driver Verifier

ドライバーの検証機能の制御Controlling Driver Verifier