Блог

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

Предыстория вопроса

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

Пример ошибки, с которой можно столкнуться:

STOP: c000021a (Fatal System Error)
The initial session process or system process terminated unexpectedly with a status of 0x00000000 (0xc000428 0x00100448).

Ошибка 0xc000428 указывает на то, что Windows не может проверить цифровую подпись драйвера.

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

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

Шаг 1: Отключение проверки цифровой подписи

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

1. Перезагрузите компьютер.

2. Нажмите клавишу F8 при загрузке и выберите пункт Disable Driver Signature Enforcement в меню Advanced Boot Options.

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

Шаг 2: Определение проблемного драйвера

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

1. Откройте Event Viewer и перейдите в раздел Applications and Services Logs > Microsoft > Windows > CodeIntegrity > Operational.

2. Найдите событие с EventID 3001, в котором будет указано, какой именно драйвер не прошел проверку цифровой подписи.

Пример сообщения:

Code Integrity determined that an unsigned kernel module \Device\HarddiskVolume1\Windows\System32\win32k.sys is loaded into the system.

Шаг 3: Проверка подписи драйвера с помощью Sigcheck

Чтобы убедиться, что указанный драйвер действительно не имеет цифровой подписи, используем утилиту sigcheck.exe от Sysinternals:

1. Загрузите sigcheck.exe с сайта Microsoft.

2. Выполните команду:

sigcheck.exe -i c:\Windows\System32\win32k.sys

Если драйвер не подписан, в поле Verified будет указано Unsigned.

Шаг 4: Решение проблемы

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

1. Найти подписанную версию драйвера.

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

2. Отказаться от использования драйвера.

— Если устройство не критично для работы системы, можно отключить его или удалить драйвер.

Шаг 5: Определение устройства по драйверу

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

1. Откройте regedit и найдите значение драйвера по пути HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services.

2. В разделе ENUM будет указан код устройства (например, PCI\VEN_103C&DEV_3230).

3. Используя код VEN (производитель) и DEV (устройство), можно определить точное оборудование.

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

5. Далее на сайте devicehunt.com, (либо на любом похожем сайте по поиску устройств по ИД) указываем в полях Vendor Search и Device Search найденные нами коды.

6. Пролистываем вниз и ищем устройство PCI 103C с кодом 3230 и получаем контроллер жестких дисков HP Smart Array Controller.

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

Заключение

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

banner for Windows
Купить ключ активации Windows от
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии