Winsock 追蹤的控制
您可以使用下列其中一種方法來控制 Winsock 追蹤:
命令列工具
Windows Vista 和 Windows Server 2008 隨附兩個命令列工具,可用來控制追蹤,並將二進位追蹤記錄檔轉換成可讀取的文字。
logman.exe工具可用來啟動或停止 Winsock 追蹤。
tracerpt.exe工具可用來將二進位追蹤記錄檔轉換成可讀取的文字檔。
事件檢視器
Windows Vista 和更新版本上的事件檢視器也可用來啟用 Winsock 追蹤。 事件檢視器可從 [開始] 功能表的 [系統管理工具] 下存取。
使用 logman 和 tracert
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 :
<tracerpt.exe .etl 檔案 > 的名稱 –o winsocktracelog.txt
如果慣用包含 xml 而非純文字的輸出檔,則會使用下列命令:
<tracerpt.exe .etl 檔案名 > –o winsocktracelog.xml –of xml
Windows Vista 和更新版本預設會啟用 Winsock 目錄變更追蹤。
注意
分層服務提供者已被取代。 從Windows 8和Windows Server 2012開始,請使用Windows 篩選平台。
下列命令會啟動電腦上分層服務提供者的 Winsock 目錄變更追蹤 (LSP) 、將事件追蹤會話的名稱設定為 mywinsockcatalogsession,並將輸出傳送至名為 winsockcatalogfile.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 :
<tracerpt.exe .etl 檔案 > 的名稱 –o winsockcatalogtracelog.txt
如果慣用包含 xml 而非純文字的輸出檔,則會使用下列命令:
<tracerpt.exe .etl 檔案名 > –o winsockcatalogtracelog.xml –of xml
使用 事件檢視器 啟動 Winsock 網路事件追蹤
當您開啟事件檢視器時,左窗格會包含事件清單。 開啟 應用程式和服務記錄 ,並流覽至 Microsoft\Windows\Winsock 網路事件 作為來源,然後選取 [ 操作]。
在 [動作] 窗格中,選取 [ 記錄屬性 ],然後核取 [ 啟用記錄 ] 核取方塊。 啟用記錄之後,您也可以視需要變更記錄檔的大小。
Winsock 網路事件追蹤現已啟用,您只需要叫用 Refresh 動作來更新已記錄的事件清單。 若要停止記錄,只要取消核取相同的選項按鈕即可。
視您想要查看的事件數目而定,您可能需要增加記錄大小。 使用 Winsock 追蹤事件檢視器的其中一個缺點是,它不會載入所有字串資源,因此當您選取事件) 時,[描述] 欄位中顯示的訊息 (有時候很難讀取 (應該格式化為十六進位的引數,例如) 。 不過,您可以在事件描述中選取 [詳細 資料] 索引標籤,其中顯示原始 XML 記錄專案,通常更容易瞭解引數。
使用 事件檢視器 啟動 Winsock 目錄變更追蹤
當您開啟事件檢視器時,左窗格會包含事件清單。 開啟 [應用程式和服務記錄 ],然後流覽至 [Microsoft\Windows\Winsock 目錄變更 ] 作為來源,然後選取 [ 操作]。
在 [動作] 窗格中,選取 [ 記錄屬性 ],然後核取 [ 啟用記錄 ] 核取方塊。 啟用記錄之後,您也可以視需要變更記錄檔的大小。
Winsock 目錄變更追蹤現已啟用,您只需要叫用 Refresh 動作來更新已記錄的事件清單。 若要停止記錄,只要取消核取相同的選項按鈕即可。
視您想要查看的事件數目而定,您可能需要增加記錄大小。 使用 Winsock 追蹤事件檢視器的其中一個缺點是,它不會載入所有字串資源,因此當您選取事件) 時,[描述] 欄位中顯示的訊息 (有時候很難讀取 (應該格式化為十六進位的引數,例如) 。 不過,您可以在事件描述中選取 [詳細 資料] 索引標籤,其中顯示原始 XML 記錄專案,通常更容易瞭解引數。
解譯 Winsock 追蹤記錄
記錄檔中的所有 Winsock 追蹤事件都包含兩種類型的資訊:
- 系統
- EventData
系統資訊包含記錄層級、建立記錄專案的時間、代表事件種類的事件識別碼、執行進程識別碼、執行執行緒識別碼和其他系統資訊。 Winsock 追蹤中的記錄層級為 4 代表資訊事件記錄。 Winsock 追蹤中的記錄層級為 5,代表詳細資訊事件記錄。
系統資訊中的執行進程識別碼和執行緒識別碼會指出事件發生時所執行的進程和執行緒。 在許多情況下,這代表核心或背景工作執行緒和進程,而不是使用者模式執行緒和應用程式的進程。 因此,此欄位通常不非常實用。
每個 Winsock 追蹤事件種類在記錄資料的系統區段中都有唯一的事件識別碼。 這些事件識別碼可以輕鬆地用來篩選特定 Winsock 追蹤事件的記錄檔。
eventdata 包含事件種類特有的資訊。
eventdata 資訊中的 Process 參數是進程的核心 EPROCESS 結構位址,而不是實際的 PID。 若要比對事件與使用者模式 PID,請從任何記錄專案取得 Eventdata 資訊的 Process 值,並在記錄中稍早查看具有 Process 值的通訊端建立事件。 找到相符專案之後,通訊端建立事件資料中的最後一個參數就是建立通訊端的使用者模式進程識別碼。
eventdata 資訊中的 Address 參數會在某些 Winsock 追蹤事件中傳回。 Address 參數代表 IP 位址,但會顯示在由tracerpt.exe工具所建立的文字檔中,或是以原始位元組或數位事件檢視器顯示。 IPv6 位址會以十六進位顯示,因此更容易理解。 IPv4 位址會顯示為大型十進位數。 開發人員必須手動將 IPv4 位址的原始位元組轉換為更熟悉的 IPv4 點十進位位址標記法,才能更能解譯值。
eventdata 中的 Error 參數會在某些 Winsock 追蹤事件中傳回。 Error 參數的格式為 NTSTATUS 或 HRESULT 錯誤碼。 此錯誤參數會顯示在tracerpt.exe工具所建立的文字檔中,或以十進位數事件檢視器顯示。 開發人員必須手動將十進位數轉換成十六進位數位,才能在某些情況下更妥善地解譯錯誤碼。
相關主題