USBStress は、カーネル モード ドライバーのユーザー モード アプリケーション (usbstress.exe) とドライバーインストール パッケージの組み合わせです。usbstress.sys。
これらのファイルは MUTT ソフトウェア パッケージに含まれています。
USBStress
USBStress は、USB ドライバー スタック全体と USB 汎用親ドライバー (Usbccgp.sys)、およびコントローラーとそのアップストリーム ハブに重点を置いた一連のテストです。 USBStress はテストをランダムに選択し、接続されたテスト デバイスを構成します。 テストのランダムな性質のため、より多くのテストの組み合わせを許可するには、24 時間の期間にわたって USBStress を実行することをお勧めします。
このツールは、テストデバイスとの間でさまざまな転送長の制御転送、バルク転送、等時性転送、データ転送を実行します。 SuperMUTT デバイスの場合、USBTCD は一括エンドポイントでサポートされているストリームにデータを転送します。
USBStress ドライバーは主に自己駆動型です。つまり、ほとんどの I/O 要求は、アプリケーションではなくドライバーによって生成されます。 ドライバーは、タイマーと作業項目を使用して I/O を生成し、その他の操作を実行します。 ドライバーは、そのテストを実行する必要があるかどうかを判断するレジストリを確認します。 外部プログラムは、そのレジストリ キーを設定します。 このドライバーの目的は、競合状態や同期の問題を洗い出すために、さまざまな操作の間で可能な限り同時実行性を高めることです。
USBStress が実行するテストの一覧を次に示します。
- リモート ウェイクアップを使用して選択的に中断します。
- バルク、割り込み、等時性エンドポイントでの同時読み取り/書き込み要求とキャンセル。
- 同時文字列は要求と取り消しを転送します。
- 一括エンドポイントでの同時中止パイプとキャンセル。
- ランダム リセットによる突然の削除と再列挙。
- ランダムにリセットし、突然取り外して再列挙を試み、その結果、再列挙に失敗します。
- 使用可能な代替インターフェイスをランダムに選択します。
- n 番目の制御転送ごとにストールするようにデバイスにランダムに指示します。
- 公開されているダウンストリーム ポートから VBUS を切断するように MUTT パック (接続されている場合) にランダムに指示します。
- MUTTパック (接続されている場合) に、露出したダウンストリームポートで過電流状態をシミュレートするようにランダムに指示を出します。
- MUTT パック (接続されている場合) に、ハブでハードウェア リセットを実行するようにランダムに指示します。
MUTT デバイスの usbstress.sys ドライバーをインストールするには、 -UpdateDriver option で MuttUtil を使用します。
c:\Program Files (x86)\USBTest\x64>MuttUtil.exe -UpdateDriver usbstress.inf
Return value: 0
c:\Program Files (x86)\USBTest\x64>MuttUtil.exe -list
: : HARDWARE ID : PROBLEM CODE : DRIVER
DEVICE : 0 : USB\VID_045E&PID_078E&REV_8011 : 0 : USBSTRESS
Return value: 1