Compartir a través de


PSHED_PI_RETRIEVE_ERROR_INFO función de devolución de llamada (ntddk.h)

Un complemento PSHED RetrieveErrorInfo función de devolución de llamada recupera información de error específica de la plataforma sobre un error de hardware que se ha producido.

Sintaxis

PSHED_PI_RETRIEVE_ERROR_INFO PshedPiRetrieveErrorInfo;

NTSTATUS PshedPiRetrieveErrorInfo(
  [in, out, optional] PVOID PluginContext,
  [in]                PWHEA_ERROR_SOURCE_DESCRIPTOR ErrorSource,
  [in]                ULONGLONG BufferLength,
  [in, out]           PWHEA_ERROR_PACKET Packet
)
{...}

Parámetros

[in, out, optional] PluginContext

Puntero al área de contexto que se especificó en el miembro Context de la estructura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET cuando el complemento PSHED llamó a la función PshedRegisterPlugin para registrarse en el PSHED.

[in] ErrorSource

Puntero a una estructura de WHEA_ERROR_SOURCE_DESCRIPTOR que describe el origen del error que informó del error de hardware.

[in] BufferLength

Tamaño, en bytes, del búfer al que apunta el parámetro Packet.

[in, out] Packet

Puntero a una estructura de WHEA_ERROR_PACKET que describe el paquete de error de hardware para el error de hardware.

Valor devuelto

Un complemento PSHED RetrieveErrorInfo función de devolución de llamada devuelve uno de los siguientes códigos NTSTATUS:

Código devuelto Descripción
STATUS_SUCCESS El paquete de error de hardware se actualizó correctamente con cualquier información de error específica de la plataforma.
STATUS_BUFFER_TOO_SMALL El tamaño del búfer al que apunta el parámetro Packet especificado por el parámetro BufferLength es demasiado pequeño para contener el paquete de error de hardware si se actualiza con la información de error específica de la plataforma.
STATUS_NOT_SUPPORTED El complemento PSHED no admite el origen de error especificado.
STATUS_UNSUCCESSFUL Error.

Observaciones

Un complemento PSHED que participa en la recuperación de información de error establece el Callbacks.RetrieveErrorInfo, Callbacks.FinalizeErrorRecordy Callbacks.ClearErrorStatus miembros de la estructura de WHEA_PSHED_PLUGIN_REGISTRATION_PACKET que apuntar a su RetrieveErrorInfo, FinalizeErrorRecordy ClearErrorStatus funciones de devolución de llamada cuando el complemento llama a la función PshedRegisterPlugin para registrarse en el PSHED. El complemento PSHED también debe establecer la marca PshedFAErrorInfoRetrie val en el miembro FunctionalAreaMask de la estructura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET.

Cada controlador de errores de hardware de bajo nivel (LLHEH) llama al PSHED para recuperar cualquier información de error específica de la plataforma sobre un error de hardware que se ha producido. Si se registra un complemento PSHED para participar en la recuperación de información de error, PSHED llama al complemento PSHED RetrieveErrorInfo función de devolución de llamada para que pueda actualizar el paquete de errores de hardware con cualquier información de error específica de la plataforma. El complemento PSHED puede modificar el contenido existente del paquete de error de hardware, así como agregar información complementaria al paquete de error de hardware. La información adicional se agrega a un paquete de error de hardware a partir del desplazamiento especificado por el RawDataOffset miembro de la estructura de WHEA_ERROR_PACKET.

Un complemento PSHED debe asegurarse de que no agrega información complementaria más allá del final del paquete de error de hardware. La cantidad de memoria que un LLHEH asigna para un búfer para que contenga un paquete de error de hardware determinado se calcula a partir de la maxRawDataLength miembro de la estructura de WHEA_ERROR_SOURCE_DESCRIPTOR que describe el origen del error. Si un complemento PSHED requiere espacio adicional en el búfer para contener la información complementaria, debe participar en la detección del origen de errores y aumentar el valor en el MaxRawDataLength miembro de la estructura de WHEA_ERROR_SOURCE_DESCRIPTOR para cada origen de error según corresponda para tener en cuenta cualquier información complementaria.

Para todos los orígenes de error, el complemento PSHED RetrieveErrorInfo función de devolución de llamada se llama al mínimo IRQL de DISPATCH_LEVEL. El complemento PSHED RetrieveErrorInfo función de devolución de llamada solo debe realizar operaciones y realizar llamadas a otras funciones permitidas en ese nivel alto de IRQL.

Una tarea importante de un complemento PSHED RetrieveErrorInfo función de devolución de llamada es asegurarse de que la gravedad de la condición de error especificada por el miembro ErrorSeverity del WHEA_ERROR_PACKET es adecuado. Por ejemplo, si el nivel de gravedad de la condición de error se notifica como WheaErrSevFatal por LLHEH, pero el complemento PSHED admite un mecanismo de recuperación para la condición de error determinada que se informó, el complemento PSHED puede cambiar el nivel de gravedad a WheaErrSevRecoverable para que el sistema operativo intente recuperarse del error. Del mismo modo, si el nivel de gravedad de la condición de error se notifica como WheaErrSevRecoverable por el LLHEH, pero el complemento PSHED reconoce que intentar recuperar la condición de error determinada que se informó solo provocaría problemas adicionales, el complemento PSHED puede cambiar el nivel de gravedad a WheaErrSevFatal para que el sistema operativo no intente recuperarse del error.

Para los errores de hardware corregidos, un complemento PSHED debe recuperar toda la información de estado de error que requiere para procesar la condición de error desde su RetrieveErrorInfo función de devolución de llamada, ya que no se garantiza que el resto del procesamiento del error de hardware se sincronice con el LLHEH.

Requisitos

Requisito Valor
de la plataforma de destino de Escritorio
encabezado de ntddk.h (incluya Ntddk.h)
irQL IRQL >= DISPATCH_LEVEL

Consulte también

ClearErrorStatus

FinalizeErrorRecord

pshedRegisterPlugin

WHEA_ERROR_PACKET

WHEA_ERROR_SOURCE_DESCRIPTOR

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET