Статья продолжает серию публикаций, посвященных описанию и устранению проблем, вызванных возникновением критической системной ошибки, которая влечет за собой появление синего экрана смерти (BSOD). В большинстве случаев в подобном материале будут освещаться проблемы, с которыми я сталкивался лично в своей практике и которые мне удалось решить. STOP-ошибка (STOP error), контроль дефекта (BugCheck) или в простонародье BSOD - фатальный системный сбой операционной системы Windows, являющийся причиной полного прекращения функционирования основных компонентов ядра операционной системы, влекущий за собой потерю динамических несохраненных пользовательских данных и приводящий к появлению на экране монитора синего экрана смерти (BSOD). Числовое обозначение STOP-ошибки - внутренний классификатор Microsoft, характеризующий причину возникновения фатальной системной ошибки, который используется при диагностике причины возникшей неполадки. В данной статье речь пойдет о сбое с идентификатором STOP 0000007A.
Симптомы
В процессе функционирования операционной системы Windows, абсолютно случайный момент времени работа операционной системы внезапно прерывается и Вы можете наблюдать на экране следующее сообщение об фатальной системной ошибке:
В общем случае формат ошибки следующий:
1 2 |
STOP 0x0000007A (0xAAAAAAAA,0xBBBBBBBB,0xCCCCCCCC,0xDDDDDDDD) KERNEL_DATA_INPAGE_ERROR |
где:
Значение | Описание |
---|---|
0xAAAAAAAA | Первый параметр. Тип возникшей блокировки. (значения: 1,2,3 или адрес таблицы страниц (PTE)). |
0xBBBBBBBB | Второй параметр. Код статуса ошибки. |
0xCCCCCCCC | Третий параметр. Для блокировки (первый параметр) = 1 и 2 - адрес текущего процесса. Для блокировки = 3, или если в первом параметре адрес таблица страниц (PTE) - то содержит виртуальной адрес. |
0xDDDDDDDD | Четвертый параметр. Виртуальный адрес, который код ядра не смог загрузить в физическую память из файла подкачки (in-paged), либо содержимое таблицы страниц (PTE), если первый параметр является адресом PTE. |
Символическое имя ошибки KERNEL_DATA_INPAGE_ERROR (ОШИБКА_ПОДКАЧКИ_ДАННЫХ_ЯДРА), говорит о том, что критическая ошибка STOP 0000007A возникает в ситуации, когда Менеджер памяти (диспетчер памяти) не может загрузить в физическую (оперативную) память страницу с критичными для ядра данными из файла подкачки (обычно размещаемом на жестком диске). Каждому процессу в системе выделяется виртуальное адресное пространство размерностью в максимально возможный для архитектуры (x86/x64) адресуемый размер (это 4Гб для 32-битных систем и 16Эб для 64-разрядных). Но объем оперативной (физической) памяти, установленной в системе, намного меньше объема виртуальной памяти, использующейся всеми работающими в данный момент процессами. Отсюда следует, что все виртуальные страницы всех процессов в системе физически не могут уместиться в оперативной памяти. Однако, для того, чтобы обеспечить иллюзию доступности всего объема физической памяти процессу, диспетчер памяти, который является частью исполняющей подсистемы ядра, осуществляет постраничный сброс части неиспользуемого в данный момент содержимого памяти на диск, в файл подкачки. Подобная операция освобождает физическую память, чтобы та могла использоваться процессами, в данный момент нуждающимися именно в физической памяти для выполнения своего кода. В ситуации, когда исполняющийся код (поток) обращается к адресу, принадлежащему странице виртуальной памяти, которой не передана страница физической памяти (страница была вытеснена и помещена в файл подкачки), то диспетчер памяти "на лету" подгружает информацию обратно из файла подкачки (с диска) в оперативную память. Вот как раз в процессе выполнения подгрузки и может возникнуть ошибка STOP 0000007A. А причиной может быть сбой в работе любого из низлежащих модулей ядра, обеспечивающих цепочку чтения/обработки данных с физического носителя, на котором располагается файл подкачки. Зачастую это вызвано физическим повреждением поверхности носителя, либо ошибкой контроллера диска.
Общие причины
- Ошибка чтения данных из файла подкачки, причиной которого явился программный сбой. Причины: cбой программного характера, например некорректная работа антивирусов, фильтров, драйверов, любого программного обеспечения режима ядра, которая влечет за собой невозможность чтения информации из файла подкачки, либо плохой блок оперативной памяти.
- Ошибка чтения данных из файла подкачки, причиной которого явился аппаратный сбой. Причины: Ошибка контроллера диска, повреждение магнитной поверхности диска, то есть плохой кластер, попавший на область данных файла подкачки.
Общие варианты решения
В этом разделе приводятся общие методы восстановления, которые применяются для всех подвидов ошибки STOP 0x0000007A вне зависимости от параметров ошибки (BugCheckParameter1, BugCheckParameter2, BugCheckParameter3, BugCheckParameter4), которые указаны после кода STOP-ошибки в круглых скобках. Все нижеописанные действия необходимо выполнить для устранения ошибки.
Замена жесткого диска
STOP 0000007A у меня частенько встречался в ситуации, когда на системном жестком диске, на котором располагался как сама операционная система, так и файл подкачки (подобная ситуация достаточно распространена), начали появляться сбойные (плохие) сектора. Как говорится, диск начал "сыпаться". В подобной ситуации самым логичным решение будет замена жесткого диска с попыткой выполнения операции копирования разделов на новый диск.
Специфические особенности некоторых сбоев
Применительно к сбою STOP 0000007A, второй входной параметр (BugCheckParameter2), отраженный на синем экране смерти в круглых скобках (0xBBBBBBBB), может подсказать нам более подробные сведения о деталях сбоя и определить возможные более специфичные методы устранения проблемы для случаев, когда она вообще может быть устранена.
Значение второго параметра | Символическое имя | Описание |
---|---|---|
0xC000000E | STATUS_NO_SUCH_DEVICE | Ошибка дисковой подсистемы: ошибка определения оборудования. |
0xC000009C | STATUS_DEVICE_DATA_ERROR | Ошибка дисковой подсистемы: поврежденный кластер на диске. |
0xC000009D | STATUS_DEVICE_NOT_CONNECTED | Ошибка дисковой подсистемы: нет доступа к диску. Возможна проблема с кабелем. |
0xC000016A | STATUS_DISK_OPERATION_FAILED | Ошибка дисковой подсистемы: поврежденный кластер на диске. |
0xC0000185 | STATUS_IO_DEVICE_ERROR | Ошибка дисковой подсистемы: ошибка подсистемы ввода-вывода устройства. |
0xC000009A | STATUS_INSUFFICIENT_RESOURCES | Ошибка дисковой подсистемы: ошибка файловой системы. либо нехватка nonpaged pool ресурсов. |