Мне нужен способ узнать, какой процесс открыл какой порт без помощи внешнего приложения.Т.е. нет netstat или других подобных инструментов.
Вам необходимо использовать вспомогательные функции IP . В частности, GetExtendedTcpTable и GetExtendedUdpTable .
Например, для GetExtendedUdpTable вы можете передать MIB_UDPTABLE_OWNER_PID в качестве TableClass, и вы сможете получить PID процесса, который вызвал привязку для конечной точки UDP.