Поделиться через


Трассировка Winsock

Знакомство

Трассировка Winsock — это функция устранения неполадок, которая может быть включена в розничных двоичных файлах для отслеживания определенных событий сокета Windows с минимальными затратами. Цель добавления розничной трассировки в сокеты Windows — обеспечить лучшие возможности диагностики для разработчиков и поддержки продуктов. Трассировка сетевых событий Winsock поддерживает операции сокета трассировки для приложений IPv4 и IPv6. Трассировка изменений каталога Winsock поддерживает трассировку изменений, внесенных в каталог Winsock с помощью многоуровневых поставщиков служб (LSPs). Трассировка Winsock поддерживается в Windows Vista и более поздних версиях.

Заметка

Поставщики многоуровневой службы устарели. Начиная с Windows 8 и Windows Server 2012, используйте платформу фильтрации Windows.

 

Если на сокете возникает непредвиденная ошибка, основной ключ для диагностики проблемы — возвращенный код ошибки. Очень часто возвращаемый код ошибки не объясняет, почему произошла ошибка, особенно если ошибка инициируется базовым сетевым транспортом. Трассировка Winsock обеспечивает более подробный уровень трассировки, который может записывать дополнительные сведения для перехвата повреждения буфера и плохо написанных приложений.

Трассировка Winsock использует трассировку событий для Windows (ETW), общую, высокоскоростную трассировку, предоставляемую операционной системой. Используя механизм буферизации и ведения журнала, реализованный в ядре, ETW предоставляет механизм трассировки событий, создаваемых как приложениями в пользовательском режиме, так и драйверами устройств в режиме ядра. Кроме того, ETW позволяет динамически включать и отключать ведение журнала, что упрощает выполнение подробной трассировки в рабочих средах, не требуя перезагрузки или перезапуска приложения. Механизм ведения журнала использует буферы, записываемые на диск потоком асинхронного модуля записи. Это позволяет крупномасштабным приложениям сервера записывать события с минимальным нарушением. ETW впервые появился в Windows 2000. Добавлена поддержка трассировки Winsock с помощью ETW в Windows Vista и более поздних версиях. Общие сведения о ETW см. в статье Улучшение отладки и настройки производительности с помощьюETW.

Трассировка Winsock может быть включена только на уровне операционной системы для всех процессов и потоков, работающих на компьютере. Трассировка Winsock в настоящее время не может быть включена только для одного процесса или потока. Если включена трассировка сетевых событий Winsock, все приложения сокетов (IPv4 и IPv6) на компьютере трассируются.

В следующих разделах подробно описана трассировка Winsock:

улучшить отладку и настройку производительности с помощью etw

средства отладки и трассировки