Управление трассировкой Winsock
Трассировка Winsock может управляться с помощью любого из следующих методов:
Средства командной строки
В состав Windows Vista и Windows Server 2008 входят два средства командной строки, которые используются для управления трассировкой и преобразования файла журнала двоичной трассировки в доступный для чтения текст.
Инструмент logman.exe используется для запуска или остановки трассировки Winsock.
Средство tracerpt.exe используется для преобразования файла журнала двоичной трассировки в доступный для чтения текстовый файл.
Средство просмотра событий
Средство просмотра событий в Windows Vista и более поздних версиях можно также использовать для включения трассировки Winsock. Средство просмотра событий доступно через "Администрирование" в меню "Пуск".
Использование logman и tracerpt
Трассировка сетевых событий Winsock отключена по умолчанию в Windows Vista и более поздних версиях.
Следующая команда запускает трассировку сетевых событий Winsock на компьютере, задает имя сеанса трассировки событий mywinsocksession и отправляет выходные данные в двоичный файл журнала с именем winsocklogfile.etl:
logman start -ets mywinsocksession -o winsocklogfile.etl -p Microsoft-Windows-Winsock-AFD
Файлы журналов создаются в текущем каталоге с именами файлов формы winsocklogfile_000001.etl
Следующая команда останавливает указанную выше трассировку Winsock на компьютере для сеанса с именем mywinsocksession:
logman stop -ets mywinsocksession
Двоичный файл журнала будет записан в расположение, указанное параметром –o. Для преобразования двоичного файла в доступный для чтения текстовый файл используется tracerpt.exe:
tracerpt.exe <имя ETL-файла> –o winsocktracelog.txt
Если выходной файл, содержащий xml, а не обычный текст, предпочтителен, используется следующая команда:
tracerpt.exe <имя ETL-файла> –o winsocktracelog.xml xml
Трассировка изменений каталога Winsock включена по умолчанию в Windows Vista и более поздних версиях.
Заметка
Провайдеры многоуровневых услуг устаревшие. Начиная с Windows 8 и Windows Server 2012, используйте платформу фильтрации Windows.
Следующая команда запускает трассировку изменений каталога Winsock для поставщиков многоуровневых служб (LSPs) на компьютере, задает имя сеанса трассировки событий mywinsockcatalogsession и отправляет выходные данные в двоичный файл журнала с именем winsockcataloglogfile.etl:
logman start -ets mywinsockcatalogsession -o winsockcataloglogfile.etl -p Microsoft-Windows-Winsock-WS2HELP
Файлы журналов создаются в текущем каталоге с именами файлов формы winsockcataloglogfile_000001.etl
Следующая команда останавливает указанную выше трассировку Winsock на компьютере для сеанса с именем mysession:
logman остановите -ets mywinsockcatalogsession
Двоичный файл журнала будет записан в расположение, указанное параметром –o. Для преобразования двоичного файла в доступный для чтения текстовый файл используется tracerpt.exe:
tracerpt.exe <имя ETL-файла> –o winsockcatalogtracelog.txt
Если выходной файл, содержащий xml, а не обычный текст, предпочтителен, используется следующая команда:
tracerpt.exe <имя ETL-файла> –o winsockcatalogtracelog.xml –of xml
Использование средства просмотра событий для запуска трассировки сетевых событий Winsock
При открытии средства просмотра событий в левой области содержится список событий. Откройте журналы приложений и служб и перейдите к Microsoft\Windows\Winsock События сети в качестве источника и выберите Operational.
В области действий выберите свойства журнала и установите флажок "Включить ведение журнала" . После включения ведения журнала можно также изменить размер файла журнала, если это необходимо.
Трассировка сетевых событий Winsock теперь включена, и все, что необходимо сделать, нажмите на действие "Обновить", чтобы обновить список событий, зарегистрированных в журнал. Чтобы остановить ведение журнала, просто снимите флажок с той же переключатель.
Возможно, потребуется увеличить размер журнала в зависимости от количества событий, которые вы хотите увидеть. Одним из недостатков использования средства просмотра событий для трассировки Winsock является то, что он не загружает все строковые ресурсы, поэтому сообщения, отображаемые в поле "Описание" (когда вы выбираете событие), иногда трудно читать (аргумент, который должен быть отформатирован как шестнадцатеричный, будет отображаться в десятичном формате, например). Однако вы можете выбрать вкладку "Сведения" в описании события, в котором показана запись сырого журнала XML, которая обычно содержит более понятные аргументы.
Использование средства просмотра событий для запуска трассировки изменений каталога Winsock
При открытии средства просмотра событий в левой области содержится список событий. Откройте журналы приложений и служб и перейдите к источнику Microsoft\Windows\Winsock Catalog Change и выберите Оперативный.
В области действий выберите свойства журнала и установите флажок "Включить ведение журнала". После включения ведения журнала можно также изменить размер файла журнала, если это необходимо.
Трассировка изменений каталога Winsock теперь включена, и все, что необходимо сделать, нажмите действие "Обновить", чтобы обновить список событий, которые были зарегистрированы. Чтобы остановить ведение журнала, просто снимите отметку с такой же радиокнопки.
Возможно, потребуется увеличить размер журнала в зависимости от количества событий, которые вы хотите увидеть. Одним из недостатков использования средства просмотра событий для трассировки Winsock является то, что он не загружает все строковые ресурсы, поэтому сообщения, отображаемые в поле "Описание" (когда вы выбираете событие), иногда трудно читать (аргумент, который должен быть отформатирован как шестнадцатеричный, будет отображаться в десятичном формате, например). Однако вы можете выбрать вкладку "Сведения о " в описании события, в котором показана запись необработанного журнала XML, которая, как правило, упрощает понимание аргументов.
Интерпретация журналов трассировки Winsock
Все события трассировки Winsock в журнале содержат два типа информации:
- Система
- EventData
Системные сведения содержат уровень ведения журнала, время создания записи журнала, идентификатор события, представляющий тип события, идентификатор процесса выполнения, идентификатор потока выполнения и другие системные сведения. Уровень журнала 4 в трассировке Winsock соответствует ведению журнала информационных событий. Уровень журнала 5 в трассировке Winsock представляет подробное ведение журнала событий.
Идентификатор процесса выполнения и идентификатор потока в системной информации указывает процесс и поток, выполняемый при возникновении события. Во многих случаях это будет представлять ядро или рабочий поток и процесс, а не поток пользовательского режима и процесс приложения. Поэтому это поле обычно не очень полезно.
Каждый тип события трассировки Winsock имеет уникальный идентификатор события в системном разделе зарегистрированных данных. Эти идентификаторы событий можно легко использовать для фильтрации файла журнала для определенных событий трассировки Winsock.
Eventdata содержит сведения, относящиеся к типу события.
Параметр Process в сведениях о событиях — это адрес структуры EPROCESS ядра для процесса, а не фактический идентификатор процесса. Чтобы сопоставить событие с идентификатором процесса в пользовательском режиме (PID), возьмите значение Process из информации о событиях из любой записи журнала и найдите в более ранней части журнала событие создания сокета с таким значением Process. После обнаружения совпадения последний параметр в данных события создания сокета является идентификатором процесса в пользовательском режиме, который создал сокет.
Параметр Address в данных о событиях возвращается в некоторых событиях трассировки Winsock. Параметр Address представляет IP-адрес, но он отображается в текстовом файле, созданном средством tracerpt.exe или в средстве просмотра событий как необработанные байты или число. Адреса IPv6 отображаются в шестнадцатеричном формате, поэтому их проще понять. Адреса IPv4 отображаются как большое десятичное число. Разработчикам потребуется вручную преобразовать необработанные байты IPv4-адреса в более знакомую нотацию IPv4-точечного десятичного адреса, чтобы лучше интерпретировать это значение.
Параметр Error в eventdata возвращается в некоторых событиях трассировки Winsock. Параметр error имеет форму кода ошибки NTSTATUS или HRESULT. Этот параметр ошибки отображается в текстовом файле, созданном средством tracerpt.exe или в средстве просмотра событий в виде десятичного числа. Разработчикам потребуется вручную преобразовать десятичное число в шестнадцатеричное число, чтобы лучше интерпретировать код ошибки в некоторых случаях.