- Как исправить ошибку WDF_Violation в Windows 10?
- Причины ошибки
- Отключение HpqKbFiltr.sys (для пользователей HP)
- Обновление драйверов
- Средство проверки драйверов
- Проверка системы на наличие вредоносных программ
- Отключение всех внешних устройств
- Синий экран смерти 0x0000010D
- 0x0000010D: WDF_VIOLATION
- Параметры WDF_VIOLATION:
- Решение
Как исправить ошибку WDF_Violation в Windows 10?
Ошибка WDF_Violation в Windows 10 во многих случаях возникает после подключения внешних устройств к компьютеру. Система реагирует синим экраном не дождавшись ответа в допустимом промежутке времени от клавиатуры или мыши после их подключении, при попытке синхронизации iOS-устройств с iTunes и прочее. Иногда из-за нее не удается загрузить систему, поскольку прерывает ее запуск до появления экрана блокировки. Узнаем подробнее, как ее исправить в Windows 10.
Причины ошибки
С ошибкой WDF_Violation можно столкнуться по следующим причинам:
- Повреждены системные файлы.
- Компьютер заражен вирусами или вредоносным ПО.
- Образование сбойных секторов на жестком диске.
- Неисправные или устаревшие драйвера.
- Повреждение разделов в системном реестре.
Отключение HpqKbFiltr.sys (для пользователей HP)
Как оказалось, причиной синего экрана является драйвер HpqKbFiltr.sys. Попробуйте его отключить.
Обычно после возникновения синего экрана WDF_Violation в ходе следующей загрузки должно отобразится окно аварийного восстановления системы. Нажмите на кнопку «Дополнительные параметры». Если нет, используйте загрузочный диск с Windows для загрузки в среду восстановления.
Перейдите в раздел: Поиск и устранение неполадок – Дополнительные параметры – Командная строка.
Введите команды, подтверждая каждую на Enter:
c:
cd Windows
cd system32
cd drivers
ren HpqKbFiltr.sys HpqKbFiltr.sys.old
После перезагрузки Windows ошибка с кодом WDF_Violation должна исчезнуть.
Обновление драйверов
В большинстве случаев причиной ошибки являются устаревшие или поврежденные драйверы. В первую очередь нужно обновить драйвера материнской платы и всех интегрированных на нее устройств, дискретной видеокарты, сетевой карты, Bluetooth и подключаемого по USB адаптера Wi-Fi (при наличии). По отзывам пользователей, последние два устройства чаще вызывают синий экран с кодом остановки WDF_Violation.
Существует два способа обновления: автоматически или вручную. При использовании автоматического режима требуется подключение к интернету для доступа Windows к своей базе данных. Если этот вариант не работает, нужно перейти на сайт изготовителя, загрузить программное обеспечение в доступное место и установить его оттуда. Посмотрите один из примеров обновления сетевой карты:
Откройте Диспетчер устройств командой devmgmt.msc из окна «Выполнить» (Win + R).
Разверните вкладку Сетевые адаптеры, щелкните правой кнопкой мыши на устройстве и выберите «Обновить».
В следующем окне система запросит, каким путем хотите это сделать. Выберите второй вариант (поиск драйверов на этом компьютере) и продолжайте.
Укажите папку (расположение) файла драйвера после нажатия на кнопку Обзор, в которую он был ранее загружен из сайта производителя. После следуйте инструкциям до завершения установки. Таким образом, нужно обновить все оборудование.
После перезагрузите ПК и проверьте, устранена ли проблема.
Средство проверки драйверов
Неправильное взаимодействие системы с аппаратными модулями может привести к синему экрану WDF_Violation. Поэтому для выявления несоответствий попробуйте использовать встроенный инструмент Майкрософт.
В поле системного поиска наберите «командная строка», при отображении результата щелкните на «Запуск от имени администратора».
В консоли выполните команду:
На первом экране выберите «Создать стандартные настройки» и продолжите.
В следующем отметьте опцию «Автоматически выбрать все драйверы, установленные на этом компьютере» и щелкните на «Готово». Теперь инструмент проверит Windows на наличие ошибок.
После завершения перезагрузите компьютер.
Если сканирование было прервано ошибкой WDF_Violation, перезагрузите компьютер в среду восстановления. Для этого включите компьютер и при появлении логотипа Windows отключите его нажатием на кнопку питания на системном блоке. Повторите так 3 раза, на следующий возникнет экран аварийного восстановления системы. Щелкните на Дополнительные параметры. Затем перейдите по пути: Поиск и устранение неисправностей – Дополнительные параметры и выберите Командную строку. Для отмены сканирования выполните команду verifier /bootmode resetonbootfail , затем закройте командную строку и щелкните на «Восстановление при загрузке»,
Проверка системы на наличие вредоносных программ
Иногда ошибку WDF_Violation могут вызвать вредоносные программы или вирусы. Они запускают специальные скрипты, работающие в фоновом режиме, которые могут извлекать данные или вносить изменения в настройки.
Если на компьютере отсутствует сторонний антивирус, выполните проверку систему Защитником Windows. В поле системного поиска введите «Брандмауэр Защитника Windows», при отображении искомого результата щелкните на «Открыть».
В открывшемся окне щелкните на «Проверить» и запустите «Полное сканирование».
После завершения перезагрузите систему. Выполните то действие, которое вызывало ошибку WDF_Violation.
Отключение всех внешних устройств
Пользователям удавалось устранить синий экран после отключения всех внешних устройств. Вполне возможно, что в одном из них время от времени происходит сбой, что приводит к ошибке WDF_Violation.
Выключите компьютер, отсоедините кабель питания, затем отключите все устройства (включая мышь). Если используете ноутбук, извлеките батарею. После нажмите и удерживайте кнопку питания в течение 5-10 секунд. Подождите 5 минут, прежде чем включить ПК.
Если синий экран не возникает, подключите устройства по одному, пока не обнаружите проблемное. После попробуйте обновить его драйвер, чтобы устранить проблему.
Синий экран смерти 0x0000010D
0x0000010D: WDF_VIOLATION
Синий экран смерти 0x0000010D указывает, что Kernel-Mode Driver Framework (KMDF) обнаружил, что Windows нашел ошибку в драйвере, основанном на framework.
Параметры WDF_VIOLATION:
1 параметр указывает код ошибки. 4 параметр зарезервирован.
1 параметр | 2 параметр | 3 параметр | Причина ошибки |
0x1 | Указатель на структуру WDF_POWER_ROUTINE_ TIMED_OUT_DATA | Зарезервированный параметр | Основанный на framework драйвер простаивал во время работы питания. |
0x2 | Зарезервированный параметр | Зарезервированный параметр | Была предпринята попытка на получение блокировки, которая уже имеется. |
0x3 | Описатель WDFREQUEST | Число ссылок, которые остаются в обоих буферах | Windows Driver Framework Verifier обнаружил фатальную ошибку. |
0x4 | Зарезервированный параметр | Адрес вызывающей стороны | Нулевой параметр был передан функции, которая требовала ненулевое значение. |
0x5 | Значение описателя | Зарезервированный параметр | Описатель объекта framework неправильного типа был передан к методу объекта framework. |
0x6 | см. таблицу ниже. | ||
0x7 | Описатель объекта framework | Зарезервированный параметр | Драйвер попытался неправильно удалить объект framework. Вызвав WdfObjectDereference, чтобы удалить описатель вместо того, чтобы вызвать WdfObjectDelete. |
0x8 | Описатель объекта транзакции DMA | Зарезервированный параметр | Выполнение операций на объекте транзакции DMA, который находится в некорректном состоянии. |
0x9 | В настоящее время не используется. | ||
0xA | Указатель на структуру WDF_QUEUE_FATAL_ERROR_DATA | Зарезервированный параметр | Фатальная ошибка произошла при обработке запроса, который находится в очереди. |
0xB | см. таблицу ниже. | ||
0xC | Описатель WDFDEVICE | Указатель на новый IRP PnP | Новый запрос на изменение состояния IRP PnP прибыл, в то время как драйвер обрабатывал другой запрос изменения состояния IRP PnP. |
0xD | Описатель WDFDEVICE | Указатель на питание IRP | Владелец политики управления питанием устройства получил питание IRP, которое не запрашивалось. |
0xE | IRQL, в котором вызвали функцию обратного вызова события | IRQL, в котором возвратили функцию обратного вызова события | Функция обратного вызова события не вернулась в том же IRQL, в котором ее вызвали. Функция обратного вызова изменила IRQL прямо или косвенно (например, получая спин-блокировку, которая повышает IRQL до DISPATCH_LEVEL, не выпуская спин-блокировку). |
0xF | Адрес функции обратного вызова события | Зарезервированный параметр | Функция обратного вызова события вошла в критическую область, и не освободила её перед возвратом. |
Если 1 параметр равен 0x6, то фатальная ошибка была сделана в описателе запроса WDF. В этом случае 2 параметр определяет тип фатальной ошибки.
2 параметр | 3 параметр | Причина ошибки |
0x1 | Адрес IRP | Cтек ввода-вывода не доступен для форматирования базового IRP. |
0x2 | Значение описателя запроса WDF | Предпринята попытка отформатировать объект запроса framework, который не содержит IRP. |
0x3 | Значение описателя запроса WDF | Драйвер попытался отправить запрос framework, который был уже отправлен к целевому ввода-вывода. |
0x4 | Указатель на структуру WDR_REQUEST_FATAL_ERROR_INFORMATION_LENGTH_MISMATCH_DATA, которая содержит указатель IRP, значение описателя запроса WDF, главная функция IRP и количество байтов, которые пытались записать | Драйвер завершил запрос framework, но записал больше байтов в буфер вывода, чем определено в IRP. |
Если 1 параметр равен 0xB, то попытка получить или выпустить блокировку недопустима. В этом случае 3 параметр определяет ошибку.
2 параметр | 3 параметр | Причина ошибки |
Значение описателя | 0x0 | Описатель передавался WdfObjectAcquireLock, или WdfObjectReleaseLock представляя объект, который не поддерживает блокировки. |
Описатель спин-блокировки WDF | 0x1 | Спин-блокировка выпускается потоком, который не получал ее. |
Решение
Во всех случаях синий экран смерти 0x0000010D вызывается сбойным драйвером. Если в сообщении ошибки отсутствует название драйвера, то его можно выявить с помощью дампа памяти. Подробнее об этом читайте в статье “Анализ дампа памяти”. После чего, в зависимости от ситуации, его необходимо обновить, откатить или удалить.
Для устранения ошибки воспользуйтесь статьей “Общие рекомендации по устранению BSoD”.
Буду признателен, если воспользуетесь кнопочками: