один - потому что под вистой таки поменялась структура _KINTERRUPT
второй - потому что
for ( iter = *List;
(iter != NULL) && MmIsAddressValid(iter);
iter = iter->Flink )
под вистой же все списки именно закольцованные - последний элемент содержит адрес List, а не треш какой-нть, т.е. нужно примерно так:
for ( iter = *List;
(iter != NULL) && MmIsAddressValid(iter) && (iter != (LIST_ENTRY*)List);
iter = iter->Flink )
Итого оно бодро и весело сожрало весь и так не великий стек и свалилось в синяк. Забавно что под windows 7 64bit оно таки работало
Обновил кстати все ndis структуры версиями для vista 64 бита
Комментариев нет:
Отправить комментарий