Использование средства проверки драйверов для выявления проблем — Windows Server
- Статья
- Чтение занимает 12 мин
Средство проверки драйверов входит в каждую версию Windows, начиная с Windows 2000. Он используется для обнаружения и устранения многих проблем с драйверами, которые, как известно, приводят к повреждению системы, сбоям или другому непредсказуемому поведению. В этой статье описывается, как использовать средство проверки драйверов для изоляции и устранения неполадок драйвера в системе.
Применимо к: Windows Server 2012 Foundation, Windows Server 2012 Essentials, Windows Server 2012 Standard, Windows Server 2012 Datacenter
Исходный номер базы знаний:
Возможности средства проверки драйверов
Чтобы использовать средства проверки драйверов, запустите Verifier. exe и перезапустите компьютер. Вам не нужно вносить другие изменения, чтобы начать анализ драйверов в системе. Учетной записи пользователя требуются права администратора для запуска Verifier.exe.
Средства проверки драйверов могут проверять множество различных аспектов поведения драйвера. Эти возможности группируются в параметры или параметры, которые включены с помощью флагов. (Параметры терминов, параметры и флаги обычно взаимозаменяемы в документации по средствам проверки драйверов. Они представляют похожие понятия.)
Подробные сведения о каждом флаге см. в разделе «Параметры средства проверки драйвера» и классы правил.
Стандартные параметры
Следующие параметры вместе представляют правила, которые не должны нарушать все драйверы в системе. Эти параметры /standard
включены при включении стандартных параметров в графическом пользовательском интерфейсе средства проверки драйверов или при настройке средства проверки драйверов с помощью командной строки.
Автоматические проверки
Эти проверки всегда выполняются для проверяемого драйвера независимо от выбранных параметров.
Примеры автоматических проверок:
- Проверки IRQL
- Созданный IRQL (то есть текущий IRQL меньше целевого IRQL).
- Ниже IRQL (то есть текущий IRQL больше целевого IRQL).
- SpinLocks:
- Двойной выпуск спин-блокировки.
- Приобретения и выпуски спин-блокировки выполняются в соответствующей IRQL.
- Выделение памяти:
- Выделение и выделение пула с использованием страниц выполняются в правильной версии IRQL (APC_LEVEL или ниже).
- Выделения и бесплатные пулы без страниц выполняются в правильной версии IRQL (DISPATCH_LEVEL или ниже).
- Для этих программных интерфейсов (API) не указаны случайные (неинициализированные) значения.
- Освобожденные выделения не указывают на активные объекты таймера.
- Проверка выгрузки драйвера:
- Проверяет, что драйвер не имеет ожидающих операций во время выгрузки, таких как ожидающие контроллеры домена или рабочие потоки.
- Проверяет, что драйвер не имеет ожидающих операций во время выгрузки, таких как ожидающие контроллеры домена или рабочие потоки.
- Другие поведения драйверов:
- Неправильное переключение стеков потоков.
- Попытка вызова KeWaitXxx в IRQL >= DISPATCH_LEVEL.
- Разыменовывающее объект, у которого уже есть счетчик ссылок 0.
Специальный пул
Если этот параметр активен, средства проверки драйвера выделяют большую часть запросов памяти драйвера из специального пула. Этот специальный пул отслеживается на случай переполнения памяти, нехватки памяти и памяти, доступ к которую выполняется после ее очистки.
Принудительная проверка IRQL
Если этот параметр активен, driver Verifier накладывает крайнюю нехватку памяти на драйвер, недействительный код, допускаемый к просмотру. Если драйвер пытается получить доступ к памяти на странице в неправильном IRQL или при удержании спин-блокировки, то это поведение обнаруживается при проверке драйвера.
Отслеживание пула
Если этот параметр активен, то при выгрузки драйвер проверяет, освобождает ли драйвер все выделения памяти. Он выявляет утечки памяти.
Проверка ввода-вывода
Если этот параметр активен, driver Verifier выделяет IRP драйвера из специального пула и отслеживает обработку ввода-вывода драйвера. Он обнаруживает недопустимое или несогласованное использование процедур ввода-вывода.
Если включена проверка ввода-вывода:
- Все IP-адреса, выделенные через IoAllocateIrp, выделяются из специального пула, если они доступны.
- Проверки выполняются в IoCallDriver, IoCompleteRequest и IoFreeIrp для перехвата сообщений об ошибках драйвера.
- Все ошибки проверки ввода-вывода проверяют с помощью кода DRIVER_VERIFIER_IOMANAGER_VIOLATION (0xC9).
Примечание.
В Windows 7 и более поздних версиях операционной системы Windows все функции расширенной проверки ввода-вывода включены в проверку ввода-вывода и больше не доступны и не требуются для выбора параметра расширенной проверки ввода-вывода в диспетчере проверки драйвера или в командной строке.
Обнаружение взаимоблокировки
Если этот параметр активен, driver Verifier отслеживает использование драйвером спин-блокировок, мьютекса и быстрых мьютексов. Он определяет, может ли код драйвера в определенный момент вызвать взаимоблокировку.
Расширенная проверка ввода-вывода
Если этот параметр активен, средство проверки драйверов отслеживает вызовы нескольких подпрограмм диспетчера операций ввода-вывода и выполняет нагрузочное тестирование ip-адресов PnP, ip-адресов питания и IPI WMI.
Примечание.
В Windows 7 и более поздних версиях все функции расширенной проверки ввода-вывода включены в проверку ввода-вывода. Этот параметр больше не доступен или не требуется в диспетчере средства проверки драйверов или в командной строке.
Проверка DMA
Если этот параметр активен, средства проверки драйвера отслеживают использование драйвером подпрограмм DMA. Он обнаруживает неправильное использование буферов DMA, адаптеров и регистров карт.
Проверки безопасности
Если этот параметр активен, проверяющий драйвер ищет распространенные ошибки, которые могут привести к уязвимостям системы безопасности, например ссылку на адреса в пользовательском режиме подпрограммами режима ядра.
Прочие проверки
Если этот параметр активен, проверяющий драйвер ищет распространенные причины сбоев драйвера, такие как неправильное обработка освобожденной памяти.
Проверка соответствия DDI
Если этот параметр активен, driver Verifier применяет набор правил интерфейса драйвера устройства (DDI), которые проверяют правильность взаимодействия между драйвером и интерфейсом ядра операционной системы.
Параметр проверки соответствия DDI реализуется с помощью библиотеки режима ядра, называемой VerifierExt.sys. Если обнаружено нарушение одного из правил проверки соответствия DDI, VerifierExt.sys будет модуль, который вызывается для проверки системных ошибок.
Дополнительные параметры
Эти параметры предназначены для тестирования конкретного сценария или являются вариантами, которые внедряют сбои или задержки в определенные подпрограммы DDI для имитации экстренных нагрузочных условий.
Требования к средствам проверки драйверов
Единственным требованием является то, что необходимо установить Windows Server 2012. Вы можете включить проверку драйверов как в розничных, так и в проверенных версиях Windows. Если установлена антивирусная программа Norton, не включите обнаружение взаимоблокировок средства проверки драйверов.
Включение средства проверки драйверов
Вы можете включить проверку драйвера с помощью Verifier.exe. Verifier.exe включается в каждую копию Windows. Он автоматически устанавливается в папку System32. Verifier.exe интерфейсы командной строки и графического пользовательского интерфейса (GUI), поэтому можно указать драйверы и соответствующие уровни проверки. Вы также можете просмотреть статистику по проверке драйверов в режиме реального времени. Дополнительные сведения см. в разделе «Диспетчер проверки Verifier.exe драйверов «.
Отладка нарушений средства проверки драйвера
Если проверятель драйвера обнаруживает нарушение, стандартное поведение — проверка системы на наличие максимально возможной информации об отладке проблемы. Система, подключенная к отладчику, будет остановлена после проверки ошибок.
Все нарушения средства проверки драйверов приводит к проверкам ошибок, но наиболее распространенными (хотя не обязательно все) являются:
- 0xC1: SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION
- 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION
- 0xC6: DRIVER_CAUGHT_MODIFYING_FREED_POOL
- 0xC9: DRIVER_VERIFIER_IOMANAGER_VIOLATION
- 0xD6: DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION
- 0xE6: DRIVER_VERIFIER_DMA_VIOLATION
!analyze -v
— это лучшая команда, используемая при запуске нового сеанса отладки. Эта команда вернет полезную информацию и попытается определить неисправный драйвер.
Расширения отладчика, относящиеся к средству проверки драйверов:
!verifier
создает дамп записанной статистики средства проверки драйвера.!verifier -?
отобразит все доступные параметры.!deadlock
создает дамп данных, связанных с блокировками или объектами, отслеживаемыми обнаружением взаимоблокировок.
отобразит все доступные параметры.!iovirp [address]
создает дамп сведений, связанных с IRP, отслеживаемым с помощью средства проверки ввода-вывода.!ruleinfo [RuleID]
создает дамп сведений, связанных с нарушенным правилом проверки соответствия DDI (RuleID всегда является первым аргументом для проверки ошибок, все идентификаторы правил проверки соответствия DDI имеют форму 0x200nn).
Средства проверки драйверов и графические драйверы
Графические драйверы в режиме ядра Windows, такие как библиотеки DLL принтера и драйвера дисплея, не могут вызывать точку входа пула напрямую. Выделение пула выполняется косвенно с помощью обратных вызовов интерфейса драйвера графического устройства (DDI) для Win32k.sys. Например, EngAllocMem — это обратный вызов, который графический драйвер вызывает для явного выделения памяти пула. Другие специализированные обратные вызовы, такие как EngCreatePalette и EngCreateBitmap, также возвращают память пула.
Чтобы обеспечить такое же автоматическое тестирование для графических драйверов, поддержка некоторых функций средства проверки драйверов включена в Win32k.sys. Так как графические драйверы более ограничены, чем другие драйверы в режиме ядра, им требуется только подмножество функций средства проверки драйверов. В частности, проверка IRQL и проверка ввода-вывода не требуются. Другие функциональные возможности, а также использование специального пула, случайный сбой выделения пула и отслеживание пула, поддерживаются в разной степени в разных графических обратных вызовах DDI.
Случайные сбои поддерживаются для следующих графических функций обратного вызова DDI:
- EngAllocMem
- EngAllocUserMem
- EngCreateBitmap
- EngCreateDeviceSurface
- EngCreateDeviceBitmap
- EngCreatePalette
- EngCreateClip
- EngCreatePath
- EngCreateWnd
- EngCreateDriverObj
- BRUSHOBJ_pvAllocRbrush
- CLIPOBJ_ppoGetPath
Кроме того, для EngAllocMem поддерживается отслеживание специальных пулов и пулов.
Включение средства проверки драйверов для графических драйверов идентично включению других драйверов. Дополнительные сведения см. в разделе «Включение средства проверки драйвера «. Неподдерживаемые флаги, такие как проверка IRQL, игнорируются. Кроме того, можно использовать !gdikdx.verifier
команду kernel-debugger для проверки текущего состояния средства проверки драйверов и трассировки пула для графических драйверов.
Примечание.
Для проверки надежности следует использовать только параметр случайного сбоя выделения. Использование этого параметра может привести к отрисовке сообщений об ошибках, поэтому не следует использовать этот параметр с проверочного теста для проверки правильности реализации графического драйвера (например, путем сравнения выходных данных графического драйвера с эталонным изображением).
Диспетчер проверки драйверов (Verifier.exe)
Средство диспетчера проверяемых драйверов (Verifier.exe) является предпочтительным способом создания и изменения параметров средства проверки драйверов и сбора статистики из средства проверки драйверов. Verifier.exe находится в папке %WinDir%\System32 для каждой установки Windows.
Диспетчер проверяемых драйверов — это графический пользовательский интерфейс, включенный в Windows для настройки средства проверки драйверов. Запустите диспетчер проверки драйверов, используя verifier.exe без других параметров командной строки. При включении коммутаторов используется версия служебной программы на основе командной строки.
Чтобы получить справку по настройке средства проверки драйверов, verifier.exe /?
запустите его в окне CMD администратора.
Состояние драйвера
На странице свойств «Состояние драйвера» отображается текущее состояние средства проверки драйвера. Вы можете увидеть, какие драйверы обнаруживает проверяемая. Состояние может быть одним из следующих значений:
- Загружено: драйвер в настоящее время загружен и проверен.
- Выгружено: драйвер в настоящее время не загружен, но был загружен по крайней мере один раз с момента перезапуска компьютера.
- Никогда не загружалось: драйвер никогда не загружается. Это состояние может указывать на то, что файл образа драйвера поврежден или вы указали имя драйвера, отсутствующее в системе.
Выберите заголовок списка, чтобы отсортировать список по именам или состояниям драйверов. В правом верхнем углу диалогового окна можно просмотреть текущие типы проверки, которые применяются. Состояние драйверов обновляется автоматически, если вы не переключитесь в режим обновления вручную. Частоту обновления можно изменить с помощью переключателей в левой нижней части диалогового окна. Чтобы принудительно обновить состояние, выберите
Если включить флаг «Специальный пул» и менее 95 процентов выделенного пула было отправлено в специальный пул, на этой странице появится предупреждающее сообщение. Это означает, что необходимо выбрать меньший набор драйверов для проверки или добавить на компьютер дополнительный объем физической памяти, чтобы получить более полное покрытие проверки выделения пула.
Глобальные счетчики
На этой странице свойств показано текущее значение некоторых счетчиков, поддерживаемых средствами проверки драйверов. Нулевое значение счетчика может указывать на то, что связанный флаг проверки драйвера не включен. Например, значение 0 для счетчика «Другие/сбои» указывает, что флаг имитации низкого ресурса не включен. Вы можете отслеживать действия средства проверки, так как значения счетчиков обновляются автоматически по умолчанию. Вы можете изменить частоту обновления, переключиться на обновление вручную или принудительно выполнить обновление с помощью группы элементов управления в левой нижней части диалогового окна.
Отслеживание пула
На этой странице свойств отображается больше статистики, собранной из средства проверки драйверов. Все счетчики, показанные на этой странице, связаны с флагом отслеживания пула проверяемого объекта. Большинство из них являются счетчиками для каждого драйвера, например текущими выделениями, текущими выделенными байтами и т. д. Чтобы просмотреть счетчики для конкретного драйвера, необходимо выбрать имя драйвера в верхней комбинации.
Параметры
Эту страницу можно использовать для создания и изменения параметров средства проверки драйверов. Параметры сохраняются в реестре, и необходимо перезапустить компьютер, чтобы параметры вступает в силу. Список можно использовать для просмотра установленных в настоящее время драйверов. Каждый драйвер может быть в одном из следующих состояний:
- Проверка включена: драйвер в настоящее время проверен.
- Проверка отключена: драйвер в настоящее время не проверен.
- Проверка включена (требуется перезагрузка): драйвер проверяется только после следующего перезапуска.
- Проверка отключена (требуется перезагрузка): драйвер в настоящее время проверен, но не проверен после следующего перезапуска.
Вы можете выбрать один или несколько драйверов из списка и переключить состояние с помощью двух кнопок в списке. Вы также можете щелкнуть правой кнопкой мыши имя драйвера, чтобы отобразить контекстное меню, которое позволяет выполнять переключение состояния.
В нижней части диалогового окна можно указать дополнительные драйверы (разделенные пробелами), которые необходимо проверить после следующего перезапуска. Обычно этот элемент управления редактированием используется, если требуется установить еще не загруженный драйвер.
Если группа переключателей в верхней части списка имеет значение «Проверить все драйверы «, список, кнопки «Проверить» и «Не проверять» и элемент управления «Изменить» недоступны. Это означает, что после следующего перезапуска проверяются все драйверы в системе.
Тип проверки можно задать с помощью флажков в правом верхнем углу диалогового окна. Вы можете включить проверку ввода-вывода на уровне 1 или 2. Проверка уровня 2 надежнее, чем уровень 1.
Сохраните изменения параметров, выбрав «Применить «. На этой странице есть еще две кнопки:
- Предпочтительные параметры: он выбирает некоторые часто используемые параметры (со всеми проверенными драйверами).
- Сброс всех: очищает все параметры средства проверки драйверов, чтобы драйверы не проверялись.
После выбора » Применить» необходимо перезапустить компьютер, чтобы изменения вступили в силу.
Переменные параметры
Эту страницу свойств можно использовать для немедленного изменения флагов средства проверки драйвера. Можно переключать только состояние некоторых флагов средства проверки драйверов. Вы не можете изменить список проверяемых драйверов. После изменения состояния некоторых флажков выберите «Применить «, чтобы изменения вступили в силу. Изменения вступает в силу немедленно. Они будут выполняться до тех пор, пока вы не внесите дополнительные изменения или пока не перезапустите компьютер.
Интерфейс командной строки
Вы также можете Verifier.exe из командной строки (для получения дополнительных сведений введитеverifier.exe /? в командной строке). В командной строке можно использовать несколько коммутаторов, например:
Verifier.exe /flags 0x209BB /driver MyDriver1.sys MyFilterDriver1.sys
В следующем списке показаны наиболее часто используемые флаги командной строки:
Настройка параметров (флагов)
verifier.
exe / flags
Значение — это шестнадцатеричное число (требуется префикс 0x ), представляющий общее значение флагов для включения. Значение каждого флага отображается в выходных данных
verifier /?
.Стандартные флаги:
0x00000000: автоматические проверки
0x00000001: специальный пул
0x00000002: принудительная проверка IRQL
0x00000008: отслеживание пула
0x00000010: проверка ввода-вывода
0x00000020: обнаружение взаимоблокировки
0x00000080: проверка DMA
0x00000100: проверки безопасности
0x00000800: прочие проверки
0x00020000: проверка соответствия DDIДополнительные флаги:
0x00000004: моделирование случайного низкого уровня ресурсов
0x00000040: расширенная проверка ввода-вывода (только Vista)
0x00000200: принудительное выполнение ожидающих запросов ввода-вывода
0x00000400: ведение журнала IRP
0x00002000: инвариантная проверка MDL для стека
0x00004000: инвариантная проверка MDL для driver0x00008000: нечеткость задержки Power FrameworkНапример, чтобы включить только специальные проверки пула, проверки ввода-вывода и прочие проверки:
verifier.
exe /flags 0x811
Чтобы включить все стандартные параметры (любой из примеров работает):
verifier.exe /standard
verifier.exe /flags 0x209BB
Настройка драйверов для проверки
verifier.exe /driver driver1.sys [driver2.sys driver3.sys ...]
Эта команда указывает конкретный драйвер или драйверы для проверки. Укажите дополнительные драйверы в списке с разделителями пробелами.
verifier.exe /all
Эта команда проверяет все драйверы в системе.
Настройка с использованием переменного режима
verifier.exe /volatile /flags *value /adddriver MyDriver1.sys*
Эта команда немедленно изменяет флаги средства проверки и добавляет MyDriver1.sys для проверки.
Запрос текущей статистики проверяемого
verifier /query
Создайте дамп текущего состояния и счетчиков средства проверки драйвера в стандартные выходные данные.
Запрос текущих параметров средства проверки
verifier /querysettings
Создайте дамп текущих параметров средства проверки драйвера в стандартные выходные данные.
Очистка параметров средства проверки
verifier.exe /reset
Эта команда удаляет все текущие параметры средства проверки драйвера.
В следующих разделах описываются дополнительные сведения о параметрах средства проверки драйверов, которые могут быть интересны разработчикам драйверов. Эти параметры обычно не требуются ИТ-специалистам.
Важно!
В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому следует в точности выполнять приведенные инструкции. Для дополнительной защиты создайте резервную копию реестра, прежде чем редактировать его. Так вы сможете восстановить реестр, если возникнет проблема. Для получения дополнительной информации о том, как создать резервную копию и восстановить реестр, см. статью Сведения о резервном копировании и восстановлении реестра Windows.
Чтобы включить проверку драйверов путем изменения реестра, выполните следующие действия.
Запустите редактор реестра (Regedt32).
Откройте следующий раздел реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\VerifyDrivers
Измените
REG_SZ
ключ.
Задайте REG_SZ
ключ для имен драйверов, которые необходимо протестировать без учета регистра. Можно указать несколько драйверов, но использовать только один драйвер. Таким образом вы можете убедиться, что доступные системные ресурсы не исчерпаны раньше времени. Преждевременная нехватка ресурсов не вызывает проблем с надежностью системы, но может привести к обходу некоторых проверок драйверов.
В следующем списке показаны примеры значений ключа REG_SZ
:
- Ntfs.sys
- Win32k.sys ftdisk.sys
- *.sys
Уровень проверки драйвера можно указать в следующем разделе реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\VerifyDriverLevel
Значение ключа — это DWORD, представляющий коллекцию всех включенных флагов.
Новые возможности средства проверки драйверов — Windows drivers
- Статья
- Чтение занимает 7 мин
средство проверки драйверов доступно во всех версиях Windows начиная с Windows 2000. каждая версия содержит новые функции и проверки на обнаружение ошибок в Windows драйверах. В этом разделе приводится сводка изменений и приводятся ссылки на соответствующие документы.
- Средство проверки драйверов в Windows 10
- Средство проверки драйверов в Windows 8.1
- Средство проверки драйверов в Windows 8
- средство проверки драйверов в Windows 7
- средство проверки драйверов в Windows Vista
- средство проверки драйверов в Windows XP
средство проверки драйверов в Windows 11 (
обновлено: 30 сентября 2021)начиная с Windows 11, многие флаги теперь включены без перезагрузки, используя другой синтаксис команды, чем временный синтаксис. Дополнительные сведения о новом синтаксисе см. в разделе синтаксис команды средства проверки драйверов .
средство проверки драйверов в Windows 10 (
обновлено: 8 мая, 2018)Важно!
сведения о включении вдф verifier для Windows 10, версии 1803 или более поздних выпусков см. в разделе использование средства проверки кмдф.
- Вы по-прежнему можете включить проверку ВДФ в составе флагов средства проверки
/standard
драйверов. Дополнительные сведения см. в разделе синтаксис команды средства проверки драйверов . - Это изменение повлияет на то, что вы включаете DV с синтаксисом
/flags 0x209BB
, так как проверка ВДФ больше не будет включена автоматически.
начиная с Windows 10, средство проверки драйверов включает новые правила проверки драйверов для следующих технологий:
- Новые правила для аудио драйверов
- Новые правила для драйверов австреам
средство проверки драйверов в Windows 8-1 (
обновлено: 17 июня 2013)начиная с Windows 8. 1, средство проверки драйверов предлагает четыре новых варианта обнаружения ошибок.
В параметре проверки NDIS/Wi-Fi применяется набор NDIS и правил беспроводной локальной сети, которые проверяют правильность взаимодействия между драйвером минипорта NDIS и ядром операционной системы.
Параметр имитации систематической нехватки ресурсов внедряет сбои ресурсов в драйверах режима ядра.
Параметр нечеткого выполнения синхронизации ядра позволяет заменять расписания потоков для обнаружения ошибок параллелизма в драйвере случайным.
Параметр проверки коммутатора виртуальной машины наблюдает за драйверами фильтра (расширенными расширениями коммутаторов), которые выполняются внутри расширяемого коммутатора Hyper-V.
Новое расширение отладчика: ! рулеинфо
средство проверки драйверов в Windows 8 (
обновлено: 20 октября 2012)начиная с Windows 8, средство проверки драйверов предоставляет пять новых параметров для обнаружения ошибок.
- Параметр » Задержка нечеткого режима» в Power Framework вставляет случайные задержки выполнения для обнаружения ошибок параллелизма в драйверах, использующих платформу управления питанием (пофкс). Задержки выполнения имеют ограничения верхнего времени. Этот параметр не рекомендуется использовать для драйверов, которые напрямую не используют платформу управления питанием (Пофкс).
- Параметр Проверка соответствия требованиям DDI применяет те же правила использования интерфейса драйвера устройства (DDI), что и средство проверки статических драйверов , чтобы убедиться, что драйвер выполняет вызовы функций на требуемом уровне IRQL для функции. Проверка соответствия требованиям DDI выполняется как часть стандартных параметров средства проверки драйверов.
- Параметр инвариантная проверка MDL для стека отслеживает, как драйвер обрабатывает инвариантные БУФЕРы MDL в стеке драйверов.
- Параметр инвариантная проверка MDL для драйвера отслеживает, как драйвер обрабатывает инвариантные буферы MDL на основе каждого драйвера.
- Параметр введения ошибок на основе стека внедряет ошибки выделения ресурсов в драйверах режима ядра.
при сборке, развертывании и тестировании драйвера с помощью Visual Studio 2012 и WDK для Windows 8 можно также настроить средство проверки драйверов для запуска на тестовом компьютере при развертывании драйвера для тестирования.
средство проверки драйверов в Windows 7 (
обновлено: 22 октября, 2012)для Windows 7 средство проверки драйверов усовершенствовано с помощью новых тестов и функций, позволяющих средствам проверки драйверов предоставлять больше классов типичных ошибок драйвера.
- Неверные ссылки на пользовательские дескрипторы из драйверов ядра
- Улучшения проверки ввода-вывода
- Улучшено моделирование особого пула, отслеживания пула и нехватки ресурсов
- Неправильное использование механизмов синхронизации
- Неверные ссылки на объекты
- Плата за квоты пула из подпрограммы DPC
- Блоки завершения работы системы или задержки
- Повышенная сила ожидания запросов ввода-вывода
в Windows 7 средство проверки драйверов предоставляет проверки на наличие ожидающих блокировок в очереди. эти проверки похожи на спине блокировки в более ранних версиях Windows. К этим проверкам относятся следующие:
Проверка того, что операция, которая должна поднять значение уровня запроса прерывания (IRQL), например кеаккуиреинстакккуеуедспинлокк, на самом деле не ПОНИЖАЕТ значение IRQL.
Проверка того, что операция, которая должна уменьшить значение IRQL, например керелеасеинстакккуеуедспинлокк, фактически не вызывает значение IRQL.
Усечение рабочего набора системных процессов, если включен параметр принудительной проверки IRQL , когда уровень irql создается DISPATCH_LEVEL или выше, при попытке предоставить доступ к доступным ссылкам на страничную память, пока драйвер выполняется с повышенными правами IRQL.
Прогнозирование возможных взаимоблокировок при включенном параметре обнаружения взаимоблокировки.
Попытка использовать одну и ту же структуру данных KSPIN_LOCK как спин-блокировки, а также как стек с спин-блокировками в очереди при включенном параметре обнаружения взаимоблокировки.
Проверка очевидно неверных значений указателя, таких как виртуальный адрес пользовательского режима, используемый в качестве адреса спин-блокировки.
Ведение журнала переходов IRQL в журнале проверки драйверов IRQL. эти сведения отображаются при использовании расширения. verifier 8 отладчиков Windows. См. раздел ! Verifier.
в Windows 7 средство проверки драйверов предоставляет следующие дополнительные сведения, которые полезны для отладки.
Существует журнал с трассировками стека в хронологическом порядке для последних вызовов кинтеркритикалрегион и келеавекритикалрегион из проверенных драйверов. содержимое журнала отображается с помощью расширения отладчика. verifier 0x200 отладчиков Windows. Эти сведения могут быть полезны для понимания сценариев, в которых поток неожиданно работает в критическом регионе или пытается оставить критическую область, которая уже остается.
Вы можете отобразить дополнительные сведения из журнала » принудительно ожидающие запросы ввода-вывода » с помощью расширения отладчика. Verifier 0x40 . в более ранних версиях Windows журнал содержал только одну трассировку стека для каждого IRP, который средство проверки драйверов вынуждено приложить. Это была трассировка стека с момента вызова иокомплетерекуест в первый раз для принудительно ожидающего запроса IRP. Windows 7 содержит по крайней мере две записи журнала (возможно, более двух) для каждого принудительно ожидающего запроса IRP:
- Трассировка стека на момент, когда средство проверки драйверов выбирает IRP для принудительного выполнения. Средство проверки драйверов выбирает некоторые запросы IRP, чтобы принудительно запрашивается, когда один из проверенных драйверов вызывает иокаллдривер.
- Трассировка стека для каждого вызова иокомплетерекуест для принудительно ожидающего запроса IRP перед завершением достигнет проверенного драйвера.
Для одного запроса IRP может существовать более одного вызова иокомплетерекуест , так как один из драйверов может временно остановить завершение из процедуры завершения, а затем возобновить его, вызвав иокомплетерекуест еще раз.
В журнале переходов IRQL имеется больше допустимых трассировок стека. Этот журнал отображается с помощью команды ! Verifier 8. в Windows версиях, предшествующих Windows 7, средство проверки драйверов может попытаться зарегистрировать некоторые из этих трассировок стека при повышенном уровне irql и не удалось записать трассировку стека из-за высокого значения IRQL. в Windows 7 средство проверки драйверов пытается записать эти трассировки стека:
- Например, перед созданием IRQL, если проверенный драйвер вызывает кеаккуиреспинлокк.
- После понижения уровня IRQL, когда проверенный драйвер вызывает керелеасеспинлокк.
Таким образом средство проверки драйверов может захватывать больше этих трассировок стека переходов IRQL.
! анализ может рассматривать проблемы, которые предоставляются расширенными проверками средства проверки ввода-вывода (которые входят в число средств проверки ввода-вывода в Windows 7). в предыдущих Windows версиях усовершенствованные отчеты об ошибках ввода-вывода состояли из описания дефекта драйвера, обнаруженного средством проверки драйверов, за которым следует переход в отладчик. Выполнение . анализ после такого перерыва не приводит к осмысленному рассмотрению многих из этих прерываний, так как ! анализ не может использовать информацию из текста описания ошибки, отображаемого в отладчике. в Windows 7 значимые сведения об этих дефектах драйвера сохраняются средством проверки драйверов в памяти. ! анализ может найти эти сведения и выполнить гораздо более осмысленное автоматическое рассмотрение для многих из этих перерывов.
средство проверки драйверов в Windows Vista (
обновлено: 9 февраля 2009)для Windows Vista средство проверки драйверов усовершенствовано с помощью новых тестов и функций.
- включение средства проверки драйверов и изменение Параметры без перезагрузки
- Улучшенная Эмуляция нехватки ресурсов
- Принудительно ожидающие запросы ввода-вывода
- Проверки безопасности
- Более тщательная проверка ввода-вывода
- Расширенная проверка IRQL
- Прочие проверки
- Отслеживание заблокированных страниц памяти
- Дополнительные автоматические проверки
средство проверки драйверов в Windows XP (
обновлено: 4 декабря 2001)средство проверки драйверов предназначено для мониторинга Windows драйверов и графических драйверов в режиме ядра. Корпорация Майкрософт настоятельно рекомендует производителям оборудования протестировать свои драйверы с помощью средства проверки драйверов, чтобы драйверы не вызывали недопустимые вызовы функций или привести к повреждению системы. усовершенствованы средства проверки драйверов и новые функции для Microsoft Windows XP.
Драйверы, отправляемые в WHQL для тестирования, должны пройти проверку драйверов. новые функции средства проверки драйверов в Windows XP включают:
- Диспетчер проверки драйверов, новый графический пользовательский интерфейс (GUI) для verifier.exe
- Новая автоматическая проверка для мониторинга переключения стека
- Новые параметры средства проверки драйверов для проверки DMA (также известны как проверка HAL), обнаружение взаимоблокировок и проверка SCSI
- Изменения проверки ввода-вывода, сочетающие тесты «уровень 1» и «уровень 2», необязательные Расширенные тесты ввода-вывода
- Новые расширения отладчика ! взаимоблокировка и ! DMA
- Новые проверки ошибок: 0xE6 (DRIVER_VERIFIER_DMA_VIOLATION) и 0xF1 (SCSI_VERIFIER_DETECTED_VIOLATION)
- Дополнительные подкоды для существующих кодов проверки ошибок 0xC4 и 0xC9
К функциям средства проверки драйверов также относятся:
Новые параметры командной строки средства проверки У служебной программы verifier.
exe есть новый параметр волатиледриверлист, который можно использовать с ключевым словом /адддривер для указания списка драйверов, добавляемых к временным параметрам. Волатиледриверлист можно использовать с ключевым словом /ремоведривер , чтобы указать список драйверов для удаления.
Новые расширения модуля проверки Новые модули. расширения Verifier отображают дополнительные сведения о журналах при мониторинге нехватки ресурсов или прерывании IRQL и спин блокировки. Также доступна справка в Интернете.
- Флаги , установленные с параметром 0x4, приводят к включению журнала ошибок, внедренных средством проверки драйверов при эмуляции нехватки ресурсов.
- Флаги , установленные с 0x8, приводят к включению журнала последних изменений IRQL, сделанных проверяемыми драйверами.
- Если Флаги равны 0x4 или 0x8, параметр Quantity указывает число записей или записей журнала, включаемых в отображение.
- Параметр ? отображает краткий текст справки
Справка в Интернете по справке диспетчера проверки драйверов для диспетчера проверки драйверов может отображаться одним из следующих способов.
- Выберите и удерживайте (или щелкните правой кнопкой мыши) элемент в окне диспетчера проверки драйверов и выберите пункт что это такое? во всплывающем меню.
- Щелкните вопросительный знак (?) в правом верхнем углу окна, а затем выберите элемент в окне диспетчера проверки драйверов.
3 способа проверить неисправные драйверы в Windows
Поврежденные драйверы являются источником ошибок и проблем на ваших компьютерах, особенно печально известного «синего экрана смерти» (BSoD). Каждое оборудование, установленное в вашей системе, нуждается в драйвере для правильной работы и выполнения соответствующих функций.
Плохие драйверы приводят к нестабильности и снижению производительности. Ошибки типа «синий экран» распространены, и они могут возникать из-за неисправных или устаревших драйверов.
В этой статье мы поможем вам проверить наличие плохих драйверов в вашей системе Windows, чтобы избежать скачков производительности и внезапных непредвиденных ошибок.
Утилита проверки драйверов Windows
Средство проверки драйверов Windows поможет вам проверить все драйверы устройств и сообщит вам о наличии плохих или поврежденных драйверов. Этот инструмент командной строки уже установлен в большинстве операционных систем Windows.
Одно из предостережений при использовании Driver Verifier заключается в том, что вы должны быть осторожны, так как эта утилита может заблокировать доступ к вашей системе. Поэтому перед использованием или запуском Driver Verifier обязательно создайте точку восстановления. Если случится что-то плохое, вы можете легко загрузиться в безопасном режиме и восстановить свою ОС.
Давайте начнем с проверки драйверов с помощью Driver Verifier:
Введите «Verifier» в поле «Выполнить команду» и нажмите Enter.
Открыть средство проверки драйверовВыберите «Создать пользовательские настройки (для разработчиков кода)» и нажмите «Далее».
Создать пользовательские настройкиУстановите все флажки, КРОМЕ «Случайное моделирование с низким уровнем ресурсов» и «Проверка соответствия DDI», затем нажмите «Далее».
Выберите тесты для выполненияВыберите «Автоматически выбирать все реки на этом компьютере» и нажмите «Готово».
Выбрать все драйверыТеперь вам будет предложено перезагрузить компьютер. Нажмите «ОК» и запустите компьютер вручную.
Перезагрузите компьютер
Теперь ваш компьютер перезагрузится. После перезапуска Driver Verifier будет работать в фоновом режиме. Эта фаза может занять некоторое время. Между тем, вы можете использовать свою систему в обычном режиме.
Если в драйверах обнаружены какие-либо ошибки, запишите ошибку и ее детали, так как она проверяется активированным вами средством проверки драйверов.
Затем вы можете продолжить обновление, откатить или переустановить драйвер.
Выход из Driver Verifier
В любом случае, если вы не хотите использовать Driver Verifier, вы должны деактивировать его вручную. Выполните следующие действия, чтобы деактивировать его:
Запустите этот командлет в командной строке с повышенными привилегиями:
verifier /bootmode resetonbootfail
Отключить проверку драйверовПерезагрузите компьютер.
Использование агента драйвера
DriverAgent — это сторонний инструмент, который может легко определить, какие драйверы вашей системы хорошие, а какие плохие. Для плохих драйверов, если доступно какое-либо обновление, вы можете легко обновить его с помощью самого инструмента Driver Agent. Примените шаги, указанные ниже, чтобы проверить неработающие драйверы системы:
Загрузите и установите агент драйвера.
Запустить утилиту агента драйвера.
Driver Agent теперь будет сканировать все драйверы на вашем ПК. Дождитесь завершения сканирования.
Нажмите кнопку «Обновить» рядом с неисправным драйвером, отмеченным красным крестиком.
Обновите плохой драйвер
Driver Agent представляет список вместе со статусом всех драйверов. Те, у кого зеленая галочка, — хорошие водители, а те, у кого красный крестик, — плохие.
Статусы драйверовПримечание редактора: Я удалил ссылку для загрузки, поскольку Google пометил ее как вредную. Вероятно, вам не следует использовать программное обеспечение, пока Google не очистит его.
Использовать Диспетчер устройств
Когда драйвер работает со сбоями или отсутствует, Диспетчер устройств Windows помечает его желтым восклицательным знаком. Вы можете определить плохой драйвер, используя только Диспетчер устройств. Вот как:
Откройте Диспетчер устройств, введя «devmgmt.msc» в поле «Выполнить команду».
Откройте диспетчер устройствНайдите драйвер с желтой челкой, как на картинке ниже. Это пометит плохой драйвер(ы).
Желтый значок в диспетчере устройств
Вы можете обновить драйвер, щелкнув его правой кнопкой мыши и выбрав «Обновить драйвер» в контекстном меню. Затем вы можете выбрать, установить ли его автоматически или выбрать предварительно загруженный драйвер с вашего ПК.
Заключительные слова
Если что-то не так с устройствами вашей системы и вы не можете получить точное решение, используйте любой из вышеперечисленных методов, так как есть вероятность, что драйверы системы неисправны или устарели.
Похожие сообщения:
Как сканировать поврежденные или устаревшие драйверы | Small Business
By Cee Jay
Повреждение драйвера является частой причиной появления ошибок синего экрана. Слишком старые драйверы также могут вызывать проблемы, обычно влияющие на совместимость или производительность. Обновляйте свою систему через Центр обновления Windows или загрузив ее вручную с сайта производителя. Если обновления недоступны, вы застряли с любыми драйверами, которые у вас есть, хотя переустановка их из диспетчера устройств должна помочь.
Запустите Центр обновления Windows, чтобы операционная система автоматически сканировала и обновляла ваши драйверы. «Необязательные обновления» перечислены ниже рекомендуемых, и здесь вы найдете драйверы. Нажмите рядом с каждым драйвером, чтобы выбрать его, и нажмите «ОК» для подтверждения. Либо запустите диспетчер устройств из меню «Пуск» и щелкните правой кнопкой мыши устаревший драйвер. Выберите «Обновить программное обеспечение драйвера».
Используйте Chkdsk для исправления ошибок в файловой системе. В Windows 7 графический пользовательский интерфейс называется «Проверка диска», его можно найти, щелкнув правой кнопкой мыши диск в «Моем компьютере» и выбрав «Свойства», «Инструменты».
Если вирус препятствует запуску средства проверки диска, перезагрузите компьютер и нажмите «F8», чтобы запустить «Безопасный режим с командной строкой». Введите «chkdsk / f» в окне команд и нажмите «Enter».
Переустановите текущие драйверы, чтобы заменить их чистыми копиями. Откройте Панель управления и нажмите «Оборудование и звук». Нажмите «Диспетчер устройств» и нажмите, чтобы развернуть проблемный драйвер. Щелкните по нему правой кнопкой мыши и выберите «Удалить». Подождите, пока Windows удалит файлы; затем щелкните меню «Действие» в верхней части экрана. Нажмите «Сканировать на наличие изменений оборудования», и Windows переустановит свежие копии драйверов.
Включите проверку драйверов, чтобы помочь вам выявить проблемные драйверы. Нажмите «Пуск» и введите «Выполнить» в поле поиска. Нажмите «Ввод» и введите «Verifier.exe». Выберите «Создать пользовательские настройки» и нажмите «Далее». Щелкните переключатель с надписью «Выбрать отдельные параметры из полного списка» и включите все параметры, кроме «Моделирование с низкими ресурсами».
Выберите параметр «Выбрать имена драйверов из списка» и нажмите «Поставщик», чтобы отсортировать результаты. Отметьте все драйверы сторонних производителей и нажмите «Готово».
Ссылки
- Windows: Обновите драйвер для оборудования, которое работает неправильно
- Symantec; Как использовать средство проверки драйверов; Июнь 2011 г.
- Университет Индианы: как получить обновление драйверов моего устройства?
Ресурсы
- Служба поддержки Майкрософт; Использование Driver Verifier для выявления проблем с драйверами Windows; Июнь 2011 г.
- Университет Индианы: что такое диспетчер устройств в Windows и как его использовать?
Советы
- Центр обновления Windows не всегда имеет обновленный драйвер для вашей системы. Проверьте страницу поддержки производителя для совместимых драйверов.
Биография писателя
Си Джей начала профессионально писать в 2009 году, ее работы публиковались на различных веб-сайтах.
Ваш комментарий будет первым