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 |