Как BSOD go, PAGE FAULT IN NONPAGED AREA настолько близок к тому, что Windows приходит к выводу «недействительная ссылка на память». Чтобы действительно понять, что происходит, нужно понимать выгружаемую память, которая делит адресуемое пространство памяти на набор страниц памяти размером 4 КБ. ОС может адресовать очень большое количество страниц, при этом только некоторые из этих страниц будут фактически постоянно находиться в ОЗУ.
В большинстве случаев, когда программа или ОС ссылается на определенную страницу памяти, если она не находится в ОЗУ, диспетчер страниц выдает статус «сбой страницы» (страница отсутствует). В конечном итоге это означает, что запрошенная страница считывается из файла подкачки. Чтобы освободить место для чего-то нового, если потребуется место, старая страница памяти (та, к которой недавно не было доступа) будет заменена, чтобы освободить место для новой страницы, когда она будет заменена.
Определенные страницы, которые ОС часто использует, «заблокированы» в ОЗУ. То есть они не участвуют в подкачке памяти и всегда должны присутствовать и доступны по запросу. Windows называет это выделение памяти «невыгружаемым пулом», и оно отображается как таковое в диспетчере задач, как показано ниже.
Невыгружаемый пул на ПК с 32 ГБ физической памяти составляет всего 951 МБ. Windows выделяет только самый минимум для этой коллекции «заблокированных» страниц памяти. (Изображение предоставлено Tom’s Hardware)
ОШИБКА СТРАНИЦЫ В НЕЗАГРУЖЕННОЙ ОБЛАСТИ BSOD сигнализирует о состоянии, при котором ОС запросила заблокированную страницу и вместо этого получает ошибку страницы. Причина, по которой Microsoft обрабатывает это как код остановки и генерирует BSOD, заключается в том, что эта ошибка не должна возникать, и она напрямую влияет на операционную систему (только важные страницы памяти с высокими привилегиями выделяются в невыгружаемый пул).
Что вызывает СБОЙ СТРАНИЦЫ В ОБЛАСТИ НЕЗАРАБОТАННОЙ СТРАНИЦЫ?
Как описано в страница Microsoft Docs для PAGE FAULT IN НЕЗАГРУЖЕННАЯ ОБЛАСТЬ, этот конкретный код остановки может следовать после установки того, что он называет «неисправной системной службой или неисправным кодом драйвера». В целом системные службы предоставляются Microsoft как часть выпусков, обновлений или обновлений ОС. Если они виноваты, вы быстро это поймете, потому что Microsoft включит эту возможность в свои списки «Известных проблем» для подобных вещей. Точно так же будет много онлайн-трафика, чтобы сообщать, документировать и восклицать о таких проблемах.
Хотя плохие обновления Windows случаются время от времени, код PAGE FAULT IN NONPAGED AREA гораздо чаще возникает из-за неисправного драйвера. Чтобы узнать, вызвана ли проблема драйвером, обратите внимание на файл, указанный в BSOD (например, nvlddmkm.sys), и подумайте, обновляли ли вы недавно драйвер или устанавливали новое устройство.
Как сделать Устранение ошибки страницы в BSOD без страниц
Когда дело доходит до неисправных системных служб, лучшим подходом является удаление (или откат) обновления или обновления, вызвавшего проблему. Если он был получен в результате чистой установки Windows, пора сделать еще одну, используя вместо этого другую (заведомо исправную и работающую) версию ОС. См. Нашу статью о том, как выполнить 30-минутную восстановительную переустановку Windows .
Если проблема связана с драйвером, сначала проверьте веб-сайт производителя устройства, чтобы найти более новую версию драйвера. Если да, скачайте и установите его. Если нет, попробуйте вернуться к предыдущей версии. Чтобы откатить драйвер:
1. Запустите диспетчер устройств . Вы можете попасть туда из меню Windows + X.
(Изображение предоставлено Tom’s Hardware)
2. Щелкните правой кнопкой мыши соответствующее устройство и выберите свойства.
(Изображение предоставлено Tom’s Hardware)
3. Нажмите кнопку Откатить драйвер.
(Изображение предоставлено: Tom’s Hardware)
Однако , на многих устройствах кнопка «Откатить драйвер» не будет включена, и даже тогда она вернет вам только одну версию. В противном случае вам придется искать более старый драйвер через сайт производителя (или какой-либо авторитетный сторонний источник, например, отличный французский веб-сайт Station Drivers ).
Ищите проблемы с диском
Ошибки диска или конкретные проблемы с системными файлами также могут вызвать BSOD СТРАНИЦЫ В НЕЗАРАЖЕННОЙ ОБЛАСТИ. Чтобы исключить или исправить эти проблемы:
1. Откройте командную строку от имени администратора . Вы можете попасть туда, выполнив поиск по cmd, щелкнув правой кнопкой мыши и выбрав Запуск от имени администратора.
(Изображение предоставлено Tom’s Hardware)
2. Введите DISM/Online/Cleanup-image/Restorehealth, чтобы найти и заменить все поврежденные компоненты ОС.
(Изображение предоставлено Tom’s Hardware)
3. Введите SFC/scannow, чтобы проверить наличие поврежденных системных файлов.
(Изображение предоставлено Tom’s Hardware)
Эти не являются наиболее вероятной причиной сбоя страницы в BSOD невыгружаемой области, но это быстрые и простые шаги, которые вы можете предпринять, чтобы решить проблему.
Память может быть причиной PAGE FAULT IN NONPAGED AREA BSOD
Другие потенциальные причины PAGE FAULT IN NONPAGED AREA BSOD включают проблемы с памятью. Это может означать проблемы с ОЗУ, кешем L1 или L2 на самом чипе ЦП или даже с видеопамятью на видеокарте. Обнаружение таких проблем требует процесса устранения. Проверять оперативную память проще всего, а кеш-память процессора и видеопамять-сложнее.
Бесплатная утилита Memtest86 + с открытым исходным кодом-хороший инструмент для проверки оперативной памяти ПК. Я храню загрузочную версию MemTest86 + на моем ремонтном флэш-накопителе Ventoy (она называется mt531b.iso, чтобы отразить самую последнюю версию MemTest86 +). Для использования инструмента обычно требуется ночная пробежка, поэтому я загружаю образ MemTest непосредственно перед сном и позволяю ему работать всю ночь, чтобы я мог видеть, что он делает (и находит).
Малазийский регистратор Raymond.cc предлагает интересный список 6 бесплатных программ для проверки памяти видеокарты на наличие ошибок . Мне не известны какие-либо инструменты, которые проверяют кеш ЦП как таковые, хотя я нашел интересный элемент StackOverflow , который использует библиотеки DotNet, чтобы приблизиться к нему.
Если проблемы с памятью действительно присутствуют и ни один из других методов, которые я описал, не приводит к решениям, сохраните внимательно посмотрели на соответствующие коды останова. Они могут помочь вам более точно указать возможные причины и способы их устранения: