Как обнаружить открытые сокеты в Windows? - PullRequest
1 голос
/ 08 октября 2010

В Windows XP (SP2, если необходимо), есть ли способ определить из приложения пользовательского пространства, что открыт сокет TCP / UDP (из любого процесса)? Мне известны функции GetExtendedTcpTable() и GetExtendedUdpTable(), но они обнаруживают только в настоящее время открытых сокетов. Некоторые сокеты закрываются сразу после открытия, и единственный способ, которым я смогу обнаружить их существование, - это уведомление об открытии.

Если такого механизма в пользовательском пространстве не существует, я хочу пойти в пространство ядра, чтобы получить эту функциональность. Есть ли какие-либо документированные / недокументированные функции, которые могли бы сделать это?

1 Ответ

1 голос
/ 08 октября 2010

Скорее всего, вам потребуется написать драйвер WinSock LSP или SPI, чтобы обнаружить это без необходимости напрямую подключать каждый запущенный процесс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...