Код статьи: 244617 - Последнее изменение :: 23 августа 2005 г. - Редакция: 5.1 Использование средства проверки драйверов для устранения неполадок в работе драйверов WindowsВнимание! Решение проблемы связано с внесением изменений в системный реестр. Перед внесением изменений в системный реестр рекомендуется создать резервную копию системного реестра и изучить процедуру его восстановления. Дополнительные сведения об архивировании, восстановлении и изменении реестра см. в следующей статье базы знаний Майкрософт: 256986
(http://support.microsoft.com/kb/256986/
)
Описание реестра Microsoft Windows На этой страницеАннотация
Средство проверки драйверов входит в состав Windows 2000, Windows XP и Windows Server 2003 и предназначено для обеспечения стабильной работы и повышения надежности. Данное средство может использоваться для устранения неполадок, возникающих при работе драйверов. Ошибки, допущенные при написании драйвера (например, ранней версии драйвера Windows Driver Model (WDM)), могут привести к тому, что компоненты уровня ядра вызовут сбой или повреждение операционной системы Windows. В данной статье рассматриваются возможности использования средства проверки драйверов для устранения неполадок, возникающих в работе драйверов.
Дополнительная информация
В статье рассматриваются следующие вопросы.
Возможности средства проверки драйверов.Чтобы выполнить проверку драйверов, необходимо запустить средство Verifier.exe и перезагрузить компьютер. Чтобы начать анализ драйверов, других действий выполнять не нужно.Средство проверки драйверов предоставляет следующие возможности. Выделение ресурсов из пулаПри получении запросов на выделение памяти из пула производится попытка удовлетворить все запросы, выделяя память из особого пула. При этом выделяемые ресурсы не могут использоваться другими процессами системы – они изолируются и ограничиваются страницами, для которых установлены разрешения «Нет доступа». Это позволяет выявлять ситуации, в которых драйвер выделяет больше памяти, чем получено из пула, что может привести к нарушению стабильности работы системы. Если при использовании данного режима компьютер обладает достаточным объемом физической и виртуальной памяти, то все ресурсы для драйвера выделяются из особого пула.Проверка работоспособности при повышенной нагрузке на памятьПроверка работоспособности при повышенной нагрузке на память может выполняться для заданного драйвера и не затрагивать остальные драйверы (независимо от объема памяти в системе). Для этого необходимо, чтобы диспетчер памяти пометил как недействительные выгружаемый код и данные драйвера, а также выгружаемый пул системы, код и данные. Это позволит выявить драйверы, которые ошибочно удерживают спин-блокировки или запускают прерывания IRQL, а затем получают доступ к выгружаемому коду или данным. Данный режим позволяет выявить несистематические проблемы и определить их причину.Проверка параметровВсе производимые драйвером вызовы, приводящие к установке спин-блокировок, возникновению прерываний IRQL и распределению пула автоматически, подвергаются проверке параметров. При этом проверяется, удовлетворяют ли данные вызовы следующим требованиям.
Имитация сбоев при распределении пулаЗапросы на выделение ресурсов из пула, для которых драйвер не устанавливает флаг MUST_SUCCEED, могут случайным образом отклоняться. Это позволяет проверить правильность работы драйвера в условиях недостатка памяти.Освобождение пулаПри освобождении пула проверяется, не остались ли в пуле отложенные таймеры, поскольку это может вызвать сбои, причину которых тяжело определить.Обнаружение утечек пулаСистема автоматически отслеживает все запросы драйвера на выделение ресурсов из пула. Если при выгрузке драйверов какие-либо ресурсы не освобождены, возникает системная ошибка. Чтобы просмотреть список выделенных ресурсов, которые еще не освобождены, воспользуйтесь командой !verifier 3 отладчика ядра. Кроме того, данную команду можно использовать до выгрузки драйвера, чтобы ознакомиться со списком ресурсов, которые были выделены драйверу в произвольный момент времени.Проверка выгрузки драйвераДанная проверка позволяет выявить драйверы, которые при выгрузке не полностью удаляют используемые ресурсы, что увеличивает вероятность возникновения сбоя через некоторые время после выгрузки данного драйвера. В число подобных ресурсов входят ассоциативные списки, отложенные вызовы отложенных процедур (DPC), рабочие потоки, очереди, таймеры и другие ресурсы.Проверка ввода-выводаПосле включения проверки ввода-вывода с помощью диспетчера проверки файлов или путем изменения параметра реестра VerifyDriverLevel (дополнительные сведения см. в разделе «Включение проверки драйверов» данной статьи) при операциях ввода-вывода выполняются некоторые проверки, перечисленные ниже.
Необходимые условия для выполнения проверки драйверовСредство проверки драйверов работает под управлением Windows 2000, Windows XP и Windows Server 2003. Использование одной из указанных операционных систем является единственным условием, необходимым для применения данного средства. Средство проверки драйверов поддерживается как в розничной, так и в отладочной версиях Windows. Рекомендации по подготовке к использованию диспетчера проверки драйверов на рабочих серверах см. в статье 251233 базы знаний Майкрософт. Если на компьютере установлена программа Norton Antivirus, не используйте в диспетчере проверки драйверов режим обнаружения взаимоблокировки. Дополнительные сведения см. в статье 325672 базы знаний Майкрософт.Включение проверки драйверовЧтобы включить проверку драйверов, воспользуйтесь средством Verifier.exe. Данное средство входит в состав всех перечисленных выше версий Windows и автоматически устанавливается в папку System32. Средство Verifier.exe поддерживает пользовательский интерфейс и режим командной строки и позволяет выбирать проверяемые драйверы и соответствующий уровень проверки. Статистика проверки драйверов отображается в режиме реального времени. Дополнительные сведения см. в разделе «Диспетчер проверки драйверов» данной статьи.Устранение ошибок, возникающих при проверке драйверовКоманда !verifier отладчика ядра и средство Verifier.exe показывают текущие параметры проверки драйверов и статистику в режиме реального времени.Все ошибки, возникающие при проверке драйверов, вызывают появление системных ошибок. Наиболее распространенные ошибки приведены ниже.
Проверка драйверов и графические драйверыГрафические драйверы Windows уровня ядра (например, библиотеки драйверов принтера и видеокарт) не могут напрямую обращаться к точке входа в пул. Вместо этого распределение пула выполняется косвенным образом с помощью графического интерфейса драйвера устройств (DDI), осуществляющего ответные вызовы драйвера Win32k.sys. Например, вызов функции EngAllocMem представляет собой ответный вызов, выполняемый графическим драйвером для явного выделения памяти из пула. Кроме того, выделение памяти из пула выполняют и другие специализированные обратные вызовы, например EngCreatePalette и EngCreateBitmap.Чтобы предоставить возможность аналогичной автоматической проверки графических драйверов, в драйвер Win32k.sys добавлена поддержка некоторых функций проверки драйверов. Однако, поскольку на графические драйверы налагается больше ограничений, чем на драйверы уровня ядра, для проверки графических драйверов требуются только некоторые возможности, предоставляемые средством проверки драйверов. В частности, нет необходимости в проверке IRQL и проверке ввода-вывода. Другие возможности (например, использование особого пула, имитация сбоев при распределении пула и отслеживание пула) в различной степени поддерживаются различными обратными вызовами DDI. Имитация сбоев при распределении пула поддерживается для следующих функций обратного вызова графического интерфейса DDI.
Включение проверки драйверов для графических драйверов выполняется так же, как и для остальных драйверов (дополнительные сведения см. в разделе «Включение проверки драйверов» данной статьи). Неподдерживаемые флаги, например флаг проверки IRQL, игнорируются. Для определения параметров проверки драйверов и трассировки пула для графических драйверов можно воспользоваться командой !gdikdx.verifier отладчика ядра. ПРИМЕЧАНИЕ. Режим имитации сбоев при распределении пула должен применяться только с целью проверки надежности работы. Поскольку использование данного режима может вызывать появление сообщений об ошибках создания изображений, не используйте данный режим для проверки правильности реализации графических драйверов (например, путем сравнения изображения, формируемого драйвером, с эталонным изображением). Диспетчер проверки драйверов (Verifier.exe)Для создания и изменения параметров проверки драйверов, а также для сбора статистики при проверке драйверов корпорация Майкрософт рекомендует использовать средство «Диспетчер проверки драйверов» (Verifier.exe). Данное средство поставляется в составе Windows и находится в папке %WinDir%\System32.Состояние драйвераСтраница Состояние драйвера отображает текущее состояние средства проверки драйверов, а также список драйверов, обнаруженных средством проверки, и состояние драйверов. В поле «Состояние» могут быть указаны следующие значения.
Если установлен флаг «Особый пул» и если менее 95 процентов выделяемых ресурсов распределяется из особого пула, на данной странице появляется предупреждающее сообщение. Это значит, что для улучшения качества проверки распределения пула необходимо уменьшить число проверяемых драйверов или увеличить объем оперативной памяти компьютера. Глобальные счетчикиНа странице Глобальные счетчики отображается состояние некоторых счетчиков, поддерживаемых средством проверки драйверов. Нулевое значение счетчика может говорить о том, что в диспетчере проверки драйверов не установлен флаг, соответствующий данному счетчику. Например, если значение счетчика «Неудачных» равно 0, значит не установлен флаг «Нехватка ресурсов». По умолчанию значения счетчиков обновляются автоматически. Это позволяет отслеживать работу средства проверки. Чтобы изменить частоту обновления, переключиться в режим ручного обновления или выполнить принудительное обновление состояния счетчиков, используйте элементы управления, находящиеся в левом нижнем углу окна.Слежение за пуломНа данной странице отображаются значения дополнительных счетчиков, поддерживаемых средством проверки драйверов. Все счетчики, находящиеся на этой странице, активируются при установке в диспетчере проверки драйверов флага «Слежение за пулом». Большинство счетчиков отображают данные, относящиеся к конкретному драйверу (например, счетчики «Текущих распределений», «Байт в текущий момент» и т. п.). Чтобы просмотреть показания счетчика для какого-либо драйвера, необходимо выбрать имя драйвера в поле со списком, находящемся в верхней части окна.ПараметрыДанная страница позволяет создавать и изменять параметры проверки драйверов. Эти параметры сохраняются в системном реестре, поэтому, чтобы изменения вступили в силу, необходимо перезагрузить компьютер. На данной странице также отображается список установленных драйверов. Каждый драйвер, указанный в списке, может находиться в одном из следующих состояний.
В нижней части страницы можно указать названия дополнительных драйверов, которые следует проверить после перезагрузки. Вводимые названия следует разделять пробелами. Как правило, это необходимо при установке нового драйвера, который еще не загружен. Если переключатель в верхней части окна установлен в положение Проверить все драйверы, то список драйверов, кнопки Проверить и Не проверять, а также поле для ввода названий драйверов становятся недоступными. Это означает, что после следующей перезагрузки будут проверяться все драйверы. Флажки, находящиеся в правом верхнем углу окна, позволяют указать тип проверки. Проверка ввода-вывода может выполняться на уровне 1 или на уровне 2. Уровень 2 предполагает выполнение дополнительных проверок по сравнению с уровнем 1. Чтобы сохранить сделанные изменения, необходимо нажать кнопку Применить. Кроме кнопки «Применить» на данной странице находятся следующие кнопки.
Легко меняющиеся настройкиДанная страница позволяет изменить значения некоторых параметров проверки драйверов без перезагрузки. Список проверяемых драйверов при этом изменять нельзя. Чтобы изменения вступили в силу, необходимо нажать кнопку Применить. Изменения вступают в силу сразу после нажатия данной кнопки и действуют до внесения новых изменений или до перезагрузки компьютера.Параметры командной строкиСредство Verifier.exe можно запускать из командной строки (чтобы получить дополнительные сведения, введите в командной строкеverifier.exe /? ). Ниже перечислены основные параметры командной строки, поддерживаемые данным средством.
Дополнительные сведения для разработчиков драйверовСледующий раздел содержит дополнительные сведения о параметрах проверки драйверов, которые могут потребоваться разработчикам драйверов. Администраторы и опытные пользователи эти параметры, как правило, не используют.Предупреждение. Неправильное использование редактора реестра может привести к возникновению серьезных неполадок, требующих переустановки операционной системы. Корпорация Майкрософт не несет ответственности за неправильное использование редактора реестра. За результаты работы пользователя с редактором реестра корпорация Майкрософт ответственности не несет. Чтобы включить проверку драйверов путем изменения параметров реестра, выполните следующие действия.
Ниже приведены примеры значений данного параметра.
Информация в данной статье относится к следующим продуктам.
| Переводы статьи
|

Перейти к началу страницы
