Ошибка загрузки драйвера bad tag length

Обновлено: 07.07.2024

Если ваш компьютер имеет 64-битную архитектуру и поддерживает технологии виртуализации Intel VT-X или AMD-v (поддерживаются большинством современных процессоров), то в Windows 10 вам доступны дополнительные функции безопасности на базе виртуализации.

Одна из таких функций называется “Изоляция ядра” (Core Isolation). Она использует аппаратную виртуализацию для изоляции критически важных частей ядра операционной системы от пользовательских драйверов и программного обеспечения, запущенного на компьютере. Изоляция ядра позволяет предотвратить доступ вредоносных программ и эксплойтов к защищенным зонам ядра и заблокировать попытки обхода контроля безопасности, инъекции вредоносных программ и другое потенциально опасное поведение.

Функция под названием “Целостность памяти” (Memory integrity) является подмножеством изоляции ядра. Она защищает от внедрения вредоносного кода в память при вредоносной атаке.

Целостность памяти — это функция Windows, которая гарантирует надежность кода, работающего в ядре Windows. Она использует аппаратную виртуализацию и Hyper-V для защиты процессов режима ядра Windows от инъекции и выполнения вредоносного или непроверенного кода. Целостность кода, который работает в Windows, проверяется с помощью целостности памяти, что позволяет Windows эффективно противостоять атакам вредоносных программ.

“Целостность памяти” могла блокировать драйверы

При включении Memory Integrity, функция блокирует компьютер и может вызывать проблемы с загрузкой или работой драйверов.

В новом документе поддержки Microsoft пояснила, что ошибки или обычно неопасные уязвимости драйверов могут приводить к тому, что “Целостность памяти” блокирует их загрузку.

В таких ситуациях Microsoft рекомендует проверить доступность обновленного драйвера, в котором уязвимость уже может быть исправлена.

Если данный вариант не сработал, то рекомендуется отключить функцию Memory Integrity, чтобы драйвер мог корректно загрузиться.

Для отключения “Целостности памяти”, выполните следующие шаги:

  • Перейдите в Параметры > Обновление и безопасность > Безопасность Windows > Безопасность устройства и в секции Изоляция ядра кликните ссылку Сведения об изоляции ядра

Изоляция ядра

В качестве альтернативы можно кликнуть по ссылке windowsdefender://coreisolation/ в Windows 10, чтобы открыть необходимую страницу.

  • Когда откроется страница Изоляция ядра, установите переключатель Целостность памяти в неактивное положение. Windows 10 запросит перезагрузку компьютера.
  • Выполните перезагрузку, и Целостность памяти будет отключена.

Целостность памяти

После этого, проверьте, остались ли проблемы с загрузкой драйверов. Если проблема сохранилась, то вам лучше получить помощь у производителя устройства и уточнить, когда станет доступен обновленный драйвер.

date

06.07.2019

directory

Windows Server 2008

comments

комментариев 10

В этой статье постараюсь описать методику диагностики проблем с неподписанными файлами драйверов в x64 битной версии Windows систем, из-за которых компьютер перестает загружаться и при загрузке падает в BSOD. Но систему все-таки можно загрузить, отключив проверку цифровой подписи при загрузке (F8 -> Disable Driver Signature Enforcement). В качестве примера в этой статье я буду работать с Windows Server 2008 R2 (которая, напомню, бывает только в 64-разрядной редакции), но данная методика подойдет так и для Windows 7 x64 и Vista x64.

Если вернуться к предыстории вопроса, то вспомним, что Microsoft приняла решение о том, что в 64-битных системах, начиная с Windows Vista, Windows загружает драйвера в режим ядра только в том случае, если драйвер имеет цифровую подпись. Если же цифровая подпись драйвера отсутствует, то при загрузке системы случается критическая ошибка (зависит от типа драйвера, загрузка которого заблокирована) и появляется экран BSOD. Конкретная ошибка и ее код зависят от конкретного драйвера, который заблокирован в процессе загрузки. Некоторые ошибок прямо на экране BSOD могут указывать на файл неподписанного драйвера.

В моем случае после обновления драйверов на сервере Windows 2008 r2 при обычной загрузки машины появился синий экран смерти с текстом:

STOP: c000021a (fatal System Error)

The initial session process or system process terminated unexpectedly with a status of 0x00000000 (0xc000428 0x00100448). The system has been shut down

BSOD : STOP: c000021a (fatal System Error)

Попробуем выяснить что это за ошибка, какой драйвер ее вызывает т определим по драйверу конкретное устройство.

Преобразуем hex код ошибки в более удобочитаемую форму. Для этого можно воспользоваться встроенной в Windows утилитой SLUI.EXE или же сопоставить код этой ошибки в файле ntstatus.h, найти который можно в Windows SDK. Воспользуемся первым способом, для чего в командной строке выполним:

Утилита slui.exe

Как вы видите на скриншоте, мы убедились в том, что BSOD вызвана невозможностью проверить цифровую подпись драйвера (“Windows cannot verify digital signature for this file”)

Перезагружаем наш компьютер и при загрузке жмем клавишу F8. В расширенном загрузочном меню (Advanced Boot Options) отключаем проверку цифровой подписи, выбрав Disable Driver Signature Enforcement .

Disable Driver Signature Enforcement

В том случае, если в таком режиме сервер загрузиться, мы точно уверены в том, что некий неподписанный модуль или драйвер не позволяет системе нормально загрузиться.

Следующий шаг – определение файла проблемного модуля или драйвера. Откроем консоль журнал событий (Event Viewer) и перейдем в раздел Applications and Services Logs -> Microsoft -> Windows -> CodeIntegrity -> Operational.

Примечание: если при доступе к логам в этой ветке появляется ошибка “access denied”, создайте на диске c: каталог, предоставив группе Everyone полный доступ. Затем измените путь к файлу ETL на новый каталог, и отключите и заново включите логирование.

Журнал CodeIntegrity

В моем случае, в журнале есть событие EventID 3001 с текстом «Code Integrity determined an unsigned kernel module \Device\HarddiskVolume1\Windows\System32\win32k.sys is loaded into the system. Check with the publisher to see if a signed version of the kernel module is available». Вот мы и нашли проблемный драйвер!

Проверку наличия цифровой подписи выполним командой:

Проверка цифровой подписи sigcheck.exe

Если подпись отсутствует, то в поле Verified будет указано Unsigned (в противном случае, соответственно Signed).

Перед нами есть два варианта решения проблемы невозможности нормальной загруки системы с неподписанным драйвером:

  1. Найти подписанную версию драйвера
  2. Отказаться от использования данного драйвера (и устройства)
  3. отключить проверку цифровой подписи драйвера в Windows

Третий вариант может не подойти по тем или иным причинам. В первых двух случаях нам нужно определить к какому конкретному устройству относится данный файл драйвера .sys.

Как же определить устройство, зная лишь имя sys-файла? Я использую следующую методику (пусть нам нужно определить устройство, драйвер которого имеет имя HpCISSs2.sys):

1) Открываем редактор реестра и поиском по ветке HKEY_LOAL_MACHINE\SYSTEM\ControlSet001 ищем ключ со значением HpCISSs2.sys

Определеяем драйвер по sys файлу

2) В моем случае он нашелся в ветке HKEY_LOAL_MACHINE\SYSTEM\ControlSet001\services\HpCISSs2

Определеяем код устройства по файлу драйвера

3) Разворачиваем вложенную ветку с названием ENUM, нас интересует значение ключа 0, в моем случае это PCI\VEN_103C&DEV_3230&SUBSYS_3235103C&REV_01\4&3b416f2c&0&0018

4) Определяем, что производитель устройства имеет ID 103C, а код устройства 3230

Определяем устройство по коду устройства

5) Далее на сайте указываем в полях Vendor Search и Device Search найденные нами коды.

Определяем устройство по коду

6) Получаем что искомое нами устройство контроллер жестких дисков HP Smart Array P400 Controller.

Нам осталось лишь найти новую версию драйвера на сайте производителя оборудования (внимательно смотрите для каких версий ОС подходит нужный вам драйвер) и обновить драйвер на компьютере.

Windows не может загрузить драйвер устройства для этого оборудования

Быстрая навигация:

Вас беспокоит код ошибки USB в Windows 10 38

Проверьте состояние устройства, если что-то пойдет не так

Когда вы подключаете внешний диск, например внешний жесткий диск, USB-накопитель, карту памяти, SD-карту и т. Д., К вашему компьютеру, устройство будет проталкивать драйвер через порт USB, или вы можете выбрать установку драйвера устройства вручную через внешний Средняя.

После успешной установки и загрузки драйвера устройства соединение между вашим ПК и внешним диском устанавливается, и вы можете использовать устройство в обычном режиме.

Это устройство работает правильно

Код ошибки диспетчера устройств 38 возникает в Windows 10

Однако, если есть проблема, вы можете найти код ошибки в разделе Состояние устройства в Диспетчере устройств Windows.

В качестве примера возьмем следующий код диспетчера устройств 38. Вы можете видеть, что в статусе устройства отображается информация об этой ошибке:

Windows не может загрузить драйвер устройства для этого оборудования, поскольку предыдущий экземпляр драйвера устройства все еще находится в памяти. (Код 38)

Не удалось загрузить драйвер, поскольку в памяти все еще находится предыдущая версия драйвера.

Код ошибки USB в Windows 10 38

Основные причины появления кода ошибки 38 Windows 10

Чтобы помочь вам лучше понять, что Windows не может загрузить драйвер устройства для этой ошибки аппаратного кода 38, мы суммируем некоторые основные причины следующим образом:

  • Жесткий диск отключается, когда компьютер бездействует.
  • USB-накопитель неисправен.
  • Драйвер USB-контроллера установлен неправильно.
  • Драйвер USB-контроллера поврежден.
  • Драйвер USB-контроллера устарел.
  • Драйвер USB-контроллера мешает работе некоторых сторонних программ и служб.
  • И больше….

Это может привести к тому, что Windows не сможет загрузить драйвер устройства для этого аппаратного кода 38. Сосредоточившись на них, мы предлагаем вам некоторые решения. Если вы не уверены, что является настоящей причиной ошибки, вы можете попробовать эти методы один за другим, пока не найдете подходящий.

  1. Убедитесь, что жесткий диск никогда не выключается
  2. Переустановите устройство в диспетчере устройств
  3. Обновите драйвер для устройства
  4. Запустите средство устранения неполадок оборудования и устройств
  5. Выполните чистую загрузку

Решение 1. Убедитесь, что жесткий диск никогда не выключается

Возможно, вы не знаете, что жесткий диск вашего компьютера по умолчанию отключен через определенный период времени. Если проблема с кодом ошибки 38 в диспетчере устройств Windows 10 возникает с внешним жестким диском, вы можете проверить и изменить настройки в Power Option, чтобы убедиться, что жесткий диск никогда не выключается.

Вот руководство о том, как выполнить эту работу:

1. Щелкните поле поиска Windows и введите Панель управления .

2. Выберите Панель управления из результатов поиска, чтобы открыть его.

3. Щелкните Варианты питания .

нажмите Изменить дополнительные параметры питания

4. Щелкните значок Изменить настройки плана ссылка рядом с Сбалансированный (рекомендуется) в Предпочтительный план раздел.

5. Щелкните Изменить дополнительные параметры питания .

типа никогда

6. Тип никогда в Настройка (минуты) коробка для Выключите жесткий диск после в Жесткий диск раздел.

выберите Удалить устройство

7. Щелкните Применять .

8. Щелкните Хорошо чтобы сохранить изменение.

Если вы используете ноутбук, вам все равно нужно использовать эти шаги, чтобы изменить настройки для всех активных планов батареи.

Однако, если этот метод не работает для вас, ошибка кода диспетчера устройств 38 не должна быть вызвана бездействующим компьютером. Вы можете попробовать следующее решение, чтобы увидеть, можно ли решить проблему.

Решение 2. Переустановите устройство в диспетчере устройств.

Возможно, проблема с кодом 38 Windows 10 - это временная проблема. Вы можете переустановить устройство в диспетчере устройств, чтобы попробовать.

2. Развернуть Контроллеры универсальной последовательной шины и щелкните правой кнопкой мыши целевой контроллер.

3. Выберите Удалить устройство во всплывающем меню.

нажмите Удалить

4. Щелкните Удалить из всплывающего окна. Процесс удаления начнется и быстро завершится.

нажмите Обновить драйвер

5. Перезагрузите компьютер и Windows начнет автоматически переустанавливать устройство.

Решение 3. Обновите драйвер для устройства

Чтобы исключить проблему с драйвером устройства, вы можете обновить драйвер устройства, чтобы попробовать. Этот способ очень простой. Вы можете просто выполнить задание в диспетчере устройств.

1. Откройте диспетчер устройств.

2. Найдите целевой контроллер в Контроллеры универсальной последовательной шины и щелкните его правой кнопкой мыши.

3. Выберите Обновить драйвер во всплывающем меню.

нажмите Автоматический поиск обновленного программного обеспечения драйвера

4. Щелкните Автоматический поиск обновленного программного обеспечения драйвера . Затем диспетчер устройств начнет поиск доступных в Интернете драйверов.

откройте средство устранения неполадок оборудования и устройств

5. Выберите драйвер устройства для установки.

Хотя, если Windows не может найти драйвер, вы можете перейти на официальный веб-сайт производителя устройства, чтобы загрузить последнюю версию драйвера и затем установить ее на свой компьютер с Windows 10.

Совет: если вы хотите обновить все драйверы устройств на вашем компьютере с Windows, вы можете обратиться к этому предыдущему посту, чтобы выполнить эту работу: Как обновить драйверы устройств Windows 10 (2 способа) .

Решение 4. Запустите средство устранения неполадок оборудования и устройств

Windows не может загрузить драйвер устройства для этого аппаратного кода. Ошибка 38 также может быть вызвана самим внешним диском. Вы можете использовать оснастку Windows Средство устранения неполадок оборудования и устройств сделать чек.

Вам не разрешено входить в Средство устранения неполадок оборудования и устройств в диспетчере устройств. Вам нужно открыть его через командную строку.

  1. Запустите командную строку от имени администратора .
  2. Тип exe -id DeviceDiagnostic в командной строке, чтобы открыть Средство устранения неполадок оборудования и устройств .
  3. Нажмите следующий чтобы начать процесс устранения неполадок.


Решение 5. Выполните чистую загрузку

Чистая загрузка позволяет вашей Windows загружаться с минимальным набором драйверов и программ запуска. Вы можете включить другие программы и службы одну за другой и проверить, исчезла ли проблема с кодом 38 Windows 10. Это хороший способ узнать, какие программы и службы конфликтуют.

В этом посте показано, как выполнить чистую загрузку в Windows 10: Как очистить загрузку Windows 10 и зачем это нужно?

Обновления Windows 10 зачастую вызывали много проблем у многих пользователей и с каждым новым накопительным обновлением их становится всё больше и больше. Например, могут возникнуть проблемы с драйверами, которые ранее никак себя не проявляли, а устройства, для которых эти драйверы предназначены, работали вполне себе штатно.

реклама


Если на Вашем устройстве с операционной системой Windows 10 возникает ошибка "драйвер не может быть загружен на этом устройстве", Microsoft утверждает, что это означает следующее: настройка целостности памяти в Windows Security предотвращает загрузку драйвера на вашем устройстве.

Корпорация Майкрософт обновила документ поддержки, предупреждая пользователей о том, что "если Вы решите продолжить использование устройства без решения проблемы драйвера, Вы можете обнаружить, что функциональность, которую поддерживает драйвер, больше не работает, что может иметь последствия от незначительных до серьезных".

Как быть в данной ситуации? Как решить проблему с драйверами в Windows 10?

1) Перейдите в меню Пуск > Настройки > Обновление и безопасность

2) Затем выберите Безопасность Windows > Безопасность устройства


3) В разделе "Изоляция ядра" выберите "Сведения об изоляции ядра"

4) Отключите настройку целостности памяти, если она еще не включена


5) Перезагрузите компьютер для вступления измененных параметров в силу

Несовместимые драйверы оказались своего рода проклятием для Windows 10, но похоже что компания, по крайней мере, наконец-то начала признавать эти проблемы и предлагать обходные пути вместо того, чтобы оставлять пользователей в поисках решений.

Читайте также: