Winsock トレースの制御
Winsock トレースは、次のいずれかの方法を使用して制御できます。
コマンド ライン ツール
トレースを制御し、バイナリ トレース ログ ファイルを読み取り可能なテキストに変換するために使用される 2 つのコマンド ライン ツールが Windows Vista および Windows Server 2008 に含まれています。
logman.exe ツールは、Winsock トレースを開始または停止するために使用されます。
tracerpt.exe ツールは、バイナリ トレース ログ ファイルを読み取り可能なテキスト ファイルに変換するために使用されます。
イベント ビューアー
Windows Vista 以降のイベント ビューアーを使用して、Winsock トレースを有効にすることもできます。 イベント ビューアーには、[スタート] メニューの [管理ツール] からアクセスできます。
logman と tracerpt の使用
Windows Vista 以降では、Winsock ネットワーク イベント トレースは既定で無効になっています。
次のコマンドは、コンピューターで Winsock ネットワーク イベント トレースを開始し、イベント トレース セッションの名前を mywinsocksession に設定し、winsocklogfile.etl というバイナリ ログ ファイルに出力を送信します。
logman start -ets mywinsocksession -o winsocklogfile.etl -p Microsoft-Windows-Winsock-AFD
ログ ファイルは、winsocklogfile_000001.etl 形式のファイル名を使用して現在のディレクトリに作成されます。
次のコマンドは、mywinsocksession という名前のセッションのコンピューターで上記の Winsock トレースを停止します。
logman stop -ets mywinsocksession
バイナリ ログ ファイルは、–o パラメーターで指定された場所に書き込まれます。 バイナリ ファイルを読み取り可能なテキスト ファイルに変換するには、tracerpt.exe を使用します。
.etl ファイルの tracerpt.exe <名> –o winsocktracelog.txt
プレーン テキストではなく xml を含む出力ファイルが推奨される場合は、次のコマンドが使用されます。
tracerpt.exe <.etl ファイルの名前> -o winsocktracelog.xml -of xml
Windows Vista 以降では、Winsock カタログ変更トレースが既定で有効になっています。
次のコマンドは、コンピューター上の階層化サービス プロバイダー (LSP) の Winsock Catalog Change トレースを開始し、イベント トレース セッションの名前を mywinsockcatalogsession に設定し、winsockcataloglogfile.etl というバイナリ ログ ファイルに出力を送信します。
logman start -ets mywinsockcatalogsession -o winsockcataloglogfile.etl -p Microsoft-Windows-Winsock-WS2HELP
ログ ファイルは、winsockcataloglogfile_000001.etl 形式のファイル名を使用して現在のディレクトリに作成されます
次のコマンドは、mysession という名前のセッションのコンピューターで上記の Winsock トレースを停止します。
logman stop -ets mywinsockcatalogsession
バイナリ ログ ファイルは、–o パラメーターで指定された場所に書き込まれます。 バイナリ ファイルを読み取り可能なテキスト ファイルに変換するには、tracerpt.exe を使用します。
.etl ファイルの tracerpt.exe <名> –o winsockcatalogtracelog.txt
プレーン テキストではなく xml を含む出力ファイルが推奨される場合は、次のコマンドが使用されます。
tracerpt.exe <.etl ファイルの名前> -o winsockcatalogtracelog.xml -of xml
イベント ビューアーを使用した Winsock ネットワーク イベント トレースの開始
イベント ビューアーを開くと、左側のウィンドウにイベントの一覧が表示されます。 アプリケーションとサービス ログ を開き、Microsoft\Windows\Winsock ネットワーク イベント をソースとして に移動して、運用を選択します。
[操作] ウィンドウで、[ログのプロパティ] 選択し、[ログ を有効にする] チェック ボックスをオンにします。 ログ記録が有効になったら、必要に応じてログ ファイルのサイズを変更することもできます。
Winsock ネットワーク イベント トレースが有効になり、ログに記録されたイベントの一覧を更新するために [更新] アクションを実行するだけで済むようになりました。 ログ記録を停止するには、同じラジオ ボタンをオフにします。
表示するイベントの数に応じて、ログ のサイズを増やす必要がある場合があります。 Winsock トレースにイベント ビューアーを使用する欠点の 1 つは、すべての文字列リソースが読み込まれないため、[説明] フィールドに表示されるメッセージ (イベントを選択した後) が読み取りにくい場合がある点です (たとえば、16 進数として書式設定する必要がある引数は 10 進数で表示されます)。 ただし、イベントの説明で [詳細] タブを選択すると、通常は引数を理解しやすくなっている生の XML ログ エントリが表示されます。
イベント ビューアーを使用した Winsock カタログ変更トレースの開始
イベント ビューアーを開くと、左側のウィンドウにイベントの一覧が表示されます。 [アプリケーションとサービス ログ] を開き、ソースとして Microsoft\Windows\Winsock Catalog Change に移動し、Operational を選択します。
[操作] ウィンドウで、[ログのプロパティ] 選択し、[ログ を有効にする] チェック ボックスをオンにします。 ログ記録が有効になったら、必要に応じてログ ファイルのサイズを変更することもできます。
Winsock カタログ変更トレースが有効になり、ログに記録されたイベントの一覧を更新するために [更新] アクションを実行するだけで済みます。 ログ記録を停止するには、同じラジオ ボタンをオフにします。
表示するイベントの数に応じて、ログ のサイズを増やす必要がある場合があります。 Winsock トレースにイベント ビューアーを使用する欠点の 1 つは、すべての文字列リソースが読み込まれないため、[説明] フィールドに表示されるメッセージ (イベントを選択した後) が読み取りにくい場合がある点です (たとえば、16 進数として書式設定する必要がある引数は 10 進数で表示されます)。 ただし、イベントの説明で [詳細] タブを選択すると、通常は引数を理解しやすくなっている生の XML ログ エントリが表示されます。
Winsock トレース ログの解釈
ログ内のすべての Winsock トレース イベントには、次の 2 種類の情報が含まれています。
- システム
- イベントデータ
システム情報には、ログ レベル、ログ エントリが作成された時刻、イベントの種類を表すイベント ID、実行プロセス ID、実行スレッド ID、およびその他のシステム情報が含まれます。 Winsock トレースのログ レベル 4 は、情報イベントのログ記録を表します。 Winsock トレースのログ レベル 5 は、詳細なイベント ログを表します。
システム情報の実行プロセス ID とスレッド ID は、イベントが発生したときに実行されていたプロセスとスレッドを示します。 多くの場合、これは、ユーザー モード スレッドやアプリケーションのプロセスではなく、カーネルまたはワーカー スレッドとプロセスを表します。 そのため、通常、このフィールドはあまり役に立ちません。
各 Winsock トレース イベントの種類には、ログに記録されたデータのシステム セクションに一意のイベント ID があります。 これらのイベント ID は、特定の Winsock トレース イベントのログ ファイルをフィルター処理するために簡単に使用できます。
eventdata には、イベントの種類に固有の情報が含まれています。
eventdata 情報の Process パラメーターは、実際の PID ではなく、プロセスのカーネル EPROCESS 構造体アドレスです。 イベントをユーザー モード PID と照合するには、任意のログ エントリから eventdata 情報から Process 値を取得し、以前のログで、プロセス値を持つソケット作成イベントを確認します。 一致が見つかったら、ソケット作成イベント データの最後のパラメーターは、ソケットを作成したユーザー モードのプロセス ID です。
イベント データ情報の Address パラメーターは、一部の Winsock トレース イベントで返されます。 Address パラメーターは IP アドレスを表しますが、tracerpt.exe ツールによって作成されたテキスト ファイルまたはイベント ビューアーに生バイトまたは数値として表示されます。 IPv6 アドレスは 16 進数で表示されるため、理解しやすくなります。 IPv4 アドレスは、大きな 10 進数として表示されます。 開発者は、IPv4 アドレスの生バイトを、より使い慣れた IPv4 ドット 10 進アドレス表記に手動で変換して、値をより適切に解釈できるようにする必要があります。
イベント データの Error パラメーターは、一部の Winsock トレース イベントで返されます。 Error パラメーターは、NTSTATUS または HRESULT エラー コードの形式です。 このエラー パラメーターは、tracerpt.exe ツールによって作成されたテキスト ファイルまたはイベント ビューアーに 10 進数で表示されます。 開発者は、場合によってはエラー コードをより適切に解釈するために、10 進数を 16 進数に手動で変換する必要があります。