Хочу получить все откртые соединений для своего процесса. Почитал, в интеренете все делают через "\Device\Udp" "\Device\Tcp" (http://blog.donews.com/zwell/archive/2005/09/14/553899.aspx) Попытался сделать, а у меня при перечислении таких девайсов в моем процессе нету, хотя одно соединение есть точно. Но есть "Device\Afd" После практически безрезультатного поиска, нашел что в Висте что то поменяли, что то передалали и так далее. Попыталься слать "Device\Afd" IOCTL_TDI_QUERY_INFORMATION но пишет: STATUS_INVALID_DEVICE_REQUEST . Документацию на "Device\Afd" найти не смог. Или так ищу или её в явном виде - нет. Помогите, кто знает пожайлуста, какой есть универсальный способ ХП-Виста получить адреса и порты всех соединений для процесса из Р3. GetTcpTable - не возвращает имя процесса которому принадлежит соединения, да и не хочеться её использовать. Пыталься сделать через getpeername и перехват всех сетевых функций, получилось, но способ оказался не самым быстрым, при каждом вызове send + recv вызывать и заново определять адрес + порт, а потом обновлять таблицу с коннектами. Заранеее, спасибо.
Есть конечно функция GetExtendedTcpTable, но она только с ХП СП2, а мне нужно что бы начинала работать от ХП без паков, а лучше ещё и с 2000 Винды, и желателно на функция ntdll | kernel. Просто перехватывать можно ws2_32 функции на коннект(connec,WSAConnec,select,accept), но не ясно тогда что делать с WSAAsyncSelect+WSAEventSelect, не буду же я перехватывать функцию приема сообщений в окно и фильтровать сообщения которые идут в окно.(желательно перехватывать только ntdll.dll+ws2_32.dll)