Fonction ReadPreviousLogRestartArea (clfsw32.h)

Lit la zone de redémarrage du journal précédente relative à l’enregistrement de redémarrage actuel spécifié dans le contexte de lecture, pvReadContext. Ce contexte de lecture est celui créé précédemment par un appel à ReadLogRestartArea.

Syntaxe

CLFSUSER_API BOOL ReadPreviousLogRestartArea(
  [in]                PVOID        pvReadContext,
  [out]               PVOID        *ppvRestartBuffer,
  [out]               PULONG       pcbRestartBuffer,
  [out]               PCLFS_LSN    plsnRestart,
  [in, out, optional] LPOVERLAPPED pOverlapped
);

Paramètres

[in] pvReadContext

Pointeur vers un contexte de lecture alloué par le système que ReadLogRestartArea retourne.

Même lorsque ces fonctions retournent ERROR_IO_PENDING, elles retournent toujours un pointeur vers un contexte de lecture valide. Pour plus d’informations sur l’achèvement asynchrone, consultez la section Remarques de cette rubrique.

[out] ppvRestartBuffer

Pointeur vers une variable qui reçoit un pointeur vers les données de redémarrage.

[out] pcbRestartBuffer

Pointeur vers une variable qui reçoit la taille des données de redémarrage à *ppvRestartBuffer, en octets.

[out] plsnRestart

Pointeur vers une structure de CLFS_LSN qui reçoit le numéro de séquence de journal (LSN) de la zone de redémarrage retournée par cette fonction.

[in, out, optional] pOverlapped

Pointeur vers une structure CHEVAUCHEMENT requise pour une opération asynchrone.

Ce paramètre peut avoir la valeur NULL si l’opération asynchrone n’est pas utilisée.

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

La liste suivante identifie les codes d’erreur possibles :

Remarques

Le message d’erreur ERROR_LOG_BLOCK_INCOMPLETE est retourné si la taille du bloc de journal spécifiée par CreateLogMarshallingArea n’est pas suffisamment grande pour contenir un bloc de journal complet.

Si ReadPreviousLogRestartArea échoue avec un code d’erreur de ERROR_IO_PENDING, un pointeur vers un contexte de lecture valide est placé dans la variable vers laquelle pointe le paramètre ppvReadContext .

Pour terminer la copie d’enregistrement de journal, le client doit d’abord synchroniser son exécution avec l’achèvement différé de l’opération d’E/S qui se chevauche à l’aide de GetOverlappedResult ou de l’une des fonctions d’attente de synchronisation. Pour plus d’informations, consultez Synchronisation et entrées et sorties qui se chevauchent.

Une fois ReadPreviousLogRestartArea terminé de manière asynchrone, la zone de redémarrage demandée est lue à partir du disque, mais un pointeur valide vers celle-ci n’est pas placé dans *ppvRestartBuffer.

Pour obtenir un pointeur valide, le client doit appeler ReadPreviousLogRestartArea une deuxième fois.

Note Les contextes de lecture CLFS (Common Log File System) ne sont pas thread-safe. Ils ne doivent pas être utilisés par plusieurs threads à la fois.

Les contextes de lecture CLFS ne doivent pas être passés dans plusieurs lectures asynchrones à la fois, sinon la fonction échoue avec ERROR_READ.

 

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête clfsw32.h
Bibliothèque Clfsw32.lib
DLL Clfsw32.dll

Voir aussi

CLFS_LSN

Fonctions courantes du système de fichiers journaux

CreateLogFile

OVERLAPPED

ReadLogRestartArea

Synchronisation et chevauchement des entrées et sorties