Re[4]: NdisOpenAdapter hook, обработчик NdisSend
От: dzmudist  
Дата: 03.04.08 15:49
Оценка:
Здравствуйте, TarasCo, Вы писали:

TC>Поправка: не ProtocolBindComplete, а ProtocolOpenAdapterComplete ( по крайней мере, так ее именуют в DDK )



OldReceiveHandler = ProtocolCharacteristics->Ndis40Chars.Ndis30Chars.ReceiveHandler;
ProtocolCharacteristics->Ndis40Chars.Ndis30Chars.ReceiveHandler = NewNdisReceive;

OldNdisOpenAdapterComplete = ProtocolCharacteristics->Ndis40Chars.Ndis30Chars.OpenAdapterCompleteHandler;
ProtocolCharacteristics->Ndis40Chars.Ndis30Chars.OpenAdapterCompleteHandler = NewNdisOpenAdapterComplete;

((NDISREGISTERPROTOCOL)(OldNdisRegisterProtocol))(Status, NdisProtocolHandle, ProtocolCharacteristics, 
     CharacteristicsLength);


NewNdisReceive вызывается, а NewNdisOpenAdapterComplete — нет, этим я исключаю какую-то вероятность того что я что-то сделал не правильно... Видимо NdisOpenAdapter отрабатывает не в ассинхронном режиме, либо не попадает в состояние pending... (позднее) так и есть, привожу лог в котором отображены статусы которые возвращает оригинальный NdisOpenAdapter

[Hook CALL] NewNdisRegisterProtocol [TCPIP]
[Hook CALL] NewNdisOpenAdapter [\DEVICE\{F636A717-6B4F-4913-9E81-D673B4F7D9CE}]
[OpenAdapter] Status: SUCCESS
[End Hooked CALL] NewNdisOpenAdapter

[Hook CALL] NewNdisRegisterProtocol [TCPIP_WANARP]
[Hook CALL] NewNdisOpenAdapter [\DEVICE\NDISWANIP]
[OpenAdapter] Status: SUCCESS
[End Hooked CALL] NewNdisOpenAdapter

[Hook CALL] NewNdisRegisterProtocol [NDISUIO]
[Hook CALL] NewNdisOpenAdapter [\DEVICE\{F636A717-6B4F-4913-9E81-D673B4F7D9CE}]
[OpenAdapter] Status: SUCCESS
[End Hooked CALL] NewNdisOpenAdapter
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.