Здравствуйте, okman, Вы писали:
O>Подскажу один из вариантов — посмотрите на последний аргумент ClientEventConnect. O>Для этого IRP можно установить completion routine, и в ней отложить завершение, O>отправив сигнал в user-mode. Получив ответ, завершение IRP возобновляется с O>подходящим кодом, разрешая или запрещая прием соединения (TDI_ACCEPT).
в целом — это вроде бы работает, но есть недочет: Если в completion routine принимается решение о блокировке соединения, то соединение разрывается. А хотелось бы чтобы эффект был такой, как будто соединение и не устанавливалось вовсе. Т.е. в текущей реализации, если я телнетом лезу на машину на которой работает фильтр, и соединение блокируется — telnet говорит "Connection lost", а хотелось бы чтобы он говорил, что Connection failed или timed out..
я так понимаю, всетаки предложенный вариант решения проблемы слишком поздно принимает решение о блокировке (когда TCP сессия уже завязана). Есть ли еще какие способы решения проблемы?