Анализ проблем верификации драйверов Windows - page 11

Анализ проблем верификации драйверов Windows
11
Поиск ошибки выполняется в тех местах кода, где вызывается про-
блемная системная функция.
Driver Verifier организует крах системы с возвратом стандартного
кода ошибки: DRIVER_VERIFIER_DETECTED_VIOLATION. При
анализе дампа можно определить место возникновения ошибки с
точностью до системной функции, что, несомненно, проще, чем про-
верять весь код драйвера в случае возникновения аналогичной ситуа-
ции при спин-блокировках.
Можно сделать вывод, что взаимные блокировки являются по-
тенциальной проблемой любой операционной системы и особенно
опасны при работе драйверов режима ядра. В любом случае, взаимо-
блокировка — это аварийная ситуация в системе, и для предотвра-
щения значительных потерь данных операционной системе важно
завершить свою работу корректно и предоставить максимум инфор-
мации о причинах аварии.
Таким образом, по результатам проведенных экспериментов
можно сформулировать правила написания драйверов с использова-
нием средств взаимоисключения:
отладку драйвера следует проводить при включенном режиме
отслеживания взаимоблокировок Driver Verifier;
для определения ошибочного кода необходимо анализировать
дополнительную информацию о крахе, такую как: правила — !rulein-
fo, данные детального анализа — !analyze -v, стек потоков — !tbread;
в случае если невозможно выявить причину при анализе допол-
нительной информации, нужно исследовать стек ядра, анализируя
последовательность вызовов.
Тестирование драйверов на предмет взаимоблокировок усложня-
ется тем, что этот процесс непериодический и сложно моделируется
в рабочих драйверах. В частности, ошибки сложно выявить из-за не-
детерминированности поведения таких процессов. Хорошее проек-
тирование кода драйвера и детальное тестирование позволят мини-
мизировать риск возникновения ошибок.
ЛИТЕРАТУРА
[1] Использование средства проверки драйверов для выявления проблем с
драйверами Windows. URL:
[2] Руссинович М., Соломон Д.
Внутреннее устройство Windows: Windows
Server 2003, Windows XP и Windows 2000. Мастер класс
. Москва, «Русская
редакция»; Санкт-Петербург, Питер, 2005, 990 с.
[3] Oney W. Programming the Microsoft Windows Driver Model. Microsoft.-
Redmond: Microsoft Press, 1999, 342 р.
Статья поступила в редакцию 10.06.2013
1...,2,3,4,5,6,7,8,9,10 12
Powered by FlippingBook