PFA выполняется Plug-In PSHED
Подключаемый модуль драйвера ошибок оборудования (PSHED) для конкретной платформы может выполнять анализ прогнозных сбоев (PFA) в памяти ECC. В этом случае подключаемый модуль, а не WHEA, должен отслеживать страницы памяти ECC. Если подключаемый модуль определяет, что страница памяти ECC превысила пороговое значение ошибки, это состояние указывает на WHEA. Затем WHEA пытается перевести страницу памяти в автономный режим.
Примечание Если подключаемый модуль PSHED выполняет PFA и использует реестр для хранения параметров конфигурации, таких как пороговые значения ошибок и время ожидания мониторинга, он не должен использовать параметры конфигурации WHEA PFA, описанные в разделе Параметры политики WHEA.
При возникновении ошибки памяти ECC WHEA и подключаемый модуль выполняют следующие действия.
Низкоуровневый обработчик ошибок оборудования (LLHEH) получает уведомление о наличии ошибки памяти.
LLHEH извлекает сведения об ошибке памяти из источника ошибок и использует эти данные для завершения пакета ошибок оборудования. Этот пакет имеет формат структуры WHEA_ERROR_PACKET .
LLHEH вызывает PSHED для получения сведений об ошибках оборудования для конкретной платформы. Если подключаемый модуль PSHED установлен и зарегистрирован для получения сведений об ошибках, PSHED вызывает подключаемый модуль PSHED, чтобы подключаемый модуль смог изменить сведения об ошибке, возвращаемые в LLHEH.
LLHEH вызывает ядро операционной системы Windows и передает ему пакет ошибок.
Ядро Windows создает запись об ошибке и добавляет в нее сведения из пакета ошибок, полученного от LLHEH. Кроме того, ядро Windows добавляет другие сведения об ошибке, такие как источник ошибки, серьезность ошибки и количество случаев возникновения ошибки в запись об ошибке.
Ядро Windows вызывает PSHED, чтобы разрешить PSHED добавлять разделы в запись об ошибке.
Если подключаемый модуль PSHED установлен и зарегистрирован для получения сведений об ошибке, PSHED вызовет подключаемый модуль PSHED, чтобы изменить сведения в записи об ошибке.
Если подключаемый модуль PSHED выполняет PFA на странице памяти ECC, он должен сделать следующее:
- Задайте бит PlatformPfaControl в элементе WHEA_ERROR_PACKET_FLAGS структуры WHEA_ERROR_PACKET . Если этот бит задан, WHEA больше не отвечает за PFA на этой странице памяти.
- Если подключаемый модуль определяет, что страница памяти ECC, на которой возникла ошибка, должна быть отключена, задайте бит PlatformDirectedOffline в элементе WHEA_ERROR_PACKET_FLAGS . Если этот бит задан, WHEA пытается перевести страницу памяти в автономный режим.
В противном случае подключаемый модуль PSHED должен очистить биты PlatformPfaControl и PlatformDirectedOffline в элементе WHEA_ERROR_PACKET_FLAGS структуры WHEA_ERROR_PACKET .
Примечание Если бит PlatformPfaControl очищен, WHEA выполняет PFA, если это настроено, и определяет, следует ли отключить страницу памяти ECC, на которой возникла ошибка. Дополнительные сведения об этом процессе см. в разделе PFA, выполненная WHEA.
Если страница памяти ECC должна быть отключена, WHEA сначала вызывает диспетчер системной памяти для выполнения этой операции.
Примечание При вызове диспетчера системной памяти нет никакой гарантии, что страница памяти ECC фактически будет отключена.
Затем WHEA добавляет страницу памяти в хранилище данных конфигурации загрузки (BCD) в системе. Это предотвращает использование страницы памяти после следующей перезагрузки системы.
Примечание WHEA не переключит аппаратный компонент, например страницу памяти ECC, в автономный режим, если для параметра реестра DisableOffline задано ненулевое значение. Кроме того, WHEA не добавит страницу памяти в хранилище BCD, если для параметра реестра MemPersistOffline задано значение 0. Дополнительные сведения о значениях реестра см. в разделе Параметры политики WHEA.
Дополнительные сведения о диспетчере системной памяти см. в разделе Управление памятью в документации windows SDK.
- Ядро Windows создает событие трассировки событий Windows и записывает сведения об ошибках в журнал системных событий.