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


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

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

Синтаксис

PSHED_PI_READ_ERROR_RECORD PshedPiReadErrorRecord;

NTSTATUS PshedPiReadErrorRecord(
  [in, out, optional] PVOID PluginContext,
  [in]                ULONG Flags,
  [in]                ULONGLONG ErrorRecordId,
  [out]               PULONGLONG NextErrorRecordId,
  [in, out]           PULONG RecordLength,
  [out]               PWHEA_ERROR_RECORD ErrorRecord
)
{...}

Параметры

[in, out, optional] PluginContext

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

[in] Flags

Битовая комбинация флагов ИЛИ, влияющих на операцию чтения. В настоящее время флаги не определены.

[in] ErrorRecordId

Идентификатор записи об ошибке, считываемой из постоянного хранилища данных системы. Если в постоянном хранилище данных системы нет записи об ошибке, которая соответствует этому идентификатору, функция обратного вызова ReadErrorRecord должна возвращать STATUS_OBJECT_NOT_FOUND.

[out] NextErrorRecordId

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

[in, out] RecordLength

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

[out] ErrorRecord

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

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

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

Возвращаемый код Описание
STATUS_SUCCESS Запись об ошибке успешно считывалась из постоянного хранилища данных системы.
STATUS_OBJECT_NOT_FOUND В постоянном хранилище данных системы отсутствует запись об ошибке, которая соответствует идентификатору, указанному в параметре ErrorRecordId.
STATUS_BUFFER_TOO_SMALL Размер буфера слишком мал, чтобы содержать запись об ошибке, считываемую.
STATUS_UNSUCCESSFUL Произошла ошибка.

Замечания

Подключаемый модуль PSHED, который участвует в сохраняемости ошибок, задает callbacks.WriteErrorRecord, Callbacks.ReadErrorRecord и Callbacks.ClearErrorRecord элементы структуры WHEA_PSHED_PLUGIN_REGISTRATION_PACKET, чтобы указать на функция WriteErrorRecord, ReadErrorRecord, и ClearErrorRecord функции обратного вызова, когда подключаемый модуль вызывает функцию PshedRegisterPlugin для регистрации в PSHED. Подключаемый модуль PSHED также должен задать флаг PshedFAErrorRecordPer sistence в элементе FunctionalAreaMask структуры WHEA_PSHED_PLUGIN_REGISTRATION_PACKET.

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

Требования

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

См. также

ClearErrorRecord

PshedRegisterPlugin

WHEA_ERROR_RECORD

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET

WriteErrorRecord