Разработка драйвера для Windows
Я новичок в разработке драйверов для Windows, поэтому, пожалуйста, потерпите меня, если мой вопрос слишком глуп. Ну, я не уверен, почему, как предлагал MSDN, а также, как я понял, хост-компьютер, например, разработка драйвера, и целевой компьютер, например, отладка драйвера, должны быть двумя отдельными. почему такое разделение? Я попытался объединить эти два, развернув и отладив драйвер на главном компьютере, на котором я разрабатываю драйвер, и это, казалось, работало без возражений со стороны Windows. Благодарю.
PS. Источник как этот http://msdn.microsoft.com/en-us/library/windows/hardware/hh698272(v=vs.85).aspx заставил меня так думать.
3 ответа
Практически, когда вы разрабатываете и тестируете драйвер, во многих ситуациях вы получаете сбой системы (BSOD), и ваша система может не загружаться. В таких ситуациях ваша среда разработки + отладчик также становится недоступной.
Когда мы разрабатываем драйвер и тестируем его, система падает, и появляется синий экран (называемый BSOD - синий экран смерти). Это не тот случай, когда разрабатывается приложение в пользовательском режиме, и оно зависло из-за ошибки памяти. Ваш драйвер будет работать как приложение в режиме ядра. Если он выйдет из строя из-за недопустимой операции с памятью, то вся система исчезнет. Это не простая проблема, вам необходимо войти в безопасный режим и удалить драйвер из вашей системы, чтобы восстановить его.
В связи с этим предпочтительно использовать целевую машину, в основном виртуальную машину, на которой установлен драйвер, и хост-машину, на которой мы будем использовать отладчик для отладки драйвера.
Для отладки ядра требуются две отдельные машины. Вы не можете отлаживать себя по очевидным причинам (отладчик и отладчик находятся в одном и том же ядре, и появляется тупик). Конечно, целевая машина может быть виртуальной.