Partager via


PSHED_PI_READ_ERROR_RECORD fonction de rappel (ntddk.h)

Un plug-in PSHED ReadErrorRecord fonction de rappel 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 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] 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 persistant 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 typée ULONGLONG qui reçoit l’identificateur de l’enregistrement d’erreur suivant stocké dans le stockage des données persistantes du système. S’il n’existe aucun autre enregistrement d’erreur stocké dans le stockage de données persistants 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 typée 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 ReadErrorRecord fonction de rappel 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, le ReadErrorRecord fonction de rappel 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 persistant du système.

Valeur de retour

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

Retourner le code Description
STATUS_SUCCESS L’enregistrement d’erreur a été lu avec succès à partir du stockage de données persistant du système.
STATUS_OBJECT_NOT_FOUND Il n’existe aucun enregistrement d’erreur dans le stockage de données persistants 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 s’est produite.

Remarques

Un plug-in PSHED qui participe à la persistance des enregistrements d’erreur définit les membres Callbacks.WriteErrorRecord, Callbacks.ReadErrorRecord et Callbacks.ClearErrorRecord membres de la structure WHEA_PSHED_PLUGIN_REGISTRATION_PACKET pour pointer vers son WriteErrorRecord, ReadErrorRecord, et Fonctions de rappel 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 l’indicateur 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 à la suite d’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’erreur, le PSHED appelle le plug-in PSHED ReadErrorRecord fonction de rappel pour effectuer l’opération de lecture. Le mécanisme utilisé pour lire l’enregistrement d’erreur à partir du stockage de données persistants du système est spécifique à la plateforme.

Exigences

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

Voir aussi

ClearErrorRecord

PshedRegisterPlugin

WHEA_ERROR_RECORD

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET

WriteErrorRecord