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.
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 |