Ошибка 0x000000F4 Windows 7 |

Ошибка 0x000000F4 Windows 7 | Техника

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, которое говорит о том, что память, маркированная данным тэгом постоянно резервируется, но при этом мало освобождается.

Дополнительно:  Stop 0x000000f4 – как исправить ошибку синего экрана смерти BSOD в Windows XP или 7 при загрузке или в процессе работы

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

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

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

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

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

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

lmvm

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

Код ошибки 0x0000000a в windows 7

Ошибка 0x000000F4 Windows 7 |Ошибка 0x0000000a может происходить как во время работы установленной системы Windows 7, так и при ее установке по следующим причинам:

Для устранения ошибки 0x0000000a важно правильно интерпретировать BSOD. Рассмотрим ситуацию, приведенную на рисунке ниже:

Пример BSOD с кодом 0x0000000a

Надпись DRIVER_IRQL_NOT_LESS_OR_EQUAL или IRQL_NOT_LESS_OR_EQUAL указывает на то что ошибка возникла во время системного прерывания BIOS, по причине обращения к запрещенной области памяти для данного уровня доступа прерывания. То есть в момент взаимодействия системой с аппаратным обеспечением компьютера.

После кода ошибки 0x0000000a в фигурных скобках мы видим подробную информацию об ошибке, в данном случае:

  • 0x0075008C будет некорректным адресом для данного обращения;
  • 0х00000002 уровень необходимого прерыванию доступа для работы с выше указанным участком памяти;
  • 0х00000001 указывает на то, что ошибка произошла при попытке записи в память, код 0х00000000 указывал на сбой при операции чтения;
  • 0х83А19829 адрес инструкции, выполнение которой вызвало ошибку, по данному адресу можно определить вызвана, ли ошибка драйвером системы, или некорректной работой приложения с аппаратной частью ПК. Для этого необходимо свериться с таблицей распределения о оперативной памяти.

Часто под стройкой с адресом ошибки (0x0000000a), можно увидеть каким именной драйвером был вызван сбой, но к сожалению далеко не всегда.

Для решения проблемы стоит выполнить следующие действия.

  1. Если данный сбой возник в момент установки драйвера в Windows 7, для подключённого к ПК оборудования необходимо перезагрузиться в безопасном режиме предварительно выключив ПК и отключив установленное оборудование. Для этого при перезагрузке нажимаем клавишу F8. После появления экрана с предложением выбора варианта загрузки выбираем «Безопасный режим» или «Safe mode» как показано ниже и подтверждаем выбор нажатием клавиши Enter.Загрузка в безопасном режиме
  2. После загрузки системы Windows 7 в безопасном режиме запускаем диспетчер оборудования, нажав правой кнопкой мышки на «Мой компьютер». После открытия консоли выбираем установленное оборудования, жмем на него правой кнопкой мышки и выбираем свойства, переходим на вкладку «драйвер», нажимает «удалить», устанавливаем птичку и жмем «ОК».Подтверждение удаления устройства
  3. После перезагрузки системы устанавливаем корректный драйвер для данного устройства. Перегружаем систему в нормальном режиме. Бывает, ошибка с кодом 0x0000000a в Windows 7 возникает после обновлений драйверов или самой операционной системы. В таком случае перегружаемся в безопасном режиме. Запускаем пуск выполнить, в появившемся окне вводим команду verifier/ reset, что сбросит параметры проверки драйверов по умолчанию, нажимаем «ОК».Выполнение команды verifier/ reset
  4. Если данная ошибка возникает при переходе системы Windows 7 в «Спящий режим» или «Режим Гибернации» то необходимо установить последние обновления, или наоборот сделать откат на последнюю точку восстановления системы.
  5. Если ошибка вызвана после настройки BIOS, особенно игр в IRQL прерываний, то рекомендуется сбросить данные настройки по умолчанию, сохранить настройки BIOS.
  6. При сбое в результате некорректной работы аппаратной части ПК стоит попробовать в BIOS следующие:
    • отключить кеш память, в том числе второго и третьего уровня;
    • отключить в BIOS Plug And Play режим;
    • доступ к затененной памяти;
    • антивирусную защиту BIOS, если таковая имеется;
    • стоит обновить прошивку BIOS материнской платы и видеокарты до последней версии;
    • запустить тест оперативной памяти, возможно вставить оперативную память в другой слот, попробовать понизить частоту работы ОЗУ до наиболее медленной планки, если они у вас разные;
  7. Для определения какое именно устройство в ПК вызывает конфликт можно попробовать по очереди отключать комплектующие ПК. Начать стоит с оперативной памяти, если у вас установлено 2 и более планок ОЗУ, то методом перебора проверяем каждую из них. Перед этим важно провести полный тест ОЗУ для исключения сбойных ячеек.
  8. Если приложение приводит к ошибке, то можно просмотреть в журнале ошибок Windows 7 какое именно. Смотреть нужно в разделе «Приложения» Ошибки драйверов будут фиксироваться в разделе «Система».Управление компьютером - Раздел "Приложения"
Дополнительно:  Код 19 не работает клавиатура на ноутбуке Что делать

Ошибка 0x000000F4 Windows 7 |

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

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

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

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

Дополнительно:  Windows 10 не видит модем мегафон - Связь и коммуникации

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

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

Конечно случаются и исключения, но в большинстве случаев в критической ошибке 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], обычно содержащими дополнительные коды ошибок, и только после этого выстраивается логическая цепочка дальнейших действий.

Проверка озу

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

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

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

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

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

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

Сброс bios

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

  • С помощью перемычки. Метод подходит для стационарных компьютеров. Необходимо полностью отключить питание устройства, вплоть до извлечения электровилки из розетки, снять крышку с системного блока и найти перемычку, которая располагается на системной плате рядом с батарейкой, обычно обозначена CMOS. Переместить перемычку в положение 2-3 на 15 секунд.Перемычка1После этого настройки BIOS вернутся к заводским. Если контактов только два, то достаточно их замкнуть.Перемычка2
  • Если есть возможность воспользоваться утилитой BIOS Setup, то сброс к заводским настройкам можно произвести с ее помощью. Для этого необходимо запустить программу, и в меню настройки выбрать пункт «Load Optimal Defaults» либо какое-то аналогичное название в зависимости от версии BIOS.Сброс настроек BIOSДелать это следует осторожно, так как неправильный сброс настроек BIOS может привести к поломке устройства. Если вы не уверены в своих силах, то обратитесь за помощью к квалифицированному специалисту.

Шаг 1: запустите компьютер в «безопасном режиме с поддержкой сети».

Чтобы запустить компьютер в безопасном режиме с поддержкой сети:

Windows 7, Vista Пользователи XP:

  1. Закройте все программы и перезагружать твой компьютер.
  2. Нажмите «F8«ключ при загрузке компьютера, до появления логотипа Windows.
  3. Когда «Меню расширенных параметров Windows«появляется на вашем экране, используйте клавиши со стрелками на клавиатуре, чтобы выделить»Безопасный режим с поддержкой сети«вариант, а затем нажмите»ВОЙТИ».

Безопасный режим с поддержкой сети

Windows 8 8.1 пользователей *:

* Также работает в Windows 7, Vista XP.

1. Нажмите «Windows»

Изображение-201_thumb

  «

р

«ключи для загрузки

Бег

чат.

2. Тип «MSCONFIG«и нажмите Войти.

MSCONFIG

3. Перейдите на вкладку Boot и проверьтеБезопасный ботинок» «сеть».

Безопасная загрузка сети

4. Нажмите «хорошо» а также перезапуск твой компьютер.

Заметка: Для того, чтобы загрузить Windows вНормальный режим«опять же, вы должны снять галочку»Безопасный ботинок«настройка с использованием той же процедуры.

Шаг 3. загрузите и установите предыдущую версию драйвера для графического адаптера.

После перезагрузки перейдите на веб-сайт производителя видеокарты и загрузите предыдущий (самый старый) драйвер для вашего адаптера дисплея. Чтобы найти предыдущий драйвер VGA:

  • Для AMD-ATI драйверы дисплея:
    • Перейдите на страницу загрузки драйверов AMD.
    • На Выберите свой драйвер вручную выберите графическое оборудование AMD и операционную систему, а затем нажмите ОТОБРАЗИТЬ РЕЗУЛЬТАТЫ кнопка ниже.

Страница загрузки драйвера AMD

    • На открывшейся странице выберите Предыдущие драйверы и программное обеспечение ссылка на правой боковой панели.

Скачать драйвер AMD Catalyst

    • Наконец загрузите и установите предыдущую версию драйвера для вашей видеокарты AMD / ATI. (например, «3.12» или «3.9» версия).

Скачать предыдущий драйвер AMD ATI

  • Для NVIDIA драйверы дисплея:
    • Перейдите на NVIDIA. Загрузите страницу расширенного поиска драйверов.
    • Определите модель графического продукта NVIDIA, свою операционную систему и выберите отображение только Рекомендуемые / Сертифицированные водители. Когда вы сделаете свой выбор, нажмите Поиск кнопка.

NVIDIA-Download

    • Наконец загрузите и установите самую старую версию драйвера для вашей видеокарты NVIDIA. (например, версия «344.60»).

Скачать предыдущий драйвер NVIDIA

Решение 3. Сбросьте настройки BIOS и выполните чистую установку видеодрайверов.

Шаг 1. Запустите Windows в безопасном режиме и удалите драйверы графической карты, выполнив шаги 1 2 из решения 2 выше.

Шаг 2. Завершите работу вашего компьютера.

Шаг 3. Отсоедините шнур питания (плюс аккумулятор, если у вас есть ноутбук) и все подключенные устройства.

— — —  Если у вас есть ноутбук, перейдите прямо к шагу 7 ниже …  — — —

Шаг 4 Откройте корпус компьютера и аккуратно извлеките видеокарту.

Шаг 5 Очистить настройки BIOS материнской платы (CMOS). *

* Заметка: Прочитайте инструкцию к материнской плате о том, как очистить CMOS. В большинстве случаев вам необходимо установить перемычку на два вывода CMOS на материнской плате и подождать несколько секунд, прежде чем снимать перемычку, или вы должны вынуть батарею CMOS из держателя батареи и подождать 1 минуту, прежде чем устанавливать батарея CMOS вернулась на место.

Шаг 6 Подождите несколько секунд, а затем вставьте видеокарту обратно в слот.

Шаг 7 Подождите 30 — 40 секунд, затем подключите шнур питания и включите компьютер.

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

Шаг 9Сохранить и выйти из BIOS.

Шаг 10 Загрузитесь с Windows и установите драйверы видеокарты.

Удачи!

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