функция обратного вызова PSHED_PI_READ_ERROR_RECORD (ntddk.h)
Функция обратного вызова ReadErrorRecord подключаемого модуля PSHED считывает запись об ошибке из постоянного хранилища данных системы.
Синтаксис
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
Указатель на область контекста, указанную в элементе Contextструктуры WHEA_PSHED_PLUGIN_REGISTRATION_PACKET , когда подключаемый модуль PSHED вызывал функцию PshedRegisterPlugin для регистрации в PSHED.
[in] Flags
Битовая комбинация флагов OR, влияющих на операцию чтения. В настоящее время флаги не определены.
[in] ErrorRecordId
Идентификатор записи об ошибке, считываемой из постоянного хранилища данных системы. Если в постоянном хранилище данных системы не хранится запись об ошибке, соответствующая этому идентификатору, функция обратного вызова ReadErrorRecord должна возвращать STATUS_OBJECT_NOT_FOUND.
[out] NextErrorRecordId
Указатель на переменную типа ULONGLONG, которая получает идентификатор следующей записи об ошибке, которая хранится в постоянном хранилище данных системы. Если в постоянном хранилище данных системы нет других записей ошибок, в этом параметре должен быть возвращен идентификатор записи об ошибке, которая сейчас считывается.
[in, out] RecordLength
Указатель на переменную типа ULONG, содержащую размер (в байтах) буфера, на который указывает параметр ErrorRecord . Если размер буфера достаточно велик, чтобы содержать считываемую запись об ошибке, функция обратного вызова ReadErrorRecord задает для этой переменной размер в байтах записи об ошибке, возвращаемой в буфере. Однако если размер буфера слишком мал, чтобы содержать считываемую запись об ошибке, функция обратного вызова ReadErrorRecord устанавливает для этой переменной размер в байтах, необходимый для хранения записи об ошибке. В этом случае функция обратного вызова ReadErrorRecord должна возвращать STATUS_BUFFER_TOO_SMALL.
[out] ErrorRecord
Указатель на буфер, который получает запись об ошибке, считываемую из постоянного хранилища данных системы.
Возвращаемое значение
Функция обратного вызова ReadErrorRecord подключаемого модуля PSHED возвращает один из следующих кодов 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 также должен установить флаг PshedFAErrorRecordPersistence в элементе FunctionalAreaMask структуры WHEA_PSHED_PLUGIN_REGISTRATION_PACKET .
Ядро Windows вызывает PSHED для чтения записи об ошибке из постоянного хранилища данных системы после перезапуска системы после неустранимого или неустранимого состояния ошибки. Если подключаемый модуль PSHED зарегистрирован для участия в сохраняемости записей ошибок, PSHED вызывает функцию обратного вызова ReadErrorRecord подключаемого модуля PSHED для выполнения операции чтения. Механизм, используемый для чтения записи об ошибке из постоянного хранилища данных системы, зависит от платформы.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | ntddk.h (включая Ntddk.h) |
IRQL | IRQL = DISPATCH_LEVEL |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по