Проблема в том, что при выгрузке драйвера, после регистрации протокола, идет вызов NdisDeregisterProtocol. Затем NDIS вызывает ProtocolUnbindAdapter моего протокола, куда ,по идее DDK, передается Т.е. хендл открытого мною адаптера. Брякаемся на ProtocolUnbindAdapter, и смотрим переменные : Теперь вопрос, какого хрена мне ндис передает какое-то гавно ? Хотя до этого ( до того как спутник венеры не вышел из-за орбиты, и луна не перешла в другую фазу ) все нормально работало. Соответственно я не могу вызвать NdisCloseAdapter и NdisCloseAdapterComplete , потому что указатель не верный. Поэтому NDIS циклически ( пока я не закрою адаптер ) будет вызывать мою функцию