- 0x000000f4 windows 7 – как исправить | инструкция
- Exceptioncode: c0000006
- Анализ поля exitstatus
- Анализ стека вызовов
- Замечания
- Как исправить ошибку 0x000000f4 в windows 7
- На windows 7
- Низкий уровень
- Обновление системы
- Обновления ос
- Общая проверка пк
- Определение типа объекта
- Очистка системного диска
- Поток
- Причина ошибки
- Причины появления ошибки 0x000000f4
- Проверка и чистка hdd
- Проверка озу
- Процесс
- Сбой 0x000000f4 windows 7: как исправить при помощи антивируса
0x000000f4 windows 7 – как исправить | инструкция
Синий экран смерти снова вас достал? Ошибка 0x000000f4 windows 7 – как исправить мы уже знаем и скоро вы тоже этому научитесь. Единственное чем можем вас расстроить, так тем что не факт, что данная проблема не всплывёт снова. Прежде чем разбираться непосредственно с методом решения, рассмотрим кратко ту информацию, которую подаёт этот «безжалостный набор шестнадцатеричного кода».
Итак, в данном случае это адрес в памяти той строки, которая написана в ASCII кодировке и имеет информацию о том, какой процесс в системе был резко завершен и повлёк за собой синий экран. Если взглянуть в лог файла, который создается автоматически при синем экране, то там можно найти информацию о типе объекта, имени объекта, в данном случае процесса. Операционная система Windows работает таким образом, что при отказе какого-то важного процесса, перестают работать остальные и компьютер автоматически перезагружается, а перед самой перезагрузкой пользователю подается информация в синем экране смерти. Как правило все эти экраны как появились, так и исчезли со скоростью «света», но при желании можно воспользоваться файлом лога. Теперь мы разобрались, что 0x000000f4 windows 7 – ошибка, вызванная «жизненно важным» процессом в системе при его резком отключении.
Процесс может резко останавливаться по нескольким причинам. Это может быть и малое количество свободного дискового пространства, оперативного пространства, виртуальной памяти, а также при наличии в системе вирусов широкого спектра действия, которые не только влияют на работоспособность системы, но и влезают в процессы. В связи с причинами появления 0x000000f4 в windows 7, предлагаем провести такие мероприятия на вашем компьютере:
- Проверить систему на вирусы программой CureIt! от команды Доктора Веба.
- Установите на ваш компьютер все обновления, которые требуются. Порой именно они и помогают решить проблемы с синим экраном, так как «ремонтируют» систему из внутри. Сделать это можно в центре обновления Windows.
- Освободите системный диск (чаще всего диск С) от лишнего мусора. Воспользуйтесь программой CCleaner, которая почистит систему от всего лишнего, в том числе от куков из браузеров.
- С помощью memtest86 проверьте свою оперативную память на ошибки и при обнаружении их необходимо произвести замену проблемной планки оперативной памяти.
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 показало бы выгружаемые пулы.
NonPaged Paged
Tag Allocs Frees Diff Used Allocs Frees Diff Used
@GMM 86 63 23 2291256 1 0 1 2097152 (Intel video driver) Memory manager
Cont 267 8 259 2154640 0 0 0 0 Contiguous physical memory allocations for device drivers
EtwB 179 109 70 1779736 2 0 2 131072 Etw Buffer , Binary: nt!etw
VHAL 15 0 15 1578176 0 0 0 0 UNKNOWN pooltag ‘VHAL’, please update pooltag.txt
Ntfx 9682 1852 7830 1469264 0 0 0 0 General Allocation , Binary: ntfs.sys
File 82334 74244 8090 1446864 0 0 0 0 File objects
VoSm 62 41 21 1240192 0 0 0 0 Bitmap allocations , Binary: volsnap.sys
Pool 13 8 5 1156680 0 0 0 0 Pool tables, etc.
MmCa 6578 564 6014 904208 0 0 0 0 Mm control areas for mapped files , Binary: nt!mm
FMsl 9240 1461 7779 809016 0 0 0 0 STREAM_LIST_CTRL structure , Binary: fltmgr.sys
Thre 2216 1456 760 563216 0 0 0 0 Thread objects , Binary: nt!ps
IU3C 23 22 1 483328 73 71 2 48 IIS Utility Driver
Mm 443 434 9 456448 65 62 3 88 general Mm Allocations , Binary: nt!mm
MmCi 1592 0 1592 423008 0 0 0 0 Mm control areas for images , Binary: nt!mm
0AEC 189 2 187 414896 0 0 0 0 UNKNOWN pooltag ‘0AEC’, please update pooltag.txt
AmlH 6 0 6 393216 0 0 0 0 ACPI AMLI Pooltags
Devi 383 42 341 344960 0 0 0 0 Device objects
. . .
7:kd>!poolused7 ........ SortingbyNonPagedPoolConsumed NonPaged Paged Tag Allocs Frees Diff Used Allocs Frees Diff Used @GMM 86 63 23 2291256 1 0 1 2097152(Intelvideodriver)Memorymanager Cont 267 8 259 2154640 0 0 0 0Contiguousphysicalmemoryallocationsfordevicedrivers EtwB 179 109 70 1779736 2 0 2 131072EtwBuffer,Binary:nt!etw VHAL 15 0 15 1578176 0 0 0 0UNKNOWNpooltag‘VHAL’,pleaseupdatepooltag.txt Ntfx 9682 1852 7830 1469264 0 0 0 0GeneralAllocation,Binary:ntfs.sys File 82334 74244 8090 1446864 0 0 0 0Fileobjects VoSm 62 41 21 1240192 0 0 0 0Bitmapallocations,Binary:volsnap.sys Pool 13 8 5 1156680 0 0 0 0Pooltables,etc. MmCa 6578 564 6014 904208 0 0 0 0Mmcontrolareasformappedfiles,Binary:nt!mm FMsl 9240 1461 7779 809016 0 0 0 0STREAM_LIST_CTRLstructure,Binary:fltmgr.sys Thre 2216 1456 760 563216 0 0 0 0Threadobjects,Binary:nt!ps IU3C 23 22 1 483328 73 71 2 48IISUtilityDriver Mm 443 434 9 456448 65 62 3 88generalMmAllocations,Binary:nt!mm MmCi 1592 0 1592 423008 0 0 0 0Mmcontrolareasforimages,Binary:nt!mm 0AEC 189 2 187 414896 0 0 0 0UNKNOWNpooltag‘0AEC’,pleaseupdatepooltag.txt AmlH 6 0 6 393216 0 0 0 0ACPIAMLIPooltags Devi 383 42 341 344960 0 0 0 0Deviceobjects ... |
список обычно выдается просто огромный и приводить его тут целиком не имеет особого смысла, поэтому я показал лишь небольшую его часть, верхнюю. Конкретно в этом дампе у меня нет необходимой информации, однако обычно из подробного вывода видно, что у какой-то метки пула может присутствовать очень большое значение (обычно сотни тысяч) в столбце Diff у группировки NonPaged, которое говорит о том, что память, маркированная данным тэгом постоянно резервируется, но при этом мало освобождается.
Если в столбце Tag присутствует значение Irp, то имеются в виду IRP-пакеты (I/O request packet, пакеты запроса ввода-вывода), которые используются для обмена данными с драйверами. Поэтому, мы можем обратить своё внимание на пакеты драйверов (IRP), поскольку они могут дать нам подсказку по функциям, интенсивно использующим память. Для этого используем команду !irpfind отладчика:
Scanning large pool allocation table for tag 0x3f707249 (Irp?) (86bfb000 : 86cfb000)
Irp [ Thread ] irpStack: (Mj,Mn) DevObj [Driver] MDL Process
8612d828 [8760e030] irpStack: ( e,20) 868b4198 [ DriverAFD] 0x8759d6f8
87625530 [875e4398] irpStack: ( d, 0) 86110de8 [ FileSystemNpfs]
8619ec08 [8788c030] irpStack: ( e, 3) 868b4198 [ DriverAFD]
86eb8ad0 [876b30e0] irpStack: ( e,20) 868b4198 [ DriverAFD] 0x876a5980
87d31d20 [857a3c20] irpStack: ( e,2d) 868b4198 [ DriverAFD]
861a5c08 [00000000] Irp is complete (CurrentLocation 3 > StackCount 2)
86ac28e0 [00000000] Irp is complete (CurrentLocation 2 > StackCount 1) 0x00000000
86e911d0 [00000000] Irp is complete (CurrentLocation 7 > StackCount 6)
Searching nonpaged pool (80000000 : ffc00000) for tag 0x3f707249 (Irp?)
8563fe90 [00000000] irpStack: ( f, 0) 00000000 [00000000: Could not read device object or _DEVICE_OBJECT not found
]
856a2210 [00000000] irpStack: ( f, 0) 861d1b90 [ DriverACPI]
856a2600 [00000000] irpStack: (16, 0) 8563f328 [ DriverACPI]
856bb008 [00000000] Irp is complete (CurrentLocation 31 > StackCount 30)
856bb6a8 [00000000] Irp is complete (CurrentLocation 31 > StackCount 30)
856bbb58 [00000000] Irp is complete (CurrentLocation 31 > StackCount 30)
856bf368 [87611030] irpStack: ( d, 0) 86110de8 [ FileSystemNpfs]
856bf420 [00000000] Irp is complete (CurrentLocation 31 > StackCount 30)
856bf8d0 [00000000] Irp is complete (CurrentLocation 31 > StackCount 30)
856e30d8 [00000000] Irp is complete (CurrentLocation 2 > StackCount 1)
85713ae0 [876f7d48] irpStack: ( e,2d) 868b4198 [ DriverAFD]
85718300 [00000000] Irp is complete (CurrentLocation 2 > StackCount 1)
857190a0 [87b7ad48] irpStack: ( d, 0) 86110de8 [ FileSystemNpfs]
85719aa0 [87837420] irpStack: ( e, 0) 8782bd10 [ Drivermpsdrv]
8571a008 [87ace828] irpStack: ( c, 2) 86734020 [ FileSystemNtfs]
857676a8 [87b25d48] irpStack: ( e, 0) 86f0e030 [*** ERROR: Module load completed but symbols could not be loaded for iusb3hub.sys
Driveriusb3hub]
85768d48 [00000000] Irp is complete (CurrentLocation 4 > StackCount 3)
85775840 [00000000] Irp is complete (CurrentLocation 4 > StackCount 3)
85776408 [00000000] Irp is complete (CurrentLocation 4 > StackCount 3)
85776cc8 [00000000] Irp is complete (CurrentLocation 4 > StackCount 3)
85777338 [00000000] Irp is complete (CurrentLocation 4 > StackCount 3)
85777ce0 [00000000] Irp is complete (CurrentLocation 4 > StackCount 3)
857861d8 [00000000] Irp is complete (CurrentLocation 4 > StackCount 3)
857b2928 [00000000] Irp is complete (CurrentLocation 4 > StackCount 3)
857b3090 [00000000] Irp is complete (CurrentLocation 4 > StackCount 3)
857b5028 [00000000] Irp is complete (CurrentLocation 4 > StackCount 3)
. . .
7:kd>!irpfind Scanninglargepoolallocationtablefortag0x3f707249(Irp?)(86bfb000:86cfb000) Irp [Thread]irpStack:(Mj,Mn) DevObj [Driver] MDLProcess 8612d828[8760e030]irpStack:(e,20) 868b4198[DriverAFD]0x8759d6f8 87625530[875e4398]irpStack:(d,0) 86110de8[FileSystemNpfs] 8619ec08[8788c030]irpStack:(e,3) 868b4198[DriverAFD] 86eb8ad0[876b30e0]irpStack:(e,20) 868b4198[DriverAFD]0x876a5980 87d31d20[857a3c20]irpStack:(e,2d) 868b4198[DriverAFD] 861a5c08[00000000]Irpiscomplete(CurrentLocation3>StackCount2) 86ac28e0[00000000]Irpiscomplete(CurrentLocation2>StackCount1)0x00000000 86e911d0[00000000]Irpiscomplete(CurrentLocation7>StackCount6) Searchingnonpagedpool(80000000:ffc00000)fortag0x3f707249(Irp?) 8563fe90[00000000]irpStack:(f,0) 00000000[00000000:Couldnotreaddeviceobjector_DEVICE_OBJECTnotfound ] 856a2210[00000000]irpStack:(f,0) 861d1b90[DriverACPI] 856a2600[00000000]irpStack:(16,0) 8563f328[DriverACPI] 856bb008[00000000]Irpiscomplete(CurrentLocation31>StackCount30) 856bb6a8[00000000]Irpiscomplete(CurrentLocation31>StackCount30) 856bbb58[00000000]Irpiscomplete(CurrentLocation31>StackCount30) 856bf368[87611030]irpStack:(d,0) 86110de8[FileSystemNpfs] 856bf420[00000000]Irpiscomplete(CurrentLocation31>StackCount30) 856bf8d0[00000000]Irpiscomplete(CurrentLocation31>StackCount30) 856e30d8[00000000]Irpiscomplete(CurrentLocation2>StackCount1) 85713ae0[876f7d48]irpStack:(e,2d) 868b4198[DriverAFD] 85718300[00000000]Irpiscomplete(CurrentLocation2>StackCount1) 857190a0[87b7ad48]irpStack:(d,0) 86110de8[FileSystemNpfs] 85719aa0[87837420]irpStack:(e,0) 8782bd10[Drivermpsdrv] 8571a008[87ace828]irpStack:(c,2) 86734020[FileSystemNtfs] 857676a8[87b25d48]irpStack:(e,0) 86f0e030[***ERROR:Moduleloadcompletedbutsymbolscouldnotbeloadedforiusb3hub.sys Driveriusb3hub] 85768d48[00000000]Irpiscomplete(CurrentLocation4>StackCount3) 85775840[00000000]Irpiscomplete(CurrentLocation4>StackCount3) 85776408[00000000]Irpiscomplete(CurrentLocation4>StackCount3) 85776cc8[00000000]Irpiscomplete(CurrentLocation4>StackCount3) 85777338[00000000]Irpiscomplete(CurrentLocation4>StackCount3) 85777ce0[00000000]Irpiscomplete(CurrentLocation4>StackCount3) 857861d8[00000000]Irpiscomplete(CurrentLocation4>StackCount3) 857b2928[00000000]Irpiscomplete(CurrentLocation4>StackCount3) 857b3090[00000000]Irpiscomplete(CurrentLocation4>StackCount3) 857b5028[00000000]Irpiscomplete(CurrentLocation4>StackCount3) ... |
Время выполнения команды !irpfind может быть ЧУДОВИЩНО БОЛЬШИМ! У меня последний раз при дампе размером в 4 гигабайта, операция выполнялась в течении нескольких часов.
Список, традиционно, не маленький, и я привел лишь небольшую его часть. По команде !pool (адрес из первой колонки) можно получить данные о принадлежности к выгружаемому или невыгружаемому пулу памяти:
По команде !irp (адрес из первой колонки) можно получить информацию о принадлежности пакета к определенному устройству:
Как мы можем видеть, в последних строках есть ссылка на драйвер устройства, которому предназначался IRP пакет: DriverAFD. У нас имя драйвера устройства было сразу видно в выводе команды !irpfind, приведенном выше, однако если Вам по каким-либо причинам необходимо узнать имя драйвера, то можно выполнить команду !devstack <Device> (адрес из колонки Device), которая получает информацию об устройстве, получившем IRP пакет:
При обнаружении стороннего драйвера, информацию по нему можно посмотреть командной
lmvm
Стоит обращать внимание на время создания стороннего драйвера, поскольку некоторые проблемы могут вызывать драйвера, выпущенные довольно давно и плохо работающие в среде актуальной операционной системы.
Анализ поля exitstatus
Ну если уж при анализе дампа другими методами вообще никакой полезной информации получить не удалось, то можно попытаться получить хоть какую-то информацию по коду завершения из структуры EPROCESS, воспользовавшись следующей командой:
dt nt!_EPROCESS <Arg2> ExitStatus
Похоже поле ExitStatus имеет то же значение, что и получаемое через вызов функции GetExitCodeProcess, которая возвращает код ошибки (определенный в самом приложении) по завершении процесса/потока.
в случае отсутствия иной информации о проблеме, статус завершения может дать нам хотя бы мизерный шанс к дальнейшему продвижению.
ExitStatus представлен в десятичном формате, поэтому для вычисления выражения (перевод в 16-ричную систему), можно использовать следующую команду:
А затем уже, имея шестнадцатеричное представление, можно найти общую информацию по коду ошибки посредством команды:
!error <NTSTATUS>
если информацию по ошибке встроенными средствами получить не удалось, её всегда можно найти на странице NTSTATUS.
Анализ стека вызовов
Первое, что можно сделать, это попытаться разобраться в стеке вызовов. Вот характерный пример из дикой природы. Имелся дамп памяти с такими вот аргументами ошибки:
Затем, из того же вывода команды !analyze -v получаем стек момента падения:
Обратите внимание на выделенные строки 5 и 7. Поскольку разбор стека идет снизу вверх, то вызов функции в строке 7 произошел ранее, и здесь мы видим функцию nt!DbgkpCloseObject, а что у неё в одном из аргументов?
Значение 86933020, которое является идентификатором прерванного процесса smss.exe (обратите внимание на параметр 2 (Arg2) сбоя). Далее, по цепочке вызовов движемся вверх и доходим до строки 5, видим там вызов функции nt!
PspTerminateAllThreads, среди агрументов которой опять обнаруживаем знакомый идентификатор процесса 86933020, а заодно и параметр c0000354. Этот параметр есть ни что иное, как код NTSTATUS, то есть статус завершения операции.
Вероятно, функция nt!PspTerminateAllThreads принудительно завершает все потоки процесса с идентификатором 86933020 и со статусом c0000354, который по описанию интерпретируется как STATUS_DEBUGGER_INACTIVE, а расшифровывается как Попытка произвести действие с отладочным портом не удалась, порт находится в процессе удаления.
Кто-то просто-напросто закрыл отладчик, который был подключен в разрушающем (агрессивном, invasive) режиме к системному процессу smss.exe. История кажется фантастической? Отнюдь, поскольку именно этот STOP я специально сэмулировал на тестовой машине, произведя как раз описанные выше действия 🙂
Замечания
Однако в некоторых случаях, из дампа мы не можем получить ни кода исключения, ни кода ошибки, а видим примерно такой вот результат:
то есть автоматика Windbg данных кодов из дампа получить не смогла, быть может это связано с тем, что во время сбоя логика формирования дампа, по какой-то причине, не смогла заполнить структуру, либо заполнила её на основании каких-либо некорректных данных, попавших туда ошибочно. Выполнение команды по запросу статуса выхода
выдает вообще какой-то фантастический код 0n-1 (0xFFFFFFFF)!! Могу ошибаться, но может быть это вызвано тем, что при конкретный дамп представляет собой минидамп и не содержит в себе необходимых структур?
Как исправить ошибку 0x000000f4 в windows 7
1. Если у нас неисправен жесткий диск, можно его проверить с помощью программ таких как:
Есть еще множество программ, но я вам показал самые доступные и простые программы для проверки жестких дисков.
При проверки всегда будьте внимательны и смотрите описание и тома жестких дисков.
2. Не исправна планка оперативной памяти, нужно будет заменить ее на новую и подобрать подходящую шину, так же можно попробовать зачистить контакты и порт оперативной памяти.
3. Компьютер заражен вирусами, можно будет проверить специальными программами для удаления вирусов, можете прочитать на нашем блоге статью Удаление вредоносных программ.
4. Установлены несовместимы драйвера или они не имели цифровую подпись, нужно их удалить, и установить более подходящие или более свежие версии драйверов.
На windows 7
Чаще всего неприятность 0x000000f4 Windows 7 показывает непосредственно сразу при включении ПК или после входа в систему из спящего режима. Если это происходит, то, вероятней всего, проблема кроется в неисправности какой-либо планки оперативной памяти.
Для диагностики, как правило, используют программку Memtest86 или ручную проверку. Второй вариант предполагает частичный разбор системного блока, с последующим поочередным извлечением плат ОП. В случае с ноутбуками найти лепестки оперативки можно в одном из секторов, расположенных на дне ПК.
Причина может скрываться в проблемах с определенным системным файлом, мешающем «семерке» беспрепятственно работать. В любом случае для устранения ошибки следует рассмотреть все вышеописанные причины.
Низкий уровень
В силу особенностей архитектуры x86, а так же специфики критических ошибок операционной системы Windows, рекомендации по устранению причин сбоя, зачастую, не отличаются какой-либо конкретикой и содержат лишь общие предложения, многие из которых не приводят к положительному результату, в следствии чего теряется огромное количество времени.
К тому же, в случае общего похода к решению, нет погружения в детали инцидента, из-за этого даже в случае устранения причин сбоя, модуль, виновный в возникновении ошибки, остается не выявленным. Сбой STOP 000000F4, как и многие другие критические сбои, относится к той категории, которая не является легкой в изучении, поскольку отсутствует прямая связь с причиной «падения». Практика показывает, что зачастую даже при наличии полного дампа довольно сложно докопаться до настоящей причины.
Всё это приближает нас выводу, что алгоритмы устранения тех или иных критических сбоев настолько витиеваты, что их довольно сложно описывать.
Тем не менее, пора уже начинать мыслить реалиями операционной системы и разбираться в низкоуровневых причинах происходящего, поэтому в данном разделе я попытаюсь собрать воедино весь найденный в Сети материал, несколько переработав его и дополнив собственными наблюдениями, преследуя цель выявить хоть какие-то закономерности, описать найденные варианты решений, приблизиться к пониманию происходящего с системой в момент сбоя и хоть немного да упростить жизнь технического специалиста.
Обновление системы
И еще одна ситуация. Как ни парадоксально это звучит, но ошибка с кодом 0x000000f4 Windows 7 может выскакивать даже в случае отсутствия необходимых пакетов обновления самой системы. А вот тут этот сбой, пока пакеты не будут инсталлированы, продолжит появляться снова и снова.
Как поступить в этом случае? Нет ничего проще, чем зайти в раздел Центра обновлений и убедиться, что установка выставлена на автоматический режим. Если по какой-то причине обновление не происходит, можно самостоятельно задать ручной поиск, и, после того как пакеты апдейтов будут найдены, интегрировать их в систему посредством скачивания и установки.
Обновления ос
Обновления призваны повышать безопасность системы и приложений или вносить в код некоторые исправления (патчи). Неполадки, связанные с апдейтами, возникают в двух случаях.
Нерегулярное обновление
Например, после установки «винды» прошло много времени, были установлены драйвера и программы, а затем был произведен апдейт. Новые системные файлы могут конфликтовать с уже установленными, что приводит к сбоям. Решить проблему можно двумя способами:
Очередное или автоматическое обновление
Ошибки могут возникать и непосредственно во время инсталляции пакетов. Причины могут быть разные – от ограничений, наложенных сторонним антивирусным софтом до того же конфликта. Отсутствие предыдущих версий апдейтов также может повлиять на корректное завершение процесса. Варианта исправления такой ситуации два: восстановить систему, как в предыдущем варианте, или установить «обновы» вручную.
Общая проверка пк
Если проблем со звуком нет, то, возможно, Вам поможет замена термопасты. О процессе её замены мы писали в теме «Замена термопасты на процессоре». Переходите по ссылке и ознакамливайтесь с тем, как это делать.
Второе, что может повлиять на появление синего экрана 0x000000f4 – это накопившаяся пыль на аппаратных составляющих: протрите внутренности системного блока от пыли.
Также стоит обратить внимание на оперативную память. Если она немного отошла от гнезда, к которому подключается, то Вы при запуске компьютера у Вас и может возникнуть проблема с появлением ошибки f4 с синим экраном.
Определение типа объекта
Весьма желательно, что бы у Вас к этому моменту на руках уже имелся полный дамп памяти.
Запускаем отладчик WinDbg из комплекта Debugging Tools for Windows, затем открываем через меню File — Open Crash Dump… имеющийся у нас на руках (желательно полный) дамп памяти.В интерфейсе отладчика, в командной строке выполняем команду !analyze -v:
CRITICAL_OBJECT_TERMINATION (f4)
A process or thread crucial to system operation has unexpectedly exited or been
terminated.
Several processes and threads are necessary for the operation of the
system; when they are terminated (for any reason), the system can no
longer function.
Arguments:
Arg1: 0000000000000003, Process
Arg2: fffffa801723e730, Terminating object
Arg3: fffffa801723ea10, Process image file name
Arg4: fffff800043849c0, Explanatory message (ascii)
Debugging Details:
——————
ETW minidump data unavailable
DUMP_CLASS: 1
DUMP_QUALIFIER: 400
BUILD_VERSION_STRING: 7601.23539.amd64fre.win7sp1_ldr.160902-0600
SYSTEM_MANUFACTURER: MSI
SYSTEM_PRODUCT_NAME: MS-7758
SYSTEM_SKU: To be filled by O.E.M.
SYSTEM_VERSION: 1.0
BIOS_VENDOR: American Megatrends Inc.
BIOS_VERSION: V2.4
BIOS_DATE: 06/19/2022
BASEBOARD_MANUFACTURER: MSI
BASEBOARD_PRODUCT: Z77A-G43 (MS-7758)
BASEBOARD_VERSION: 1.0
DUMP_TYPE: 2
BUGCHECK_P1: 3
BUGCHECK_P2: fffffa801723e730
BUGCHECK_P3: fffffa801723ea10
BUGCHECK_P4: fffff800043849c0
KERNEL_LOG_FAILING_PROCESS: (null)
PROCESS_NAME: csrss.exe
CRITICAL_PROCESS: csrss.exe
IMAGE_NAME: csrss.exe
DEBUG_FLR_IMAGE_TIMESTAMP: 0
MODULE_NAME: csrss
FAULTING_MODULE: 0000000000000000
EXCEPTION_CODE: (Win32) 0x2119e060 (555343968) —
ERROR_CODE: (NTSTATUS) 0x2119e060 —
CPU_COUNT: 8
CPU_MHZ: da4
CPU_VENDOR: GenuineIntel
CPU_FAMILY: 6
CPU_MODEL: 3a
CPU_STEPPING: 9
CPU_MICROCODE: 6,3a,9,0 (F,M,S,R) SIG: 12’00000000 (cache) 12’00000000 (init)
CUSTOMER_CRASH_COUNT: 1
DEFAULT_BUCKET_ID: WIN7_DRIVER_FAULT
BUGCHECK_STR: 0xF4
CURRENT_IRQL: 0
ANALYSIS_SESSION_HOST:
ANALYSIS_SESSION_TIME: 11-09-2022 10:30:42.0059
ANALYSIS_VERSION: 10.0.14321.1024 amd64fre
STACK_TEXT:
fffff880`239039d8 fffff800`0440fb22 : 00000000`000000f4 00000000`00000003 fffffa80`1723e730 fffffa80`1723ea10 : nt!KeBugCheckEx
fffff880`239039e0 fffff800`043cd12b : 00000000`00000001 fffffa80`2119e060 fffffa80`1723e730 fffffa80`1f54eb01 : nt!PspCatchCriticalBreak 0x92
fffff880`23903a20 fffff800`04334eb4 : 00000000`00000001 00000000`0000239c fffffa80`1723e730 fffffa80`00000008 : nt! ?? ::NNGAKEGL::`string’ 0x282c6
fffff880`23903a70 fffff800`0407a413 : 00000000`0000239c fffffa80`2119e060 fffffa80`1723e730 fffffa80`21c24950 : nt!NtTerminateProcess 0x284
fffff880`23903ae0 00000000`7736bdfa : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd 0x13
00000000`2e94ebf8 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x7736bdfa
STACK_COMMAND: kb
THREAD_SHA1_HASH_MOD_FUNC: e9460336222f4471d8ae88a3d24ad7df3aff8ef1
THREAD_SHA1_HASH_MOD_FUNC_OFFSET: 9c238bf7ebe2405ac86e2eb68e7c228ca739e29c
THREAD_SHA1_HASH_MOD: f08ac56120cad14894587db086f77ce277bfae84
FOLLOWUP_NAME: MachineOwner
FAILURE_BUCKET_ID: X64_0xF4_csrss.exe_BUGCHECK_CRITICAL_PROCESS_TERMINATED_BY_ZennoPoster.ex_2119e060
BUCKET_ID: X64_0xF4_csrss.exe_BUGCHECK_CRITICAL_PROCESS_TERMINATED_BY_ZennoPoster.ex_2119e060
PRIMARY_PROBLEM_CLASS: X64_0xF4_csrss.exe_BUGCHECK_CRITICAL_PROCESS_TERMINATED_BY_ZennoPoster.ex_2119e060
TARGET_TIME: 2022-10-29T18:32:47.000Z
OSBUILD: 7601
OSSERVICEPACK: 1000
SERVICEPACK_NUMBER: 0
OS_REVISION: 0
SUITE_MASK: 272
PRODUCT_TYPE: 1
OSPLATFORM_TYPE: x64
OSNAME: Windows 7
OSEDITION: Windows 7 WinNt (Service Pack 1) TerminalServer SingleUserTS
OS_LOCALE:
USER_LCID: 0
OSBUILD_TIMESTAMP: 2022-09-02 17:56:46
BUILDDATESTAMP_STR: 160902-0600
BUILDLAB_STR: win7sp1_ldr
BUILDOSVER_STR: 6.1.7601.23539.amd64fre.win7sp1_ldr.160902-0600
ANALYSIS_SESSION_ELAPSED_TIME: aa9
ANALYSIS_SOURCE: KM
FAILURE_ID_HASH_STRING: km:x64_0xf4_csrss.exe_bugcheck_critical_process_terminated_by_zennoposter.ex_2119e060
FAILURE_ID_HASH: {84f37c38-3c29-3fb1-11f5-e9b6e5d2d6f8}
Followup: MachineOwner
******************************************************************************* * * * BugcheckAnalysis * * * ******************************************************************************* CRITICAL_OBJECT_TERMINATION(f4) Aprocessorthreadcrucialtosystemoperationhasunexpectedlyexitedorbeen terminated. Severalprocessesandthreadsarenecessaryfortheoperationofthe system; when they are terminated (for any reason), the system can no longerfunction. Arguments: Arg1:0000000000000003,Process Arg2:fffffa801723e730,Terminatingobject Arg3:fffffa801723ea10,Processimagefilename Arg4:fffff800043849c0,Explanatorymessage(ascii) DebuggingDetails: —————— ETWminidumpdataunavailable DUMP_CLASS:1 DUMP_QUALIFIER:400 BUILD_VERSION_STRING: 7601.23539.amd64fre.win7sp1_ldr.160902—0600 SYSTEM_MANUFACTURER: MSI SYSTEM_PRODUCT_NAME: MS—7758 SYSTEM_SKU: TobefilledbyO.E.M. SYSTEM_VERSION: 1.0 BIOS_VENDOR: AmericanMegatrendsInc. BIOS_VERSION: V2.4 BIOS_DATE: 06/19/2022 BASEBOARD_MANUFACTURER: MSI BASEBOARD_PRODUCT: Z77A—G43(MS—7758) BASEBOARD_VERSION: 1.0 DUMP_TYPE: 2 BUGCHECK_P1:3 BUGCHECK_P2:fffffa801723e730 BUGCHECK_P3:fffffa801723ea10 BUGCHECK_P4:fffff800043849c0 KERNEL_LOG_FAILING_PROCESS: (null) PROCESS_NAME: csrss.exe CRITICAL_PROCESS: csrss.exe IMAGE_NAME: csrss.exe DEBUG_FLR_IMAGE_TIMESTAMP: 0 MODULE_NAME:csrss FAULTING_MODULE:0000000000000000 EXCEPTION_CODE:(Win32)0x2119e060(555343968)— ERROR_CODE:(NTSTATUS)0x2119e060— CPU_COUNT:8 CPU_MHZ:da4 CPU_VENDOR: GenuineIntel CPU_FAMILY:6 CPU_MODEL:3a CPU_STEPPING:9 CPU_MICROCODE:6,3a,9,0(F,M,S,R) SIG:12‘00000000 (cache) 12’00000000(init) CUSTOMER_CRASH_COUNT: 1 DEFAULT_BUCKET_ID: WIN7_DRIVER_FAULT BUGCHECK_STR: 0xF4 CURRENT_IRQL: 0 ANALYSIS_SESSION_HOST: ANALYSIS_SESSION_TIME: 11—09—202210:30:42.0059 ANALYSIS_VERSION:10.0.14321.1024amd64fre STACK_TEXT: fffff880`239039d8fffff800`0440fb22:00000000`000000f400000000`00000003fffffa80`1723e730fffffa80`1723ea10:nt!KeBugCheckEx fffff880`239039e0fffff800`043cd12b:00000000`00000001fffffa80`2119e060fffffa80`1723e730fffffa80`1f54eb01:nt!PspCatchCriticalBreak 0x92 fffff880`23903a20fffff800`04334eb4:00000000`0000000100000000`0000239cfffffa80`1723e730fffffa80`00000008:nt!??::NNGAKEGL::`string‘ 0x282c6 fffff880`23903a70fffff800`0407a413:00000000`0000239cfffffa80`2119e060fffffa80`1723e730fffffa80`21c24950:nt!NtTerminateProcess 0x284 fffff880`23903ae000000000`7736bdfa:00000000`0000000000000000`0000000000000000`0000000000000000`00000000:nt!KiSystemServiceCopyEnd 0x13 00000000`2e94ebf800000000`00000000:00000000`0000000000000000`0000000000000000`0000000000000000`00000000:0x7736bdfa STACK_COMMAND: kb THREAD_SHA1_HASH_MOD_FUNC: e9460336222f4471d8ae88a3d24ad7df3aff8ef1 THREAD_SHA1_HASH_MOD_FUNC_OFFSET: 9c238bf7ebe2405ac86e2eb68e7c228ca739e29c THREAD_SHA1_HASH_MOD: f08ac56120cad14894587db086f77ce277bfae84 FOLLOWUP_NAME: MachineOwner FAILURE_BUCKET_ID: X64_0xF4_csrss.exe_BUGCHECK_CRITICAL_PROCESS_TERMINATED_BY_ZennoPoster.ex_2119e060 BUCKET_ID: X64_0xF4_csrss.exe_BUGCHECK_CRITICAL_PROCESS_TERMINATED_BY_ZennoPoster.ex_2119e060 PRIMARY_PROBLEM_CLASS: X64_0xF4_csrss.exe_BUGCHECK_CRITICAL_PROCESS_TERMINATED_BY_ZennoPoster.ex_2119e060 TARGET_TIME: 2022—10—29T18:32:47.000Z OSBUILD: 7601 OSSERVICEPACK: 1000 SERVICEPACK_NUMBER:0 OS_REVISION:0 SUITE_MASK: 272 PRODUCT_TYPE: 1 OSPLATFORM_TYPE: x64 OSNAME: Windows7 OSEDITION: Windows7WinNt(ServicePack1)TerminalServerSingleUserTS OS_LOCALE: USER_LCID: 0 OSBUILD_TIMESTAMP: 2022—09—0217:56:46 BUILDDATESTAMP_STR: 160902—0600 BUILDLAB_STR: win7sp1_ldr BUILDOSVER_STR: 6.1.7601.23539.amd64fre.win7sp1_ldr.160902—0600 ANALYSIS_SESSION_ELAPSED_TIME:aa9 ANALYSIS_SOURCE: KM FAILURE_ID_HASH_STRING: km:x64_0xf4_csrss.exe_bugcheck_critical_process_terminated_by_zennoposter.ex_2119e060 FAILURE_ID_HASH: {84f37c38—3c29—3fb1—11f5—e9b6e5d2d6f8} Followup: MachineOwner |
Вот это всё великое множество полей нам, конечно же, не потребуется. При анализе любого дампа памяти интерес для нас представляет, в первую очередь, описание и аргументы критической ошибки, которые следуют, как правило, непосредственно за «шапкой» Bugcheck Analysis:
Очистка системного диска
Рассмотрим еще одну ситуацию, когда появляется сбой такого типа (код ошибки 0x000000f4 Windows 7). Решение проблемы может быть связано с банальной очисткой системного диска (на котором установлена «Винда») от мусора. Сразу же обратите внимание на то, что для нормальной работы системы, как правило, требуется не менее 10% свободного места от общего объема тома (например, если диск «С» имеет объем 100 Гб, для корректного функционирования системы свободно должно быть не менее 10 Гб).
Тут можно поступить двояко: либо использовать встроенные средства системы, вызываемые через меню свойств при правом клике на литере раздела в «Проводнике», либо обратиться за помощью к сторонним утилитам вроде CCleaner.
А вообще, как показывает практика, лучше не ограничиваться только одним методом, а использовать их поочередно, причем сначала очистить диск собственными средствами системы, а потом, так сказать, для достижения максимального результата запустить тот же CCleaner.
Поток
Помимо процесса, упавшим объектом может быть и поток в контексте процесса. Опять же, выяснить это можно по значению первого аргумента (Arg1) критической ошибки, если в нем содержится указание на поток (значение 6, именование Thread), то мы имеем дело с потоком внутри некоего процесса. Поскольку упавший объект является потоком, то мы выполняем соответствующую команду:
!thread <Arg2>
Получаем структуру целевого процесса:
информация содержит детализацию по выбранному потоку. Однако, нам необходимо получить имя процесса, которому принадлежал поток. Подобную информацию, в данном случае, нам указывает аргумент 3 ошибки, который содержит имя исполняемого образа процесса. Поэтому, нам необходимо вывести дамп памяти с адреса, где хранится имя процесса:
dc <Arg3>
И аргумент 4 критической ошибки указывает на ASCII-строку с поясняющим сообщением, которое раскрывает характер ошибки. Для того, чтобы его посмотреть это сообщение, мы выводим дамп памяти по указанному в аргументе адресу:
Причина ошибки
Первое, на что нужно обратить своё внимание, если обнаружили синий экран f4 на своем компьютере – это жесткий диск. Вы можете раскрыть боковую крышку системного блока и внимательно послушать, как ведет себя эта деталь: при данной ошибке Вы услышите, что винчестер будет издавать неестественный звук, будто он пытается что-то загрузить, после чего делает перемотку назад и потом пытается загрузить данные еще раз.
Такое поведение жесткого диска является признаком того, что в компьютере есть проблемы с питанием, что нужно исправить в первую очередь.
Если подобных звуков от винчестера Вы не слышите, но Вы видите ошибку STOP 0x000000f4 в Windows 7 при загрузке, то также нужно проверить другие детали: общую загрязненность, наличие термопасты на процессоре и правильно ли установлена планка с оперативной памятью.
Причины появления ошибки 0x000000f4
На официальном сайте Microsoft в качестве причины возникновения ошибки «stop 0x000000f4» указывается: «вызов приложения, создающего перекрёстный вызов с компонентами системы и аварийное завершение его работы». Из текста описания следует, что пользователем запускается и сразу закрывается программа, которая обладает функционалом, совпадающим с системным.
Звучит сложно, но проблема знакома геймерам. Некоторые игры запускаются вместе с некоторыми приложениями, обеспечивающими взаимодействие с сервером или защиту ввода пароля. Аналогичные действия выполняются и самой Windows. Обычно после установки соединения программа прекращает работу, а при должной производительности компьютера это происходит мгновенно. В следствии чего и возникает BSOD с указанным кодом.
Не только игры, но и серьёзные программы обладают такой спецификой. А чаще всего ошибка встречается на Windows 7 и XP. При этом следует отметить также исключительную редкость этого синего экрана. Ведь вызвать завершение работы системного компонента способны единичные программ.
Проверка и чистка hdd
Первым подозреваемым становится жёсткий диск. Дело в том, что приложение может находится на секторе с ошибкой. И к падению системы приводит как раз взаимодействие с «битым сектором». В таком случае и возникает прерывание мониторинга состояния диска. И это прерывание приводит к синему экрану.
Чтобы проверить состояние диска можно воспользоваться сторонними программами MHDD или Victoria или воспользоваться средствами самой системы. Рассматривается второй случай, потому как об использовании специфического программного обеспечения можно прочесть у нас на сайте:
- Открываете «Проводник» и нажимаете правой кнопкой мыши на локальном диске. Процедуру потребуется повторить несколько раз (по разу для каждого локального диска). Выбираете пункт «Свойства».
- Переходите в «Свойствах» на вкладку «Сервис» и выбираете «Проверить».
- Читаете предупреждение и выбираете необходимые галочки: «Исправлять ошибки» и «Сканировать том». После чего запускаете процедуру.
Важно! Этот способ актуален для Windows 7 и выше. Для Windows XP подобный инструмент не предусмотрен, поэтому потребуется прибегнуть к использованию упомянутых выше программ.
Проверка озу
Вторым источником ошибки синего экрана 0x000000f4 может служить некорректное взаимодействие компонентов системы и оперативной памяти. При наличии отклонений в последней её работа будет выполняться не корректно и системный процесс, вместо нужных данных получит неверное значение. Это и приведёт к его падению. В процессе проверки состояния ОЗУ компьютер потребуется перезапустить:
- Открываем строку «Выполнить» («Ctrl R») и прописываем «msconfig».
- Переходим на вкладку «Загрузка» и отмечаем галочку «Сделать эти параметры загрузки постоянными».
Это требуется для того, чтобы активировать «Тайм-аут» при запуске системы, чтобы после перезагрузки запустить диагностику памяти.
- Перезагружаем компьютер и выбираем «Диагностика памяти» в окне выбора системы.
После этого выбираете настройки и запускаете процесс. Дело это не быстрое и отнимет определённое время. Пользоваться компьютером в это время не выйдет.
Способ справедлив для любой версии Windows. Альтернативным способом запуска диагностики является перезагрузка компьютера и нажатия F8 для отображения окна выбора загрузки. Такой способ больше подходит для Windows XP, поскольку там вместо «msconfig» используется текстовый файл «boot.ini».
Процесс
Если в Аргументе 1 ошибки содержится указание на процесс (значение 3, именование Process), то мы имеем дело с падением процесса. Поскольку упавший объект является процессом, то выполняем следующую команду:
!process <Arg2> 3
Получаем структуру целевого процесса:
информация содержит детализацию по выбранному процессу. Среди прочих параметров мы можем наблюдать в строке 6 и имя образа в виде поля с именем Image, содержащим значение csrss.exe.Имя исполняемого образа процесса так же содержится в аргументе 3, поэтому мы можем получить его и другим способом, например выведя дамп памяти с адреса, хранящегося в аргументе 3:
dc <Arg3>
В дополнение к этому, то же имя исполняемого образа можно получить из структуры EPROCESS:
Как мы видим, поле под названием ImageFileName, содержащего имя образа, в структуре EPROCESS имеет смещение 0x2e0. Не стоит принимать это значение во внимание и тем более пытаться запомнить, поскольку структура EPROCESS может, в зависимости от версии операционной системы, меняться.
Сбой 0x000000f4 windows 7: как исправить при помощи антивируса
Действительно, вирусы могут воздействовать на систему избирательно, блокируя некоторые важные службы или вмешиваясь в их работу. Таким образом, самое первое, что нужно сделать, — произвести проверку системы на наличие угроз.
При этом даже при установленном штатном антивирусе, его использовать не рекомендуется, ведь они и так уже пропустил угрозу. Тут лучше применять портативные антивирусные утилиты вроде Dr. Web CureIt! или KVRT «Лаборатории Касперского». Впрочем, такой подход может ничего не дать, если вирус засел глубоко в оперативной памяти или в загрузочном секторе.
Тут на помощь приходят специализированные утилиты, называемые Rescue Disk, которые имеют собственный графический интерфейс или работают из командной строки и загружаются еще до старта «Винды», что позволяет определить и устранить практически любую угрозу, где бы она ни находилась.