PSHED_PI_READ_ERROR_RECORD fonction de rappel (ntddk.h)

La fonction de rappel ReadErrorRecord d’un plug-in PSHED lit un enregistrement d’erreur à partir du stockage de données persistant du système.

Syntaxe

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

Paramètres

[in, out, optional] PluginContext

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

[in] Flags

Combinaison or’ed de bits d’indicateurs qui affectent l’opération de lecture. Aucun indicateur n’est actuellement défini.

[in] ErrorRecordId

Identificateur de l’enregistrement d’erreur à lire à partir du stockage de données persistantes du système. S’il n’existe pas d’enregistrement d’erreur stocké dans le stockage de données persistant du système qui correspond à cet identificateur, la fonction de rappel ReadErrorRecord doit retourner STATUS_OBJECT_NOT_FOUND.

[out] NextErrorRecordId

Pointeur vers une variable de type ULONGLONG qui reçoit l’identificateur du prochain enregistrement d’erreur stocké dans le stockage de données persistantes du système. Si aucun autre enregistrement d’erreur n’est stocké dans le stockage de données persistantes du système, l’identificateur de l’enregistrement d’erreur en cours de lecture doit être retourné dans ce paramètre.

[in, out] RecordLength

Pointeur vers une variable de type ULONG qui contient la taille, en octets, de la mémoire tampon pointée par le paramètre ErrorRecord . Si la taille de la mémoire tampon est suffisamment grande pour contenir l’enregistrement d’erreur en cours de lecture, la fonction de rappel ReadErrorRecord définit cette variable sur la taille, en octets, de l’enregistrement d’erreur retourné dans la mémoire tampon. Toutefois, si la taille de la mémoire tampon est trop petite pour contenir l’enregistrement d’erreur en cours de lecture, la fonction de rappel ReadErrorRecord définit cette variable sur la taille, en octets, requise pour contenir l’enregistrement d’erreur. Dans ce cas, la fonction de rappel ReadErrorRecord doit retourner STATUS_BUFFER_TOO_SMALL.

[out] ErrorRecord

Pointeur vers une mémoire tampon qui reçoit l’enregistrement d’erreur lu à partir du stockage de données persistantes du système.

Valeur retournée

La fonction de rappel ReadErrorRecord d’un plug-in PSHED retourne l’un des codes NTSTATUS suivants :

Code de retour Description
STATUS_SUCCESS L’enregistrement d’erreur a été correctement lu à partir du stockage de données persistantes du système.
STATUS_OBJECT_NOT_FOUND Il n’existe aucun enregistrement d’erreur dans le stockage de données persistant du système qui correspond à l’identificateur spécifié dans le paramètre ErrorRecordId .
STATUS_BUFFER_TOO_SMALL La taille de la mémoire tampon est trop petite pour contenir l’enregistrement d’erreur en cours de lecture.
STATUS_UNSUCCESSFUL Une erreur est survenue.

Remarques

Un plug-in PSHED qui participe à la persistance des enregistrements d’erreurs définit les membres Callbacks.WriteErrorRecord, Callbacks.ReadErrorRecord et Callbacks.ClearErrorRecord de la structure WHEA_PSHED_PLUGIN_REGISTRATION_PACKET pour pointer vers ses fonctions de rappel WriteErrorRecord, ReadErrorRecord et ClearErrorRecord 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 PshedFAErrorRecordPersistence dans le membre FunctionalAreaMask de la structure WHEA_PSHED_PLUGIN_REGISTRATION_PACKET .

Le noyau Windows appelle le PSHED pour lire un enregistrement d’erreur à partir du stockage de données persistant du système après le redémarrage du système suite à une condition d’erreur irrécupérable ou irrécupérable. Si un plug-in PSHED est inscrit pour participer à la persistance des enregistrements d’erreurs, le PSHED appelle la fonction de rappel ReadErrorRecord du plug-in PSHED pour effectuer l’opération de lecture. Le mécanisme utilisé pour lire l’enregistrement d’erreur à partir du stockage de données persistantes du système est propre à la plateforme.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête ntddk.h (inclure Ntddk.h)
IRQL IRQL = DISPATCH_LEVEL

Voir aussi

ClearErrorRecord

PshedRegisterPlugin

WHEA_ERROR_RECORD

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET

WriteErrorRecord