В Win2k вы можете использовать GetTcpTable (), GetTcp6Table (), GetUdpTable () и GetUdp6Table (), чтобы найти все активные соединения с сокетами. Но чтобы сопоставить их с конкретными идентификаторами процессов, вам придется вручную перечислять открытые дескрипторы системы в поисках дескрипторов TCP / UDP, а затем запрашивать у них информацию о процессе.
В XP вы можете использовать AllocateAndGetTcpExTableFromStack () и AllocateAndGetUdpExTableFromStack (), которые могут возвращать идентификаторы процессов при каждом соединении с сокетом.
В XP SP2 и более поздних версиях вы можете использовать GetExtendedTcpTable () и GetExtendedUdpTable (), которые также могут возвращать идентификаторы процессов при каждом соединении с сокетом.