Москва: проверенные б/у ноутбуки с гарантией и проверкой перед оплатой
+7 906 722-94-45

Главная → Статьи → Синий экран CRITICAL_STRUCTURE_CORRUPTION (0x00000109) на ноутбуке: срабатывание PatchGuard, расшифровка параметра 4 и проверка ОЗУ

Синий экран CRITICAL_STRUCTURE_CORRUPTION (0x00000109) на ноутбуке: срабатывание PatchGuard, расшифровка параметра 4 и проверка ОЗУ

Синий экран CRITICAL_STRUCTURE_CORRUPTION (0x00000109) на ноутбуке: срабатывание PatchGuard, расшифровка параметра 4 и проверка ОЗУ

Синий экран CRITICAL_STRUCTURE_CORRUPTION (0x00000109) на ноутбуке: срабатывание PatchGuard, расшифровка параметра 4 и проверка ОЗУ

Стоп-код CRITICAL_STRUCTURE_CORRUPTION (0x00000109) принципиально отличается от обычных вылетов программ одной интригующей особенностью: он часто происходит спустя 5–15 минут после реального события, буквально «на ровном месте», когда вы просто читали почту! Объясняется это устройством встроенного сторожа целостности 64-разрядного ядра Windows — Kernel Patch Protection (PatchGuard). Чтобы злоумышленник не мог предсказать момент проверки, PatchGuard просыпается через случайные зашифрованные интервалы времени и пересчитывает контрольные суммы системных таблиц вызовов (SSDT), таблиц прерываний (IDT), модельных регистров процессора (MSR) и кода системных драйверов ntoskrnl.exe / tcpip.sys / ndis.sys. Если хотя бы один байт в этих эталонных областях оперативной памяти изменился — система мгновенно уходит в защитный синий экран 0x00000109!

Именно из-за отложенного случайного таймера проверки при чтении минидампа новички совершают классическую ошибку: в строке «вероятная причина» отладчик пишет случайный безвинный системный процесс, который просто выполнялся в ту миллисекунду, когда проснулся сторож PatchGuard! Чтобы найти настоящего виновника, нужно смотреть на четвёртый параметр ошибки (Parameter 4) и разделить ровно два класса причин: физический переворот бита в оперативной памяти / кэше процессора против агрессивного старого драйвера с перехватом ядра!

Таблица расшифровки четвёртого параметра (Arg4) в коде 0x00000109

Откройте карточку события BugCheck (Event ID 1001) в системном журнале Windows и посмотрите на четвёртое шестнадцатеричное число:

Четвёртый параметр (Arg4) Какой именно участок ядра был изменён Что это почти наверняка означает на ноутбуке
0x01 (Generic data region), 0x03 (Processor IDT), 0x04 (Processor GDT), 0x1A (случайно меняющиеся коды от падения к падению!) Случайные разные области кода и таблиц ядра в оперативной памяти! В 90 % случаев — аппаратный переворот бита (Single-Bit Flip) в планке оперативной памяти DDR4 / DDR5 или нестабильное напряжение ядра CPU! Вредоносный или кривой драйвер бьёт строго в одну и ту же функцию, а битая ячейка ОЗУ попадает каждый раз в разную системную библиотеку!
0x02 (Modification of a system service function routine — перехват системного вызова SSDT Hook!) Кто-то целенаправленно перезаписал пролог системной функции ядра (как делали во времена 32-битной Windows XP!) Несовместимый старый антивирус, древний античит игры, старый фаервол, пиратский «активатор-лоадер» или руткит!
0x05 (Type 1 process list corruption) или 0x07 (Critical MSR modification) Нарушение скрытого списка процессов либо прямая перезапись защищённого модельного регистра MSR процессора! Утилиты низкоуровневого разгона/андервольтинга старых версий, старые эмуляторы Android без поддержки современного гипервизора (см. также разбор ошибки гипервизора 0x00020001) либо чит/руткит!

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

Шаг 1. Сразу проверьте, меняются ли адрес и Arg4 в трёх последних минидампах!

Откройте 2–3 последних файла из C:\Windows\Minidump (или три последние записи Event ID 1001 в Просмотре событий):

  • если в понедельник PatchGuard нашёл повреждение в tcpip.sys, в среду — в ntfs.sys, а в пятницу — в ntoskrnl.exe (часто вперемешку с другими «памятевыми» кодами вроде повреждения базы страниц PFN_LIST_CORRUPT 0x0000004E или падением вкладок браузера STATUS_ACCESS_VIOLATION) — прекращайте искать «плохой драйвер сети»! У вас классический аппаратный переворот битов в оперативной памяти!

Шаг 2. Проведите глубокий прогретый тест ОЗУ и сбросьте андервольтинг!

Код ядра ntoskrnl.exe загружается в оперативную память ноутбука один раз при включении и лежит там сутками. Малейший перегрев модуля SO-DIMM в тесном отсеке или заниженное напряжение питания контроллера памяти переворачивает один бит с 0 на 1 — и ровно через десять минут PatchGuard видит несовпадение контрольной суммы!

  1. Войдите в BIOS Setup, сбросьте все настройки в заводские Setup Defaults (особенно если на ноутбуке настраивались ручные тайминги или смещения кривой напряжения Curve Optimizer / андервольтинг!) и обновите BIOS до свежей версии (подробнее о роли калибровки памяти на новых платформах см. статью про тренировку оперативной памяти DDR5).
  2. Запустите предзагрузочную UEFI-диагностику оперативной памяти минимум на 4 полных прохода: при малейшей ошибке протестируйте съёмные модули по одному по правилам проверки и замены оперативной памяти в ноутбуке.

Шаг 3. Если память на 100 % чиста, а Arg4 всегда одинаковый (0x02 / 0x07) — ревизия ядерных перехватчиков и включение HVCI!

Если многочасовой тест ОЗУ прошёл с нулём ошибок:

  1. Вспомните и полностью деинсталлируйте любые программы, ставящие неподходящие ядерные драйверы: старые сборки сторонних антивирусов/фаерволов пятилетней давности, старые твикеры регистров MSR, читы и сомнительные «кряки/активаторы» с торрентов (именно старые теневые загрузчики перехвата ядра чаще всего палятся защитой PatchGuard на Windows 11!).
  2. Проверьте систему полноценным автономным сканированием Microsoft Defender Offline (Безопасность Windows → Защита от вирусов и угроз → Параметры сканирования → Автономное сканирование Microsoft Defender): ноутбук перезагрузится в изолированную доверенную среду ДО старта самой Windows и вычистит любой загрузочный вредоносный драйвер!
  3. Включите аппаратную защиту Целостность памяти (HVCI) в разделе Изоляция ядра (если ползунок блокируется старым хвостом драйвера — уберите его по инструкции из статьи почему не включается целостность памяти HVCI!): когда активна HVCI, гипервизор вообще запрещает любому кривому старому драйверу переписывать исполняемые страницы ядра!
  4. Проверьте системные файлы командами DISM /Online /Cleanup-Image /RestoreHealth и sfc /scannow (строго после того, как вы убедились в исправности планок оперативной памяти!).

Стоп-линия

Если ноутбук с распаянной на материнской плате оперативной памятью или высокопроизводительным мобильным процессором с разблокированным теплопакетом продолжает падать на полностью чистой заводской установке Windows 11 без единой сторонней утилиты и со сброшенными в стандартные значения настройками прошивки, не пытайтесь маскировать сбой искусственным отключением вычислительных ядер через системную конфигурацию загрузки. В первую очередь установите актуальный выпуск прошивки материнской платы со свежим защитным микрокодом стабилизации напряжений буста от производителя ноутбука, а если произвольные остановки с меняющимися системными библиотеками сохраняются даже на рабочем столе в простое — зафиксируйте коды событий из системного журнала и передайте устройство на стендовую диагностику по правилам гарантии и сервиса, поскольку физическая деградация ячейки кэш-памяти кристалла или чипа распаянной памяти устраняется исключительно заменой узла.

Контрольный чек-лист

  • [ ] Сопоставлены 2–3 последних минидампа: точно разделены случайные сбои памяти (разные модули и Arg4) и программный перехват (один и тот же Arg4 = 0x02 / 0x07).
  • [ ] Сброшены все разгоны и андервольтинги, обновлён UEFI BIOS и проведён многопроходный тест оперативной памяти с нулём ошибок.
  • [ ] Выполнен прогон Автономного сканирования Microsoft Defender до загрузки ОС и удалены устаревшие сторонние ядерные фильтры.
  • [ ] Активирована защита ядра Целостность памяти (HVCI) и проверена целостность системных файлов командами DISM + sfc.

Частые вопросы

Можно ли отключить сам PatchGuard в Windows 11, чтобы он не ронял ноутбук в 0x00000109?

В обычном рабочем режиме с включённой безопасной загрузкой Secure Boot отключить PatchGuard нельзя (и крайне опасно!): он не создаёт проблему из воздуха, а спасает ваши рабочие файлы и банковские сессии в ту минуту, когда битая планка оперативной памяти или руткит уже пробили брешь прямо в сердце операционной системы!

Почему отладчик WinDbg написал Probably caused by: tcpip.sys — значит, у меня сломалась сетевая карта?

Почти наверняка нет! В дампе 0x00000109 строка tcpip.sys означает лишь то, что сторож PatchGuard обнаружил изменённый байт внутри памяти системного драйвера tcpip.sys — сам сетевой чип ни в чём не виноват, его память снаружи повредила либо сбойная планка ОЗУ, либо сторонний драйвер-перехватчик сетевого трафика!

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