Как исправить BSEM MEMORY_MANAGEMENT и ATTEMPTED_WRITE_TO_READONLY_MEMORY в Windows 10

959
emzero

Таким образом, после 3 лет использования новой версии Windows 7 x64 я должен перейти на Windows 10 по причинам, связанным с работой.

Я загрузил последний образ сборки Windows 10 Pro (1803) от Microsoft и использовал Rufus 3.1 для создания загрузочного флеш-диска.

Я сделал новую установку на моем SSD (отформатировал его ранее) и после нескольких дней использования компьютера я начал получать случайные BSOD. Около 1 или 2 в день.

Ошибка BSOD: MEMORY_MANAGEMENT или ATTEMPTED_WRITE_TO_READONLY_MEMORY.

Вещи, которые я пробовал:

  • Запустите 2 этапа диагностики памяти Windows. Нет ошибок
  • Беги sfc /scannow. Нет ошибок
  • Обновлены драйверы графического процессора до последней версии (Nvidia Geforce GTX 970)
  • Обновлен BIOS до последней версии (с 0802 до 0803 на ASUS Z-97E)

Я мог иметь всего пару BSOD за 3 года Windows 7, так что я не думаю, что это проблема, связанная с оборудованием. BSOD начались сразу после новой установки Windows 10.

Как мне открыть MEMORY.DMP, сгенерированный Windows, и что я там смотрю, чтобы увидеть, что вызывает BSOD?

Что-нибудь еще я могу попробовать?

ОБНОВЛЕНИЕ Я открыл C: \ MEMORY.DMP с WinDbg x64, и вот результат: https://pastebin.com/B2pS9VZt

ОБНОВЛЕНИЕ 2 У меня только что был другой BSOD. На этот раз это было SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION.
Дамп здесь: https://pastebin.com/0hckXpqP

ОБНОВЛЕНИЕ 3 файла Minidumps

ОБНОВЛЕНИЕ 4
Я запускаю memtest всю ночь и у меня много ошибок. Я предполагаю, что у меня есть неисправная RAM. Мы уверены, что это неисправное ОЗУ? Это будет исправлено, как только я заменю это правильно? Нет способа узнать, какие палки / ы неисправны? Нужно удалить их и снова запустить memtest, чтобы узнать какой?
Вот результаты: http://ancient-name.surge.sh/

4
Случайные случайные сбои без видимой причины пахнут так, будто могут быть проблемы с оборудованием или вредоносное ПО. Вы можете открыть файл дампа с помощью [BlueScreenView] (http://www.nirsoft.net/utils/blue_screen_view.html) и аналогичных инструментов. Однако в качестве разработчика режима ядра вы бы использовали WinDbg прямо. Если предполагаемая причина (какой-либо драйвер или само ядро, указанное в дампе) меняется в зависимости от сбоев, вы, вероятно, имеете дело с одной из указанных выше причин. Да, и некоторые анти-вредоносные программы, которые еще не подготовлены к изменениям в ядре anti-Spectre / Meltdown, также могут быть причиной этого, я считаю. 0xC0000022L 5 лет назад 0
@ 0xC0000022L Я открыл дамп памяти с помощью WinDbg и добавил результаты в пастбине. Вы видите там что-нибудь полезное? emzero 5 лет назад 0
Сначала я бы попробовал запустить Verifier и посмотреть, что вы получите в дампе. Т.е. запустите verifyier.exe, нажмите Next (стандартные настройки в порядке), выберите в списке имена драйверов, выберите все драйверы, отличные от Microsoft, нажмите Finish и перезагрузите компьютер. В следующий раз, когда вы получите баг-чек, можете ли вы снова предоставить результаты `! Analysis -v`? HelpingHand 5 лет назад 0
@ HelpingH, и я относительно уверен, что большинство драйверов будут сертифицированы (а не только подписаны с аттестацией), поэтому они прошли HLK-тесты и т. Д., Большинство из которых основаны на том, что предоставляет Verifier. Я не уверен, но, вероятно, Verifier включен на рабах. Но это все же стоит попробовать, я думаю. Поскольку на данный момент существует множество возможностей. У меня было что-то похожее пять лет назад, которое можно отследить на моей видеокарте. Без моего опыта разработки KM, я думаю, мне пришлось бы доверять выводу команды HP, которая проверила ноутбук: «все хорошо». 0xC0000022L 5 лет назад 0
@HelpingHи я запустил verifyier.exe, выбрал все драйверы не Microsoft и перезагрузил компьютер. Я не уверен, что вы имеете в виду под bugcheck. Вы имеете в виду BSOD? Неужели так сложно узнать, какой драйвер / устройство вызвало BSOD? знак равно emzero 5 лет назад 0
@HelpingHи у меня только что был другой BSOD `MEMORY_MANAGEMENT`. Вот дамп, открытый с помощью WinDbg с опцией `! Analyse -v`: https://pastebin.com/jjNDKgCQ emzero 5 лет назад 0
@Moab Как я уже говорил, это была чистая установка с использованием последнего образа, загруженного с Microsoft. emzero 5 лет назад 0
Можете ли вы проверить, что все кабели затянуты (по какой-либо причине вы перенесли / должны были открыть компьютер после обновления?), Также убедитесь, что в BIOS установлена ​​правильная скорость ОЗУ. Вероятно, также стоит запустить https://www.memtest86.com/, даже если вы работали с MS. Боюсь, это все, что у меня есть, но стоит добавить результаты к вопросу. HelpingHand 5 лет назад 0
Я не проверял никаких аппаратных средств. С момента апгрейда не сдвинул и не открыл дело. Оперативная память установлена ​​на штатной скорости (у меня 4 стика, 2 - 1600, а остальные 2 - 1333. Они работали на 1333 годами без проблем). Сегодня вечером я подключу все, а также оставлю запускать memtest. emzero 5 лет назад 0
Публикация текстового вывода из windbg почти всегда почти бесполезна. Пожалуйста, заархивируйте свои мини-дампы, разместите zip-файл на файлообменном сайте, таком как dropbox, и разместите ссылку. Посмотрев их, мы можем попросить вас поделиться одним из больших файлов дампа. ps - _ «Неужели так сложно узнать, какой драйвер / устройство вызвало BSOD?» _ Очень часто да, это так сложно. Нет ничего необычного в том, чтобы тратить больше недели на анализ одной свалки. Но мини-дампы часто бывают тупиками - в них недостаточно памяти. Jamie Hanrahan 5 лет назад 1
@JamieHanrahan Я добавил ссылку на 3 мини-дампы, которые у меня есть. emzero 5 лет назад 0
Вы используете автоматический разгон Asus? У меня был очень похожий опыт перехода с Win7 на Win10 на материнской плате Asus M5A97 r2. В Win 7 работает отлично, но без изменений в BIOS после установки Windows 10 я бы получил случайный BSOD, указывающий на проблемы с памятью, по совету некоторых форумов (которых я сейчас не могу найти) я отключил автоматический разгон на BIOS Asus главная страница настройки и проблема ушла. acejavelin 5 лет назад 1
@acejavelin Я использую стандартный профиль по умолчанию в Asus UEFI. Я не думаю, что это что-то разгоняет. emzero 5 лет назад 1
Возможный дубликат [Определение плохой оперативной памяти с помощью Memtest86] (https://superuser.com/questions/598167/determining-bad-ram-with-memtest86) harrymc 5 лет назад 4

3 ответа на вопрос

10
bwDraco

Наиболее вероятная причина этого типа сбоя - дефектная память. Как предполагает harrymc, в первую очередь нужно запустить программу тестирования памяти, такую ​​как Windows Memory Diagnostic (входит в Windows), оригинальный MemTest86 (поддерживаемый PassMark Software) или Memtest86 + с открытым исходным кодом . (Я добавил этот раздел для других читателей, которые могут столкнуться с подобными проблемами, но не пробовали тестирование памяти.)


Автор вопроса может пропустить этот раздел. Это сохраняется для справки другими читателями.

Если тест памяти пройден, возможно, у вас неисправный процессор.

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

Другая возможность - неисправный кеш . Кэши - это небольшие объемы памяти внутри процессора, используемые для ускорения доступа к памяти. Хотя ваш процессор должен уметь обнаруживать ошибки кэша (и генерировать исключение проверки компьютера, когда это происходит, вызывая WHEA_UNCORRECTABLE_ERRORBSOD), данные в кэше не могут быть повреждены и вызвать повреждение памяти, если сам процессор не заметит. Это также не будет обнаружено программным обеспечением для тестирования памяти.

Чтобы проверить IMC, загрузите программу диагностики процессора Intel и запустите тест IMC. Чтобы проверить кэши процессора, загрузите Prime95 и запустите небольшой тест на пытки FFT (ваш процессор может сильно нагреваться или вентиляторы могут работать громко; это нормально). Если какой-либо тест не пройден, вам, вероятно, придется заменить процессор. (Я предполагаю, что процессор и память не разогнаны и не работают иным образом за пределами спецификаций.)


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

Ошибки возникают в одной конкретной области памяти, около 0x19BDD79F0, что ограничит проблему одним модулем. Адрес предполагает, но не подтверждает, что проблема в одном из модулей памяти Patriot.

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


Следует отметить, что Windows 10 использует более продвинутые методы управления памятью, включая сжатие виртуальной памяти, чтобы максимизировать производительность в системах с ограниченной памятью. Хотя ваша система имеет 16 ГБ памяти, Windows по-прежнему будет сжимать данные в памяти по умолчанию (мой рабочий стол имеет 32 ГБ и здесь ничем не отличается). Ошибки памяти легко обнаруживаются во время сжатия и распаковки данных и немедленно приводят к сбою операции, вызывая сбой системы. Ошибки памяти, влияющие на несжатое приложение или другие данные, могут «просто» привести к сбоям приложения или поврежденным файлам (хотя это все же может привести к сбоям ОС). По этой причине Windows 10 более чувствительна к ошибкам памяти, чем предыдущие версии Windows.

Благодарю. Я побегу за этими двумя и вернусь к тебе завтра. emzero 5 лет назад 0
Ну, смотрите мое последнее обновление. Я предполагаю, что у меня есть неисправная RAM. Но почему он работал нормально с Win7? emzero 5 лет назад 0
@emzero: обновил мой ответ. Короче говоря, Windows 10 имеет функцию сжатия памяти, которая делает его более чувствительным к ошибкам памяти, чем предыдущие версии Windows. bwDraco 5 лет назад 1
Игнорирование режима ядра / пользователя в течение минуты (даже если сжатие было полностью пользовательским режимом), сбой при распаковке все равно вызовет сбой (не существует безопасного способа восстановления ОС, кроме, возможно, уничтожения процесса - но есть известная неисправная память сейчас). Bob 5 лет назад 1
Сжатие памяти не имеет отношения к сбоям внутри ядра, что мы и видим здесь, поскольку сжатие выполняется в пользовательском режиме в соответствии с документацией, которую вы сами предоставили. harrymc 5 лет назад 0
@bwDraco Я удалил оба модуля Patriot, и Memtest86 прошел два раза с 0 ошибками. Также нет BSOD за 12 часов. Так что, я думаю, мы можем точно сказать, что хотя бы один из них неисправен. Я просто скину оба и получу 2 одинаковые модели Corsair, которые у меня уже есть. Спасибо, щедрость ваша =) emzero 5 лет назад 1
@emzero: Чтобы назначить награду, нажмите на синюю кнопку «+500» под элементами управления голосованием, чтобы получить ответ, за который вы хотите назначить награду. Я рад, что могу помочь :) bwDraco 5 лет назад 1
@bwDraco К сожалению, у меня только что был другой BSOD, этот временной код был `SYSTEM_THREAD_EXCEPTION_NOT_HANDLED`. Я не могу обновить свой вопрос, потому что он был заблокирован. Но вот что показывает BlueScreenView: https://i.imgur.com/tpAXJxi.png emzero 5 лет назад 0
@bwDraco А вот и вывод WinDbg: https://pastebin.com/462wTxLS .- Этот BSOD происходит через несколько минут после того, как я установил драйвер / программное обеспечение для моей мыши Logitech G203. Может ли это быть связано с этим? emzero 5 лет назад 0
@emzero: Это, вероятно, не связано с проблемами памяти. Он находится в `hidclass.sys`, который обрабатывает USB-устройства ввода, такие как клавиатуры и мыши, и, учитывая, что это произошло после установки драйвера мыши, можно с уверенностью сказать, что он не имеет ничего общего с памятью. Я бы по-прежнему предложил провести еще один тест памяти, но я сильно сомневаюсь, что это проблема на данный момент. bwDraco 5 лет назад 0
Хорошо, определенно что-то связано с этим, потому что я пытался открыть программное обеспечение Logitech и снова получил этот BSOD. Глупый Логитек. emzero 5 лет назад 0
@emzero Сброс всех настроек cmos / bios / uefi до заводских настроек по умолчанию, если вы можете и не сделали этого слишком. Pimp Juice IT 5 лет назад 0
3
harrymc

В мини-дампах я вижу, что у вас также было условие сбоя SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION. Я также отметил, что все ваши сбои происходят в ядре или внутри HAL, но не внутри какого-либо драйвера устройства, так что проблема не в конкретном неисправном устройстве.

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

Сначала посмотрите на Event Viewer, чтобы увидеть, содержит ли он какую-либо полезную информацию.

Тогда я предлагаю запустить MemTest86 :

MemTest86 - это оригинальное бесплатное программное обеспечение для тестирования памяти на компьютерах x86. MemTest86 загружается с флэш-накопителя USB или компакт-диска и проверяет оперативную память компьютера на наличие сбоев, используя серию комплексных алгоритмов и тестовых шаблонов.

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


Примечания о ваших результатах MemTest86 : У вас есть тысячи ошибок. Тесты адресации памяти пройдены, поэтому проблема не в контроллере памяти. Ошибки связаны с самой оперативной памятью, где сохраненные данные неверны при чтении. Это говорит о том, что, по крайней мере, одна из ваших флешек плоха, и проблема не в процессоре или материнской плате.

Что ты можешь сделать

Вы можете взять палочки и запустить MemTest86 на подмножестве. Ваша материнская плата - Asus Z97-E, которой нужны как минимум две флешки в DIMM_A1 и DIMM_B1. Следующая диаграмма со страницы 1-7 руководства :

образ

Вставка любых двух палочек одного и того же производителя и тестирование сузят поле до палочек Corsair или Patriot. Если вы знаете две палочки, из которых только одна (надеюсь) плохая, вы можете попробовать смешать палочки разных производителей. Их спецификации кажутся идентичными, так что это может сработать.

Также возможно, что для MemTest86 достаточно будет вставить только одну флешку в DIMM_A1. Диаграмма из руководства неясна и может указывать на то, что одна флешка может работать либо в DIMM_A1, либо в DIMM_B1. Даже если это не так, иногда не рекомендуемые конфигурации могут все еще работать, в зависимости от материнской платы.

3
pbies

По дампам ошибка исходит из двух источников: IRQ и инструкция int 3. IRQ означает, что какой-то драйвер был вызван прерыванием и он неисправен - это означает, что вам нужно проверить все драйверы, которые вы установили в этой системе, чтобы один из них был неисправен.

Int 3 - это прерывание отладчика, что означает, что есть некоторое программное обеспечение (также оно может быть драйвером), которое вызывает точку останова (int 3) там, где ее не должно быть. Это может произойти для отладочной версии программного обеспечения.

Чаще всего такие BSOD исходят из неправильно написанных драйверов, так что это источник, где я буду искать проблему. Удалите все драйверы (или заново установите операционную систему) и проверьте их один за другим. Между каждым драйвером увеличьте использование системы (например, сделайте 7-zip тест), и вы найдете неисправный.

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

Похожие вопросы