Microsoft Message Analyzer(MMA)は、Windows用の無償ネットワーク解析ツールですが、USBデバイスの解析にも利用できます。例えば、あるUSBデバイスをWindowsに接続した時のエニュメレーションプロセスの詳細が知りたい場合などにMMAが利用できます。久しぶりに使ってみると、微妙にキャプチャ方法が変わっていて戸惑ったので、手順をまとめておきます。USBデバイスの解析は、次の4ステップで行えます。
1. MMAのインストール
2. MMAの起動
3. キャプチャ設定
4. USBデバイスの解析
(Microsoft Message Analyzerの配布は終了したようです。[Microsoft Message Analyzer – Retirement Notice ])
1. MMAのインストール
"windows message analyzer"で検索すると、Microsoft社のダウンロードページが見つかります。そこからMessageAnalyzer.msiまたはMessageAnalyzer64.msiをダウンロードしてWindowsにインストールします。サポートされているOSはWindows7とWindows8/8.1です。
2. MMAの起動
|
MMAを管理者として実行する |
MMAを管理者として実行します。管理者として実行しないとUSBデバイスのキャプチャでエラーになります。
|
MMA起動直後 |
3. キャプチャ設定
File->New Session->Live Traceを選択します。
|
新しいSessionの作成 |
New Sessionウィンドウが立ち上がるので、Trace Scenario:Select a trace scenarioのプルダウンメニューからUSB2またはUSB3を選択します(プルダウンメニューの内容表示に少し時間がかかる場合もあるようです)。ここではUSB2を選択しています。USB3はWindows8.xのみサポートされているようです。
|
Trace Scenarioの選択 |
USB2を選択したらStartボタンを押します。
|
キャプチャ開始 |
キャプチャが始まりますが、画面の表示をわかりやすく設定したいので、Stopボタンでキャプチャを停止します。
|
ストップボタンで停止 |
Add Columnsを押してField Chooserを表示します。
|
Field Chooserの表示 |
Field ChooserのGlobal PropertiesからUsbDeviceを見つけて、右クリックで表示されるAdd As Columnを選択します。
|
Field ChooserでUsbDeviceを追加 |
UsbDeviceというカラムが追加されるので、カラムの"UsbDevice"という部分を右クリックして表示されるGroupを選択します。
|
UsbDeviceのGroup表示 |
これでトレースがUSBデバイス単位で表示されるようになり、解析が楽になります。
|
USBデバイス単位の表示 |
4. USBデバイスの解析
Restartボタンを押すとキャプチャが始まります。あるデバイスのエニュメレーションプロセスを観測したい場合は、最初にRestartボタンを押して、その後でUSBデバイスをWindowsに接続します。
例えば、一般的なUSBフラッシュメモリを接続すると、次のように表示されます。USBフラッシュメモリのVIDやPIDの対応は、デバイスマネージャーなどで事前に調べておく必要があります。
|
USBフラッシュメモリのエニュメレーション |
このように、
- USBアドレスは6に設定された
- GET_DESCRIPTOR(Device)が実行された
- GET_DESCRIPTOR(Configuration)が実行された
ことなどが、時系列で確認できます。データの詳細が知りたい場合は、その行を選択するとDetails部分に表示されます。例えばGet Full Device Descriptorを選択すると、実際にUSBデバイスから取得したデスクリプタの値がDetails部分に表示されます。
|
GET_DESCRIPTOR(Device)の詳細 |