ClfsReadLogRecord, fonction (wdm.h)

La routine ClfsReadLogRecord lit un enregistrement cible dans un flux CLFS et retourne un contexte de lecture que l’appelant peut utiliser pour lire les enregistrements qui le précèdent ou le suivent dans le flux.

Syntaxe

CLFSUSER_API NTSTATUS ClfsReadLogRecord(
  [in]      PVOID             pvMarshalContext,
  [in, out] PCLFS_LSN         plsnFirst,
  [in]      CLFS_CONTEXT_MODE peContextMode,
  [out]     PVOID             *ppvReadBuffer,
  [out]     PULONG            pcbReadBuffer,
  [out]     PCLFS_RECORD_TYPE peRecordType,
  [out]     PCLFS_LSN         plsnUndoNext,
  [out]     PCLFS_LSN         plsnPrevious,
  [out]     PVOID             *ppvReadContext
);

Paramètres

[in] pvMarshalContext

Pointeur vers un contexte opaque qui représente une zone de marshaling. L’appelant a précédemment obtenu ce pointeur en appelant ClfsCreateMarshallingArea.

[in, out] plsnFirst

Pointeur vers une structure CLFS_LSN qui fournit le LSN de l’enregistrement cible dans le journal.

[in] peContextMode

Valeur de l’énumération CLFS_CONTEXT_MODE qui spécifie le mode initial (ClfsContextUndoNext, ClfsContextPrevious ou ClfsContextForward) du contexte de lecture retourné dans ppvReadContext.

[out] ppvReadBuffer

Pointeur vers une variable qui reçoit un pointeur vers la mémoire tampon de données de l’enregistrement cible.

[out] pcbReadBuffer

Pointeur vers une variable de type ULONG qui reçoit la taille, en octets, de la mémoire tampon pointée par *ppvReadBuffer. Il s’agit de la longueur de la mémoire tampon de données de l’enregistrement cible.

[out] peRecordType

Pointeur vers une variable de type CLFS_RECORD_TYPE qui reçoit l’une des valeurs suivantes.

Valeur Signification
ClfsDataRecord L’enregistrement cible est un enregistrement de données.
ClfsRestartRecord L’enregistrement cible est un enregistrement de redémarrage.

[out] plsnUndoNext

Pointeur vers une structure CLFS_LSN qui reçoit le numéro LSN d’annulation de l’enregistrement cible.

[out] plsnPrevious

Pointeur vers une structure CLFS_LSN qui reçoit le LSN précédent de l’enregistrement cible.

[out] ppvReadContext

Pointeur vers une variable qui reçoit un pointeur vers un contexte de lecture opaque. Le client transmet à plusieurs reprises ce contexte à ClfsReadNextLogRecord pour lire les enregistrements restants dans une séquence. Une fois que le client a lu tous les enregistrements de la séquence, il appelle ClfsTerminateReadLog pour libérer le contexte de lecture.

Valeur retournée

ClfsReadLogRecord retourne STATUS_SUCCESS si elle réussit ; sinon, elle retourne l’un des codes d’erreur définis dans Ntstatus.h.

Remarques

Vous devez appeler ClfsTerminateReadLog lorsque vous avez terminé d’utiliser le contexte de lecture afin d’éviter une fuite de mémoire.

Pour obtenir une explication des concepts et de la terminologie CLFS, consultez Common Log File System.

Pour plus d’informations sur la lecture d’enregistrements à partir de flux CLFS, consultez Lecture d’enregistrements de données à partir d’un Stream CLFS et Lecture des enregistrements de redémarrage à partir d’un Stream CLFS.

Les contextes de lecture ne sont pas thread-safe. Les clients sont responsables de la sérialisation de l’accès aux contextes de lecture.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows Server 2003 R2, Windows Vista et versions ultérieures de Windows.
Plateforme cible Desktop (Expérience utilisateur)
En-tête wdm.h (include Wdm.h)
Bibliothèque Clfs.lib
DLL Clfs.sys
IRQL <= APC_LEVEL

Voir aussi

ClfsReadNextLogRecord

ClfsTerminateReadLog