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

La función de devolución de llamada GetAllErrorSources de un complemento PSHED devuelve una lista de estructuras de descriptores de origen de error que representa todos los orígenes de error implementados por la plataforma de hardware.

Sintaxis

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
)
{...}

Parámetros

[in, out, optional] PluginContext

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

[in, out] Count

Puntero a una variable con tipo ULONG. Cuando se llama a la función de devolución de llamada GetAllErrorSources , esta variable contiene el número de estructuras descriptores de origen de error contenidas en el búfer al que apunta el parámetro ErrorSources , tal y como lo proporciona el PSHED. Si la función de devolución de llamada GetAllErrorSources cambia el número de estructuras descriptores de origen de error que se encuentran en el búfer, debe establecer esta variable en el nuevo número de estructuras descriptores de origen de error antes de que devuelva.

[in, out] ErrorSrcs

Puntero a un búfer que recibe una matriz de estructuras de WHEA_ERROR_SOURCE_DESCRIPTOR que representa todos los orígenes de error implementados por la plataforma de hardware. Cuando se llama a la función de devolución de llamada GetAllErrorSources , este búfer contiene una lista inicial de estructuras de descriptores de origen de error proporcionadas por PSHED. El complemento PSHED puede realizar cambios en la lista para que represente con precisión todos los orígenes de errores implementados por la plataforma de hardware.

[in, out] Length

Puntero a una variable con tipo ULONG que contiene el tamaño, en bytes, del búfer al que apunta el parámetro ErrorSources . Si el tamaño es demasiado pequeño para contener la lista modificada de estructuras de descriptor de origen de error, la función de devolución de llamada GetAllErrorSources establece esta variable en el tamaño del búfer necesario para contener la lista y devuelve STATUS_BUFFER_TOO_SMALL.

Valor devuelto

Una función de devolución de llamada GetAllErrorSources del complemento PSHED devuelve uno de los siguientes códigos NTSTATUS:

Código devuelto Descripción
STATUS_SUCCESS La lista modificada de estructuras de descriptor de origen de error se devolvió correctamente en el búfer al que apunta el parámetro ErrorSources .
STATUS_BUFFER_TOO_SMALL El tamaño del búfer al que apunta el parámetro ErrorSources es demasiado pequeño para contener la lista de estructuras descriptores de origen de error.
STATUS_UNSUCCESSFUL Se produjo un error.

Comentarios

Un complemento PSHED que participa en la detección de origen de errores establece el miembro Callbacks.GetAllErrorSources de la estructura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET para que apunte a su función de devolución de llamada GetAllErrorSources cuando el complemento llama a la función PshedRegisterPlugin para registrarse en el PSHED. El complemento PSHED también debe establecer la marca PshedFADiscovery en el miembro FunctionalAreaMask de la estructura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET .

Cuando se inicia el sistema operativo, el kernel de Windows llama al PSHED para recuperar la lista de estructuras descriptores de origen de error que representa todos los orígenes de error implementados por la plataforma de hardware. PSHED crea una lista inicial de estructuras descriptores de origen de error. Si se registra un complemento PSHED para participar en la detección de origen de errores, PSHED llama a la función de devolución de llamada GetAllErrorSources del complemento PSHED. El complemento PSHED puede realizar cualquier combinación de los siguientes cambios en la lista de estructuras descriptores de origen de errores para que represente con precisión todos los orígenes de errores implementados por la plataforma de hardware.

  • Modifique el contenido de una o varias de las estructuras del descriptor de origen de error.

  • Quite una o varias de las estructuras descriptores de origen de error de la lista.

  • Agregue una o varias estructuras de descriptor de origen de error nuevas a la lista.

Si el complemento PSHED debe agregar una o varias estructuras de descriptor de origen de error nuevas a la lista y el tamaño del búfer es demasiado pequeño para incluir las estructuras adicionales, la función de devolución de llamada GetAllErrorSources del complemento PSHED debe establecer la variable a la que apunta el parámetro Length en el tamaño del búfer necesario para contener la lista con las estructuras adicionales y devolver STATUS_BUFFER_TOO_SMALL. En esta situación, el PSHED asignará un búfer mayor, copiará la lista de estructuras de descriptor de origen de errores en el nuevo búfer y llamará a la función de devolución de llamada GetAllErrorSources del complemento PSHED una segunda vez.

Un complemento PSHED que participa en la detección de origen de errores también puede implementar una función opcional de devolución de llamada GetErrorSourceInfo . En esta situación, el complemento PSHED también establece el miembro Callbacks.GetErrorSourceInfo de la estructura WHEA_PSHED_PLUGIN_REGISTRATION_PACKET para que apunte a su función de devolución de llamada GetErrorSourceInfo cuando llama a la función PshedRegisterPlugin para registrarse con el PSHED.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado ntddk.h (incluya Ntddk.h)
IRQL IRQL = DISPATCH_LEVEL

Consulte también

GetErrorSourceInfo

PshedRegisterPlugin

WHEA_ERROR_SOURCE_DESCRIPTOR

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET