Здравствуйте, TarasCo, Вы писали:
TC>А вот клиент TDI:
TC>841d12ec 877c1e08 83822078 841d1308 8c74da48 tcpip!TcpTlProviderConnect TC>841d1360 877c5e17 02741b80 8c74da48 83887d90 tdx!TdxConnectConnection+0x398 TC>841d137c 81c67cc9 83887c98 8c74da48 8c74da48 tdx!TdxTdiDispatchInternalDeviceControl+0x149 TC>841d1394 87d00470 838aa72c 8c644eb0 838aa630 nt!IofCallDriver+0x63 TC>841d13ac 87d005e1 8c4feb98 91ef71d0 838aa72c netbt!TdiConnect+0xe1
TC>Тут стек с параметрами, можно кой-чего интересного посмотреть:
TC>!devobj 83887c98 TC>Device object (83887c98) is for: TC> Tcp \Driver\tdx DriverObject 838721b8
TC>Убедились, что это мы видим обработку запроса устройством \Device\tcp, созданного драйвером tdx
TC>0: kd> !drvobj 838721b8 2
TC>Driver object (838721b8) is for: TC> \Driver\tdx TC>DriverEntry: 877cd005 tdx!GsDriverEntry TC>DriverStartIo: 00000000 TC>DriverUnload: 877c75d2 tdx!TdxUnload
TC>Dispatch routines: TC>.... TC>[0f] IRP_MJ_INTERNAL_DEVICE_CONTROL 877c5cce tdx!TdxTdiDispatchInternalDeviceControl TC>....
TC>Убедились, что мы видим обработку IRP_MJ_INTERNAL_DEVICE_CONTROL. Можно убедиться, что это запрос TDI_CONNECT
TC>Это я привел для иллюстрации факта, что драйвера afd.sys и tdx.sys являются равноправными, работают параллельно и ни один из них не использует другого.
Эти драйвера по определению не могут быть равноправными, т.к. выполняют разные функции в системе. tdx имеет TDI интерфейс для использования его по назначению TDI клиентами, в том числе AFD. AFD предоставляет юзермодной сокетной библиотеке промежуточный интерфейс для доступа к транспорту. Причем какой именно интерфейс использовать TDI или WSK определяется AFD в рантайме. Если в системе есть фильтры \device\TCP, то вызовы делаются через TDI интерфейс из tdx.sys.
Re[9]: Куда копать - перехват установления соединения по TC
R>Ну тогда судя по всему проверка остановилась до создания собственного фильтра, а это критично.
Проверил, Вы абсолютно правы — при добавлении устройства в стек \device\tcp вызовы перенаправляются в драйвер tdx.sys. Как говориться век живи — век учись.