Записи об ошибках
Архитектура аппаратной ошибки Windows (WHEA) использует стандартный формат записи об ошибках для представления всех аппаратных ошибок платформы. В результате системное ПО, операционная система Windows и приложения в пользовательском режиме могут создавать механизмы создания отчетов об ошибках оборудования и механизмов восстановления, основанных на одном и том же формате записи ошибок.
Формат записей ошибок, используемых WHEA, основан на (CPER), как описано в приложении N версии 2.2 спецификации UEFI (UEFI).
На следующей схеме показан общий формат записи об ошибке.
Запись об ошибке состоит из заголовка записи об ошибке, за которым следует один или несколько дескрипторов записей ошибок фиксированной длины. Для каждого дескриптора раздела записи об ошибках есть связанный раздел записи об ошибке переменной длины, содержащий данные об ошибках или информационные данные. Запись об ошибке должна содержать по крайней мере один раздел записи об ошибке.
Запись об ошибке может включать дополнительное буферное пространство для динамического добавления разделов записей ошибок и дескрипторов разделов. Дополнительное пространство буфера также можно использовать для динамического увеличения размера существующих разделов записей ошибок.
Запись об ошибке описывается структурой WHEA_ERROR_RECORD, заголовок записи ошибки описывается структурой WHEA_ERROR_RECORD_HEADER, а дескрипторы разделов ошибок описываются WHEA_ERROR_RECORD_SECTION_DESCRIPTOR структурой.
Каждый раздел записи об ошибке может быть одним из следующих типов разделов:
Пакет ошибок оборудования
Этот раздел записи об ошибках содержит пакет ошибок оборудования, переданный операционной системе обработчиком ошибок низкого уровня (LLHEH), который сообщил об ошибке. Данные, содержащиеся в этом разделе, описываются структурой WHEA_ERROR_PACKET.
Ошибка универсального процессора
Этот раздел записи об ошибках содержит данные об ошибках процессора, которые не относятся к определенной архитектуре процессора. Данные, содержащиеся в этом разделе, описываются структурой WHEA_PROCESSOR_GENERIC_ERROR_SECTION.
Ошибка процессора x86/x64
Этот раздел записи об ошибках содержит данные об ошибках процессора, относящиеся к архитектуре процессора x86 или x64. Данные, содержащиеся в этом разделе, описываются структурой WHEA_XPF_PROCESSOR_ERROR_SECTION. На следующей схеме показано, как структуры данных, содержащие данные об ошибках процессора, хранятся в элементе VariableInfo.
ошибка процессора Itanium
Этот раздел записи об ошибках содержит данные об ошибках процессора, относящиеся к архитектуре процессора Itanium. Дополнительные сведения о формате данных об ошибках, содержащихся в этом разделе записей об ошибках, см. в спецификации уровня абстракции системы семейства процессоров Intel Itanium Processor,.
Ссылка на запись об ошибке микропрограммы процессора Itanium
Этот раздел записи об ошибках содержит ссылку на запись ошибок встроенного ПО, относящуюся к архитектуре процессора Itanium. Этот раздел записи об ошибках описывается структурой WHEA_FIRMWARE_ERROR_RECORD_REFERENCE.
Ошибка памяти платформы
Этот раздел записи об ошибках содержит данные об ошибках памяти платформы. Данные, содержащиеся в этом разделе, описываются структурой WHEA_MEMORY_ERROR_SECTION.
немаскируемое прерывание
Этот раздел записи об ошибках содержит данные о несокрываемых прерываниях (NMI). Данные, содержащиеся в этом разделе, описываются структурой WHEA_NMI_ERROR_SECTION.
ошибка PCI Express
Этот раздел записи об ошибках содержит данные об ошибках PCI Express. Данные, содержащиеся в этом разделе, описываются структурой WHEA_PCIEXPRESS_ERROR_SECTION.
Ошибка шины PCI/PCI-X
Этот раздел записи об ошибке содержит данные об ошибках PCI/PCI-X шины. Данные, содержащиеся в этом разделе, описываются структурой WHEA_PCIXBUS_ERROR_SECTION.
Ошибка устройства PCI/PCI-X
В разделе записи об ошибках содержатся данные об ошибке устройства PCI/PCI-X. Данные, содержащиеся в этом разделе, описываются структурой WHEA_PCIXDEVICE_ERROR_SECTION.
Для дополнительных данных об ошибках оборудования, которые не соответствуют одному из типов разделов в предыдущем списке, можно определить раздел записи об ошибках для конкретной платформы для хранения данных. Для каждого типа определенного раздела записи об ошибках, определенного платформой, необходимо определить соответствующий GUID, определяющий тип раздела записи об ошибках. Этот GUID указывается в элементе sectionType любой WHEA_ERROR_RECORD_SECTION_DESCRIPTOR структуры, описывающей этот тип раздела записи об ошибке.
Если существуют дополнительные данные об ошибках оборудования, которые не вписываются в один из типов разделов в предыдущем списке или в определенный раздел записи ошибок для конкретной платформы, для хранения данных используется раздел универсальной записи ошибок.