Выгрузка драйвера и WinDbg

Тема в разделе "WASM.BEGINNERS", создана пользователем Nicky, 7 янв 2010.

  1. Nicky

    Nicky New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2009
    Сообщения:
    16
    Здравствуйте
    Написал TDI драйвер-фильтр, который создает несколько объектов - контрольный, и фильтрующие.
    В DriverUnload фильтрующие девайсы отключаются и все эти объекты удаляются. Затем система падает, после выхода из DriverUnload.Если один из использующихся объектов не удалять, система не упадет, но при следующей StartService получим код ошибки (ведь DriverObject не удалился - у него есть ссылка на неудаленный девайс - значит драйвер не выгружен). Такое происходит, если включен WinDBG к машине, где запускается драйвер.
    Если отладчик не подключен - никаких бсодов не происходит, драйвер можно загружать/выгружать сколько угодно. Причем если удалить не все DeviceObject's, драйвер все равно спокойно выгружается (или по крайней мере, StartService загружает его успешно после неполной выгрузки).
    Из-за чего может такое происходить? Спрашиваю, потому что хочется найти зацепки, с чего начать поиск ошибок в коде драйвера.
    Каким образом наличие WinDBG может влиять на BSOD?
    Спасибо