BSOD 0x00000050: PAGE_FAULT_IN_NONPAGED_AREA - Диагностика
Архитектура пулов памяти и симптомы сбоя
Синий экран BSOD 0x00000050 (PAGE_FAULT_IN_NONPAGED_AREA) означает, что системный процесс или драйвер попытался обратиться к адресу в памяти, которого не существует или доступ к которому запрещен. Это обращение произошло в "невыгружаемом пуле" (Non-Paged Pool) — критической области оперативной памяти ядра, которая НИКОГДА не сбрасывается в файл подкачки на диск. Ядро обязано найти данные в ОЗУ мгновенно. Не находя их, сервер падает в BSOD.
Анализ параметров (WinDbg)
| Параметр | Что он означает |
|---|---|
| Parameter 1 | Точный адрес в ОЗУ, к которому попытался обратиться сбойный драйвер (например, 0xFFFFD00020B10000). |
| Parameter 2 | Тип операции: 0 = чтение (Read), 1 = запись (Write). Полезно для разработчиков драйверов. |
| Parameter 3 | Адрес инструкции (строки кода) в самом драйвере, которая выполнила неверное обращение. |
Пошаговое дерево решений (WinDbg и Драйверы)
Сценарий 1: Локализация виновного драйвера (Антивирусы / Фильтры)
В 90% случаев виноват сторонний драйвер-фильтр, который "лезет" в чужую память (Memory Corruption).
- Откройте дамп памяти
C:\Windows\MEMORY.DMPв WinDbg. - Выполните команду
!analyze -v. - Ищите секцию MODULE_NAME или IMAGE_NAME.
- Если указан
klif.sys(Kaspersky),symantec.sys,volsnap.sys(VSS) илиntfs.sys— вы нашли виновника. - Решение: Загрузитесь в Безопасном режиме (Safe Mode) и удалите этот антивирус или обновите агент резервного копирования.
Сценарий 2: Физический брак оперативной памяти (RAM)
Если дамп каждый раз (при новых падениях) указывает на разные системные модули (ntoskrnl.exe, win32k.sys, tcpip.sys), значит программной вины нет. Проблема аппаратная.
- Один из чипов (DIMM) на материнской плате поврежден. Драйвер пишет данные в ОЗУ, битый транзистор искажает их, а при попытке чтения драйвер обращается к мусорному адресу и вызывает 0x50.
- Решение: Запустите тест
mdsched.exeили классический MemTest86+ на 24 часа. Изучите аппаратные логи (IPMI/iLO) на ошибки ECC. Замените память.
Сценарий 3: Сбой драйвера видеокарты на серверах RDS
На терминальных серверах (Remote Desktop Services) ошибка 0x50 часто вызвана утечкой невыгружаемого пула в драйверах проброса графики (RemoteFX) или виртуальных принтеров.
Типовые ошибки администраторов
- Попытка починить pagefile.sys: Само название ошибки (Non-Paged Area) кричит о том, что файл подкачки здесь ни при чем! Не тратьте время на отключение или пересоздание pagefile.sys, как это делают при ошибках >0x1A или 0x0A.
Конфликты драйверов ядра останавливают корпоративные сервисы и базы 1С. Делегируйте обслуживание серверов ИТ-профессионалам ITSTM: мы разберем дампы, устраним программные конфликты на уровне ядра и вернем сервер в строй без потерь.
Частые вопросы (FAQ)
Может ли поврежденный жесткий диск вызвать 0x50?
Крайне редко. Если повреждена таблица MFT на диске, системный драйвер ntfs.sys может прочитать 'мусор' с диска в память и попытаться его выполнить, что приведет к 0x50. Запустите chkdsk /f /r для исключения этого сценария.
Что делать, если WinDbg показывает виновником ntoskrnl.exe?
ntoskrnl.exe — это само ядро Windows. Оно 'убило' систему, потому что обнаружило критический сбой. Реальный виновник скрылся. Включите Driver Verifier (verifier.exe /standard /all), чтобы поймать плохого драйвера при следующей перезагрузке.
В чем отличие 0x50 от 0x0A (IRQL_NOT_LESS_OR_EQUAL)?
Они очень похожи. 0x0A возникает, когда драйвер обращается к памяти на слишком высоком уровне прерывания (IRQL). 0x50 возникает, когда сам адрес памяти является недействительным (Invalid Memory Address), независимо от уровня IRQL.
Может ли переразгон (Overclocking) памяти вызвать 0x50?
Да. Любое изменение таймингов (XMP) или вольтажа (VCCSA) на процессоре/ОЗУ приводит к рассинхронизации сигналов. Верните BIOS сервера (UEFI) к заводским настройкам (Load Optimized Defaults).
Поможет ли команда sfc /scannow?
Поможет, если системный драйвер (.sys) был физически поврежден на диске (например, в результате неудачного обновления Windows Update). sfc восстановит его эталонную копию из хранилища WinSxS.