Forum Replies Created
-
AuthorPosts
-
В TDIMON’e они вообще просто поступили: когда приходит IRP_MJ_CREATE они выделяют память для структуры хранящей инфу о соединении. И в этой же структуре они содержат все 12 контекстов для 12 event’ов. А когда закрывается соединение(IRP_MJ_CLOSE) они просто удаляют всю структуру вместе с контекстами.
В майкрософте сидят одни сволочи! В таблице соединений внутри tcpip есть инфа и о Source и о Destination ip/port . Только вот при запросе TDI_QUERY_ADDRESS_INFO копируется из нее только Source… 👿
Пропатчить чтоли tcpip.sys… 😈
Да, кстати об очистке памяти выделеной под контекст. Как же я буду очищать если нулевой хэндлер потом не ставится, как я узнаю что уже можно удалять контекст? Наверно, система шлет ноль только когда собирается переустановить хэндлер. А очищать память надо при закрытии соединения… блин опять же придется делать таблицу соединений…
Gen, ты меня не понял. У меня есть драйвер который хучит мажорные функции TcpIp.sys. В хэндлере IRP_MJ_INTERNAL_DEVICEIO_CONTROL. Я ловлю TDI_SEND и мне надо по полученому IRP получить информацию о destination port и ip. Очень не хочется следить за всеми Connect и Disconnect событиями. Есть ли способ получить такую информацию тут же, не используя собственных таблиц соединений? Потому что проблем с получением локального айпи и порта нет.
Вот жеж прикольно, в TCPIP.sys реально заимплеменчено только:
#define TDI_QUERY_BROADCAST_ADDRESS 0x00000001
#define TDI_QUERY_PROVIDER_INFORMATION 0x00000002
#define TDI_QUERY_PROVIDER_INFO 0x00000002
#define TDI_QUERY_ADDRESS_INFO 0x00000003
#define TDI_QUERY_CONNECTION_INFO 0x00000004
#define TDI_QUERY_PROVIDER_STATISTICS 0x00000005P.S. Дохлый какой-то форум или никто не знает ответов на мои вопросы?
И еще вопрос, как по соединению получить remote address? Потому что в TDI_REQUEST_KERNEL_SEND нету RemoteAddress.
Пробовал слать TDI_QUERY_INFORMATION/ TDI_QUERY_DATA_LINK_ADDRESS на file object. Но в отличии от TDI_QUERY_INFORMATION, TDI_QUERY_DATA_LINK_ADDRESS говорит STATUS_NOT_IMPLEMENTED. Неужели единственный путь – это как в TdiMon’e хранить весь набор соединений?
-
AuthorPosts