Здравствуйте, AndrewJD, Вы писали:
AJD>Здравствуйте, Handler, Вы писали:
H>>Теперь самая главная проблемма — отладка!
AJD>SoftIce тебе поможет
H>>А так, чтобы видеть код драйвера, как в User Mode — о таких отладчиках я не слыхал. Разве что kd Microsoft — но он дает общую картину ОС.
AJD>SoftIce показывает Debug Symbols
H>>И еще: во время тестирования драйвера если что-то пошло не так отладку завершаем, но драйвер остается в ОП. Приходиться вручную удалять запись о драйвере из реестра(HKLM/CurrentControlSet/Services/Xxx) и перезагружать машину — нудно!
AJD>Ты ставишь драйвер в режим автозагрузки
AJD>А почему не используешь net start и net stop ?
Вот общая картина управляющего приложения:
1 OpenCSManager(...)
2 CreateService(...)
3 StartService(...)
4 DeleteService(...)
5 CloseServiceHandle(...)
В пункте 3 управление передается процедуре DriverEntry(...) нашего драйвера. Если в коде драйвера присутствует ошибка(99.9%), то пункты 4 и 5 не выполнятся а если и выполнятся , то повторный запуск приложения вернет GetLastError() "Данная служба помечена для удаления". Но вовпрос не в этом — это на совести писавшего код — пусть он проверяет. Странно, но WinObj Марка руссиновича наш сервис "не видит", а следим мы за ним "Пуск -> программы -> стандартные -> служебные -> Системный монитор -> программная среда -> драйверы". Скорее всего. я что-то путаю в процедуре инициализации драйвера:
DriverEntry(...)
{
CreateSymbolicLink(...)
...
DeleteSymbolicLink(...)
}
SoftIce я не пробовал — у меня w2k, а он под него становиться не хочет. Все упирается в отладочные инструменты. Мне их катастрофически не хватает! Стоит пакет DDK, а есть еще "Средства отладки Windows 2000". Помогите, пожалуйста, пока я свой ПК ен угробил — человеческий фактор на него дурно влияет!!! Заранее благодарен! Алексей.