Partager via


PSHED_PI_GET_ALL_ERROR_SOURCES fonction de rappel (ntddk.h)

Un plug-in PSHED GetAllErrorSources fonction de rappel retourne une liste de structures de descripteur source d’erreur qui représente toutes les sources d’erreur implémentées par la plateforme matérielle.

Syntaxe

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

Paramètres

[in, out, optional] PluginContext

Pointeur vers la zone de contexte spécifiée dans le Context membre de la structure WHEA_PSHED_PLUGIN_REGISTRATION_PACKET lorsque le plug-in PSHED appelé PshedRegisterPlugin fonction pour s’inscrire auprès du PSHED.

[in, out] Count

Pointeur vers une variable typée ULONG. Lorsque la fonction de rappel GetAllErrorSources est appelée, cette variable contient le nombre de structures de descripteur source d’erreur contenues dans la mémoire tampon pointée par le paramètre ErrorSources tel que fourni par le PSHED. Si l'GetAllErrorSources fonction de rappel modifie le nombre de structures de descripteur source d’erreur qui se trouvent dans la mémoire tampon, elle doit définir cette variable sur le nouveau nombre de structures de descripteur source d’erreur avant de retourner.

[in, out] ErrorSrcs

Pointeur vers une mémoire tampon qui reçoit un tableau de structures WHEA_ERROR_SOURCE_DESCRIPTOR qui représente toutes les sources d’erreur implémentées par la plateforme matérielle. Lorsque la fonction de rappel GetAllErrorSources est appelée, cette mémoire tampon contient une liste initiale de structures de descripteur source d’erreur fournies par le PSHED. Le plug-in PSHED peut apporter des modifications à la liste afin qu’il représente avec précision toutes les sources d’erreur implémentées par la plateforme matérielle.

[in, out] Length

Pointeur vers une variable typée ULONG qui contient la taille, en octets, de la mémoire tampon pointée par le paramètre ErrorSources. Si la taille est trop petite pour contenir la liste modifiée des structures de descripteur source d’erreur, la GetAllErrorSources fonction de rappel définit cette variable sur la taille de mémoire tampon requise pour contenir la liste et retourne STATUS_BUFFER_TOO_SMALL.

Valeur de retour

Un plug-in PSHED GetAllErrorSources fonction de rappel retourne l’un des codes NTSTATUS suivants :

Retourner le code Description
STATUS_SUCCESS La liste modifiée des structures de descripteur source d’erreur a été retournée avec succès dans la mémoire tampon pointée par le paramètre ErrorSources.
STATUS_BUFFER_TOO_SMALL La taille de la mémoire tampon pointée par le paramètre ErrorSources est trop petite pour contenir la liste des structures de descripteur source d’erreur.
STATUS_UNSUCCESSFUL Une erreur s’est produite.

Remarques

Un plug-in PSHED qui participe à la découverte de sources d’erreur définit le Callbacks.GetAllErrorSources membre de la structure WHEA_PSHED_PLUGIN_REGISTRATION_PACKET pour pointer vers sa fonction de rappel GetAllErrorSources lorsque le plug-in appelle la fonction PshedRegisterPlugin pour s’inscrire auprès du PSHED. Le plug-in PSHED doit également définir l’indicateur PshedFADiscovery dans le membre FunctionalAreaMask de la structure WHEA_PSHED_PLUGIN_REGISTRATION_PACKET.

Au démarrage du système d’exploitation, le noyau Windows appelle le PSHED pour récupérer la liste des structures de descripteur source d’erreur qui représentent toutes les sources d’erreur implémentées par la plateforme matérielle. Le PSHED crée une liste initiale de structures de descripteur source d’erreur. Si un plug-in PSHED est inscrit pour participer à la découverte de source d’erreur, le PSHED appelle le plug-in PSHED GetAllErrorSources fonction de rappel. Le plug-in PSHED peut apporter n’importe quelle combinaison des modifications suivantes à la liste des structures de descripteur source d’erreur afin qu’elle représente avec précision toutes les sources d’erreur implémentées par la plateforme matérielle.

  • Modifiez le contenu d’une ou plusieurs structures de descripteur source d’erreur.

  • Supprimez une ou plusieurs structures de descripteur source d’erreur de la liste.

  • Ajoutez une ou plusieurs nouvelles structures de descripteur source d’erreur à la liste.

Si le plug-in PSHED doit ajouter une ou plusieurs nouvelles structures de descripteur source d’erreur à la liste et que la taille de la mémoire tampon est trop petite pour inclure les structures supplémentaires, le plug-in PSHED GetAllErrorSources fonction de rappel doit définir la variable pointée par le paramètre Length à la taille de mémoire tampon requise pour contenir la liste avec les structures supplémentaires et retourner STATUS_BUFFER_TOO_SMALL. Dans ce cas, le PSHED alloue une mémoire tampon plus grande, copie la liste des structures de descripteur source d’erreur dans la nouvelle mémoire tampon et appelle le plug-in PSHED GetAllErrorSources fonction de rappel une deuxième fois.

Un plug-in PSHED qui participe à la découverte de source d’erreur peut également implémenter une fonction de rappel facultative GetErrorSourceInfo. Dans ce cas, le plug-in PSHED définit également le membre Callbacks.GetErrorSourceInfo de la structure WHEA_PSHED_PLUGIN_REGISTRATION_PACKET pour qu’elle pointe vers sa fonction de rappel GetErrorSourceInfo lorsqu’elle appelle la fonction PshedRegisterPlugin pour s’inscrire auprès du PSHED.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête ntddk.h (include Ntddk.h)
IRQL IRQL = DISPATCH_LEVEL

Voir aussi

getErrorSourceInfo

PshedRegisterPlugin

WHEA_ERROR_SOURCE_DESCRIPTOR

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET