Поделиться через


функция обратного вызова PSHED_PI_GET_ALL_ERROR_SOURCES (ntddk.h)

Функция обратного вызова PSHED GetAllErrorSources возвращает список структур дескриптора источника ошибок, представляющих все источники ошибок, реализованные аппаратной платформой.

Синтаксис

PSHED_PI_GET_ALL_ERROR_SOURCES PshedPiGetAllErrorSources;

NTSTATUS PshedPiGetAllErrorSources(
  [in, out, optional] PVOID PluginContext,
  [in, out]           PULONG Count,
  [in, out]           PWHEA_ERROR_SOURCE_DESCRIPTOR *ErrorSrcs,
  [in, out]           PULONG Length
)
{...}

Параметры

[in, out, optional] PluginContext

Указатель на область контекста, указанную в элементе WHEA_PSHED_PLUGIN_REGISTRATION_PACKET контекста контексте, когда подключаемый модуль PSHED вызывает функцию PshedRegisterPlugin для регистрации в PSHED.

[in, out] Count

Указатель на переменную типа ULONG. При вызове функции обратного вызова GetAllErrorSources эта переменная содержит количество структур дескриптора источника ошибок, содержащихся в буфере, на которые указывает параметр ErrorSources, как указано PSHED. Если функция обратного вызова GetAllErrorSources изменяет количество структур дескрипторов источника ошибок, которые находятся в буфере, перед возвратом необходимо задать для этой переменной новое число структур дескриптора источника ошибок.

[in, out] ErrorSrcs

Указатель на буфер, получающий массив WHEA_ERROR_SOURCE_DESCRIPTOR структур, представляющих все источники ошибок, реализованные аппаратной платформой. При вызове функции обратного вызова GetAllErrorSource s этот буфер содержит начальный список структур дескриптора источника ошибок, предоставляемых PSHED. Подключаемый модуль PSHED может вносить изменения в список, чтобы он точно представлял все источники ошибок, реализованные аппаратной платформой.

[in, out] Length

Указатель на переменную типа ULONG, содержащую размер буфера в байтах, на который указывает параметр ErrorSources. Если размер слишком мал, чтобы содержать измененный список структур дескриптора источника ошибок, GetAllErrorSources функция обратного вызова устанавливает эту переменную в размер буфера, который требуется для хранения списка и возвращает STATUS_BUFFER_TOO_SMALL.

Возвращаемое значение

Функция обратного вызова PSHED GetAllErrorSources возвращает один из следующих кодов NTSTATUS:

Возвращаемый код Описание
STATUS_SUCCESS Измененный список структур дескриптора источника ошибок был успешно возвращен в буфере, на который указывает параметр ErrorSources.
STATUS_BUFFER_TOO_SMALL Размер буфера, на который указывает параметр ErrorSources, слишком мал, чтобы содержать список структур дескриптора источника ошибок.
STATUS_UNSUCCESSFUL Произошла ошибка.

Замечания

Подключаемый модуль PSHED, который участвует в обнаружении источника ошибок, задает функцию обратного вызова .GetAllErrorSources член структуры WHEA_PSHED_PLUGIN_REGISTRATION_PACKET, чтобы указать на ее функцию обратного вызова GetAllErrorSources, когда подключаемый модуль вызывает функцию PshedRegisterPlugin для регистрации в PSHED. Подключаемый модуль PSHED также должен задать флаг PshedFADiscovery в элементе FunctionalAreaMask структуры WHEA_PSHED_PLUGIN_REGISTRATION_PACKET.

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

  • Измените содержимое одной или нескольких структур дескриптора источника ошибки.

  • Удалите одну или несколько структур дескриптора источника ошибок из списка.

  • Добавьте в список одну или несколько новых структур дескрипторов источника ошибок.

Если подключаемый модуль PSHED должен добавить в список одну или несколько новых структур дескрипторов источника ошибок, а размер буфера слишком мал, чтобы включить дополнительные структуры, то подключаемый модуль PSHED GetAllErrorSources функцию обратного вызова должен задать переменную, указанную параметром Length в размер буфера, который требуется для хранения списка с дополнительными структурами и возвращать STATUS_BUFFER_TOO_SMALL. В этой ситуации PSHED выделяет больший буфер, копирует список структур дескриптора источника ошибок в новый буфер и вызывает функцию обратного вызова PSHED GetAllErrorSources функцию обратного вызова.

Подключаемый модуль PSHED, участвующий в обнаружении источника ошибок, также может реализовать необязательный функцию обратного вызова GetErrorSourceInfo. В этой ситуации подключаемый модуль PSHED также задает функцию обратного вызова .GetErrorSourceInfo член структуры WHEA_PSHED_PLUGIN_REGISTRATION_PACKET, чтобы указать на ее функцию обратного вызова GetErrorSourceInfo при вызове функции PshedRegisterPlugin для регистрации в PSHED.

Требования

Требование Ценность
целевая платформа Настольный
заголовка ntddk.h (include Ntddk.h)
IRQL IRQL = DISPATCH_LEVEL

См. также

GetErrorSourceInfo

PshedRegisterPlugin

WHEA_ERROR_SOURCE_DESCRIPTOR

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET