Re[2]: Kernel Mode
От: Handler Украина  
Дата: 09.03.05 07:48
Оценка:
Здравствуйте, 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". Помогите, пожалуйста, пока я свой ПК ен угробил — человеческий фактор на него дурно влияет!!! Заранее благодарен! Алексей.
Whoa...I did a 'zcat /vmlinuz > /dev/audio' and I think I heard God...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.