Инфраструктура WHEA

WHEA предоставляет единый механизм обнаружения источника ошибки и формирования отчетов для устройств платформы, включая процессоры, память, кэши и такие шины, как PCI и PCI Express. Это достигается посредством реализации архитектуры, показанной на рис. 7, основой которой является интерфейс API ядра, к которому обращаются источники ошибок с отчетами о возникших ошибках. API требует предоставления информации об ошибках в общем формате и регистрирует ошибки с помощью подсистемы отслеживания событий для Windows (ETW) (информация о неустранимых ошибках регистрируется после перезагрузки).

Рис. 7. Инфраструктура WHEA для создания отчетов об ошибках

Подсистема ETW появилась в Windows 2000, и использование ETW в архитектуре WHEA облегчает производителям оборудования и поставщикам программного обеспечения разработку управляющих диагностикой устройств приложений, которые работают с событиями WHEA. При возникновении события, грозящего сбоем системы, WHEA гарантирует сохранение записи о неустранимой ошибке в файле аварийной копии памяти, чтобы администраторы могли определить основную причину сбоя.

Другой важной частью архитектуры WHEA является драйвер аппаратных ошибок, специфичных для платформы (PSHED), находящийся в библиотеке %Systemroot%\System32\Pshed.dll. Ядро скомпоновано с PSHED, и драйвер взаимодействует с оборудованием платформы и оборудованием с микропрограммным обеспечением, выполняя, по существу, роль транслирующего слоя между интерфейсом уведомлений об ошибках и интерфейсом API архитектуры WHEA, обеспечивающим отчеты об ошибках. Майкрософт поставляет PSHED для всех архитектур платформы (x86, x64, Itanium), а драйвер PSHED разработан по модели подключаемого модуля, чтобы производители и поставщики оборудования могли переопределять поведения по умолчанию на поведения, характерные для их платформ.