STOP 0x000000F4 | Блог по Windows

STOP 0x000000F4 | Блог по Windows Техника

Exceptioncode: c0000006

Если поле ExceptionCode содержит значение c0000006 (In-page I/O error), а второй параметр Parameter[2]: c000009a (Insufficient system resources exist to complete the API), то полное описание ошибки выглядит следующим образом:

«Inpage operation failed at , due to I/O error c000009a», что переводится как «Ошибка страничной операции (ошибка подкачки страницы) в следствии ошибки ввода-вывода с кодом c000009a». Так же, статус завершения может содержаться в поле с именем ERROR_CODE, а полная комбинированный код ошибки в поле EXCEPTION_STR.

Статус c000009a, в свою очередь, указывает на недостаток системных ресурсов для завершения вызова API, а недостаток ресурсов, чаще всего, является следствием исчерпания памяти. Из всего этого следует, что мы имеем дело с утечкой памяти в одном из сторонних модулей режима ядра, которая привела к исчерпанию системных ресурсов (в данном случае памяти), а это, в свою очередь, вызвало ошибку ввода-вывода при подкачке страницы, поскольку некуда была эту страницу подгрузить.

Утечка памяти (memory leak) — процесс неконтролируемого уменьшения объёма свободной (оперативной/виртуальной) памяти системы, связанный с ошибками в коде выполняющихся в данный момент программ, вовремя не освобождающих ненужные уже участки памяти, или с ошибками системных служб контроля памяти.

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

К сожалению, так случается не всегда. А иногда бывает, что ошибка в коде приводит к тому, что память вовремя не освобождается, а только постоянно резервируется. Естественно, что утечка происходит не в самих системных процессах (csrss.exe, smss.exe и прочих), которые могут фигурировать в качестве «упавшего» объекта, а где то еще, в каких-то сторонних модулях, работающих в ядре, скорее всего сторонних драйверах.

обратите внимание, что в выводе отладчика я выделил поля с именами NonPagedPool Usage, NonPagedPool Max. Они относятся к такому важному системному ресурсу, как невыгружаемый и выгружаемый пулы.

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

Сразу отмечу, что выгружаемые пулы обычно не являются причиной аварийных ситуаций из-за утечек памяти, поскольку они могут быть выгружены на диск, в файл подкачки. Стоит обращать своё внимание именно на невыгружаемые пулы. В случае, когда значения невыгружаемых пулов NonPagedPool Usage ~= NonPagedPool Max, можно сделать вывод об наличии факта исчерпания пулов.

В дополнение, в выводе могут встретиться такие строки как Excessive NonPaged Pool Usage и ???? pool allocations have failed, которые так же являются характерными признаками исчерпания пулов. Теперь мы можем вывести список всех процессов, использующих невыгружаемые пулы:

!poolused 7

Расширение !poolused даёт сводку по использованию памяти, на основании тэгов, применяемых для каждого пула, то есть показывает использование памяти для каждого тэга. Сам тэг характеризует конкретный модуль в ядре. Таким образом, !poolused собирает данные из механизма маркируемых пулов (pool tagging, группируемые по тэгу пулы), которая постоянно включена в ядре только в версиях Windows 2003 и старше. В расширении используются флаги, которые регламентируют количество выводимых данных и метод сортировки:

  • Bit 0 (0x1) — Включает детализированный вывод;
  • Bit 1 (0x2) — Сортирует вывод по количеству невыгружаемой памяти;
  • Bit 2 (0x4) — Сортирует вывод по количеству выгружаемой памяти;
  • Bit 3 (0x8) — Отображает вместо стандартных пулов пулы сессии;

Флаг 2 команды используется для вывода объема использования невыгружаемых пулов, 4 показало бы выгружаемые пулы.

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

Дополнительно:  RootCloak APK untuk Android Gratis Unduh

Если в столбце Tag присутствует значение Irp, то имеются в виду IRP-пакеты (I/O request packet, пакеты запроса ввода-вывода), которые используются для обмена данными с драйверами. Поэтому, мы можем обратить своё внимание на пакеты драйверов (IRP), поскольку они могут дать нам подсказку по функциям, интенсивно использующим память. Для этого используем команду !irpfind отладчика:

Время выполнения команды !irpfind может быть ЧУДОВИЩНО БОЛЬШИМ! У меня последний раз при дампе размером в 4 гигабайта, операция выполнялась в течении нескольких часов.

Список, традиционно, не маленький, и я привел лишь небольшую его часть. По команде !pool (адрес из первой колонки) можно получить данные о принадлежности к выгружаемому или невыгружаемому пулу памяти:

По команде !irp (адрес из первой колонки) можно получить информацию о принадлежности пакета к определенному устройству:

Как мы можем видеть, в последних строках есть ссылка на драйвер устройства, которому предназначался IRP пакет: DriverAFD. У нас имя драйвера устройства было сразу видно в выводе команды !irpfind, приведенном выше, однако если Вам по каким-либо причинам необходимо узнать имя драйвера, то можно выполнить команду !devstack <Device> (адрес из колонки Device), которая получает информацию об устройстве, получившем IRP пакет:

При обнаружении стороннего драйвера, информацию по нему можно посмотреть командной

lmvm

Стоит обращать внимание на время создания стороннего драйвера, поскольку некоторые проблемы могут вызывать драйвера, выпущенные довольно давно и плохо работающие в среде актуальной операционной системы.

Как отладить дамп памяти

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

УСТРАНЕНИЕ НЕИСПРАВНОСТЕЙ В WINDOWS ОШИБКИ/BSOD.

1] Прежде всего, посмотрите, может ли Восстановление системы или Последняя удачная конфигурация решить эту проблему.

2] В противном случае запустите антивирусную и антишпионскую программу, а также утилиту очистки ПК от нежелательной почты и реестра. После этого запустите утилиту проверки дисков Windows.

3] Затем попытайтесь определить, были ли внесены какие-либо изменения в программное или аппаратное обеспечение.

4] В большинстве случаев программное обеспечение является жертвой, а не причиной BSOD. Так что не исключайте проблем с оборудованием. Это могут быть поврежденные жесткие диски, неисправная физическая оперативная память, перегретые микросхемы процессора или что-либо еще!

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

6] Проверьте свою память. Используйте средство диагностики памяти Windows. Перейдите в панель управления и введите «память» в поле поиска. В разделе «Администрирование» нажмите «Диагностировать проблемы с памятью». В средстве диагностики памяти Windows, показанном здесь, выберите один из вариантов.

7] Тщательно проверьте BIOS вашей системы. Доступно ли обновление от производителя системы или материнской платы? Внимательно проверьте документацию по BIOS; Сброс всех параметров BIOS до значений по умолчанию иногда может решить проблему, вызванную перестройкой.

Дополнительно:  Asus ноутбук не видит вай фай - Вэб-шпаргалка для интернет предпринимателей!

8] Проверьте, не хватает ли вам системных ресурсов? Иногда критическая нехватка дискового пространства или оперативной памяти может вызвать BSOD.

9] Проверить, не поврежден ли системный файл? Работайте в безопасном режиме, так как активируются только основные драйверы и сервисы. Если ваша система запускается в безопасном режиме, но не нормально, скорее всего, у вас проблемный драйвер. Попробуйте запустить диспетчер устройств в безопасном режиме и удалить наиболее вероятное подозрение. Или запустите Восстановление системы в безопасном режиме.

10] Запустите средство устранения неполадок с синим экраном Windows 10 .

Для анализа аварийных дампов вам могут помочь ссылки на печать MSDN и ссылки BlueScreenView.

Определение типа объекта

Весьма желательно, что бы у Вас к этому моменту на руках уже имелся полный дамп памяти.

Запускаем отладчик WinDbg из комплекта Debugging Tools for Windows, затем открываем через меню File — Open Crash Dump… имеющийся у нас на руках (желательно полный) дамп памяти.В интерфейсе отладчика, в командной строке выполняем команду !analyze -v:

Вот это всё великое множество полей нам, конечно же, не потребуется. При анализе любого дампа памяти интерес для нас представляет, в первую очередь, описание и аргументы критической ошибки, которые следуют, как правило, непосредственно за «шапкой» Bugcheck Analysis:

Поиск ключевых структур

Не важно, виновником останова у нас был процесс или же поток, в любом случае, после определения типа вызвавшего сбой объекта, дальнейшее изучение приводит нас сюда. Само определение типа объекта (процесс/поток) и имени объекта (имя процесса) дают нам лишь минимально-необходимый набор информации для дальнейшего осмысления проблемы.

Конечно случаются и исключения, но в большинстве случаев в критической ошибке STOP 000000F4 участвует один из системных процессов, что усложняет дальнейший анализ. К примеру, виновником может запросто оказаться такой системный процесс, как csrss.exe или smss.exe, и что прикажете с этим фактом делать?

Обновлять/заменять системные процессы не имеет смысла, поскольку если исключить явную подмену модуля (вследствие вирусной активности), что случается довольно редко, то обычно в системе присутствует самая актуальная версия. В этом случае вопрос ЧТО именно упало заменяется на вопрос ПОЧЕМУ данный процесс/поток упал?

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

Дополнительно:  Не включается ноутбук Леново, только заставка дальше логотипа не идет

Все это подталкивает нас к мысли о необходимости дальнейшего исследования инцидента. В самом начале исследования ошибки STOP 000000F4, мы выполняли в отладчике Windbg команду !analyze -v, а в выводе этой команды, в большинстве случаев, могут присутствовать дополнительные параметры, такие как код исключения в контексте процесса/потока. Попытайтесь найти в выводе структуру с именем EXCEPTION_RECORD, она может быть в такой форме:

а может быть и в такой:

..именно эта структура, в контексте данного сбоя, представляет особый интерес, поскольку имеет ряд значимых для дальнейшего изучения инцидента полей. Если структура присутствует в выводе, то обращаем внимания на поля ExceptionCode / EXCEPTION_CODE и Parameter[x] / ERROR_CODE, поскольку дальнейшее ориентирование будет происходить именно по их комбинациям.

Поле ExceptionCode указывает на код исключения (возможно с кратким описанием), а один из параметров Parameter[x] может содержать уточняющую информацию о характере возникшего исключения. Итак, значение поля ExceptionCode анализируется в совокупности с полями Parameter[x], обычно содержащими дополнительные коды ошибок, и только после этого выстраивается логическая цепочка дальнейших действий.

Проверка и чистка hdd

Первым подозреваемым становится жёсткий диск. Дело в том, что приложение может находится на секторе с ошибкой. И к падению системы приводит как раз взаимодействие с «битым сектором». В таком случае и возникает прерывание мониторинга состояния диска. И это прерывание приводит к синему экрану.

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

  1. Открываете «Проводник» и нажимаете правой кнопкой мыши на локальном диске. Процедуру потребуется повторить несколько раз (по разу для каждого локального диска). Выбираете пункт «Свойства».Свойства ярлыка
  2. Переходите в «Свойствах» на вкладку «Сервис» и выбираете «Проверить».Свойства диска
  3. Читаете предупреждение и выбираете необходимые галочки: «Исправлять ошибки» и «Сканировать том». После чего запускаете процедуру.

Важно! Этот способ актуален для Windows 7 и выше. Для Windows XP подобный инструмент не предусмотрен, поэтому потребуется прибегнуть к использованию упомянутых выше программ.

Проверка озу

Вторым источником ошибки синего экрана 0x000000f4 может служить некорректное взаимодействие компонентов системы и оперативной памяти. При наличии отклонений в последней её работа будет выполняться не корректно и системный процесс, вместо нужных данных получит неверное значение. Это и приведёт к его падению. В процессе проверки состояния ОЗУ компьютер потребуется перезапустить:

  1. Открываем строку «Выполнить» («Ctrl R») и прописываем «msconfig».Окно Выполнить
  2. Переходим на вкладку «Загрузка» и отмечаем галочку «Сделать эти параметры загрузки постоянными».Конфигурация системы

Это требуется для того, чтобы активировать «Тайм-аут» при запуске системы, чтобы после перезагрузки запустить диагностику памяти.

  1. Перезагружаем компьютер и выбираем «Диагностика памяти» в окне выбора системы.Диспетчер загрузки

После этого выбираете настройки и запускаете процесс. Дело это не быстрое и отнимет определённое время. Пользоваться компьютером в это время не выйдет.

Способ справедлив для любой версии Windows. Альтернативным способом запуска диагностики является перезагрузка компьютера и нажатия F8 для отображения окна выбора загрузки. Такой способ больше подходит для Windows XP, поскольку там вместо «msconfig» используется текстовый файл «boot.ini».

Список ошибок windows stop

15 самых распространенных ошибок остановки/BSOD в окнах

STOP 0x000000D1 или DRIVER_IRQL_NOT_OR_EQUAL Наверное, самый распространенный BSOD! Происходит, когда драйвер незаконно получил доступ к области памяти, когда NT работает с определенным IRQL. Это ошибка кодирования драйвера, похожая на попытку доступа к неверной ячейке памяти. Восстановление/Обходной путь: Обычно нет. Но это может помочь KB810093, KB316208 и KB810980.

STOP 0x0000000A или IRQL_NOT_LESS_OR_EQUAL Процесс или драйвер в режиме ядра попытались получить доступ к области памяти без авторизации. Эта ошибка Stop обычно вызывается неисправным или несовместимым оборудованием или программным обеспечением.

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

STOP 0x00000050 или PAGE_FAULT_IN_NONPAGED_AREA Аппаратный драйвер или системная служба запросили данные, которых не было в памяти. Причиной может быть дефект физической памяти или несовместимое программное обеспечение, особенно удаленное управление и антивирусные программы.

STOP 0x000000C2 или BAD_POOL_CALLER Процесс или драйвер в режиме ядра попытались выполнить недопустимое выделение памяти. Проблема часто может быть связана с ошибкой в ​​драйвере или программном обеспечении. Это также иногда вызвано отказом в аппаратном устройстве. Для получения дополнительной информации см. KB265879.

https://www.youtube.com/watch?v=subscribe_widget

STOP OX000000ED или UNMOUNTABLE_BOOT_VOLUME Происходит, если Windows не может получить доступ к тому, содержащему загрузочные файлы. Но если вы получаете это сообщение при обновлении до Vista, убедитесь, что у вас есть совместимые драйверы для контроллера диска, а также еще раз проверьте кабельную разводку диска и убедитесь, что он настроен правильно.

STOP 0x0000001E или KMODE_EXCEPTION_NOT_HANDLED Ядро Windows обнаружило недопустимую или неизвестную инструкцию процессора, часто являющуюся результатом неправильной памяти и нарушений доступа, вызванных неисправными драйверами или аппаратными устройствами.

STOP 0x00000024 или NTFS_FILE_SYSTEM Возникла проблема в драйвере файловой системы NTFS. Аналогичная ошибка остановки, 0x23, существует для дисков FAT32. Наиболее вероятная причина – аппаратный сбой диска или контроллера диска. Проверьте все физические соединения со всеми жесткими дисками в системе и запустите Check Disk. KB228888 поможет вам.

STOP 0x0000002E или DATA_BUS_ERROR Сбой или неисправность физической памяти (включая память, используемую в видеоадаптерах) является наиболее распространенной причиной этой ошибки Stop. Ошибка также может быть результатом поврежденного жесткого диска или поврежденной материнской платы.

STOP 0x0000003F или NO_MORE_SYSTEM_PTES В вашей системе закончились записи таблицы страниц (PTE). Причиной этой относительно необычной ошибки может быть неконтролируемая программа резервного копирования или неисправный драйвер устройства. Для получения дополнительной информации см. KB256004.

STOP 0x00000077 или KERNEL_STACK_INPAGE_ERROR Система попыталась прочитать данные ядра из виртуальной памяти (файл подкачки) и не смогла найти данные по указанному адресу памяти. Эта ошибка остановки может быть вызвана множеством проблем, включая дефектную память, неисправный жесткий диск, неправильно настроенный контроллер диска или кабель, поврежденные данные или вирусную инфекцию. Для получения дополнительной информации нажмите KB228753.

STOP 0x0000007F или UNEXPECTED_KERNEL_MODE_TRAP Скорее всего, из-за аппаратного сбоя, например, неисправных микросхем памяти, несоответствующих модулей памяти, неисправного процессора или отказа вашего вентилятора или блока питания, вероятными причинами этого BSOD.

STOP 0x000000D8 или DRIVER_USED_EXCESSIVE_PTES Это указывало на то, что плохо написанный драйвер заставляет ваш компьютер запрашивать большие объемы памяти ядра. Предложения по устранению неполадок идентичны тем, которые содержатся в сообщении STOP 0X3F.KB256004 поможет вам

STOP 0X000000EA или THREAD_STUCK_IN_DEVICE_DRIVER Может произойти после установки нового видеоадаптера или обновленного (и плохо написанного) видеодрайвера. Замена видеоадаптера или использование другого видеодрайвера может помочь. См. KB293078.

STOP 0XC000021A или STATUS_SYSTEM_PROCESS_TERMINATED Происходит, если существует серьезная проблема безопасности с Windows. Подсистема, такая как Winlogon или CSRSS, взломана; или из-за несоответствия в системных файлах; или если системные разрешения были неправильно изменены.

STOP 0XC00000221 или STATUS_IMAGE_CHECKSUM_MISMATCH Это указывает на поврежденный файл подкачки; или повреждение диска или файла; или неисправное оборудование. Ошибка будет указывать точный характер и имя поврежденного системного файла.


Для опытных пользователей Microsoft Advanced Windows отладки и устранения неполадок является удобной ссылкой! Дополнительное чтение на TechNet.

Кроме того, здесь обсуждались еще 10 распространенных ошибок остановки синего экрана Windows и возможные обходные пути.

Оцените статью
Master Hi-technology
Добавить комментарий