Fonction ReadLogRestartArea (clfsw32.h)
Retourne la dernière zone de redémarrage qui a été correctement écrite dans le journal associé à la zone de marshaling de WriteLogRestartArea. La fonction retourne également un contexte de lecture qui permet à l’appelant d’effectuer un curseur vers l’arrière ou vers l’avant via un journal à partir de l’enregistrement de redémarrage.
Ce contexte de lecture est utile lors de l’analyse des zones de redémarrage précédentes avant l’actuelle en appelant ReadPreviousLogRestartArea.
Syntaxe
CLFSUSER_API BOOL ReadLogRestartArea(
[in] PVOID pvMarshal,
[out] PVOID *ppvRestartBuffer,
[out] PULONG pcbRestartBuffer,
[out] PCLFS_LSN plsn,
[out] PVOID *ppvContext,
[in, out, optional] LPOVERLAPPED pOverlapped
);
Paramètres
[in] pvMarshal
Pointeur vers un contexte de marshaling alloué à l’aide de la fonction CreateLogMarshallingArea .
[out] ppvRestartBuffer
Pointeur vers une variable qui reçoit un pointeur vers les données de redémarrage dans le bloc d’E/S du journal.
[out] pcbRestartBuffer
Pointeur vers une variable qui reçoit la quantité de données de redémarrage.
[out] plsn
Pointeur vers une structure CLFS_LSN qui reçoit le numéro séquentiel du journal (LSN) de la zone de redémarrage.
[out] ppvContext
Pointeur vers une variable qui reçoit un pointeur vers un contexte de lecture alloué par le système lorsqu’une lecture réussit.
Si la fonction diffère l’achèvement d’une opération, elle retourne un pointeur de contexte de lecture valide et une erreur status de ERROR_IO_PENDING. Pour toutes les autres erreurs, le pointeur de contexte de lecture est NULL. Pour plus d’informations sur la gestion de l’achèvement différé de la fonction, consultez la section Remarques de cette rubrique.
Après avoir obtenu tous les enregistrements de journal demandés, le client doit passer le contexte de lecture à TerminateReadLog pour libérer la mémoire associée. Si vous ne le faites pas, cela entraîne une fuite de mémoire.
[in, out, optional] pOverlapped
Pointeur vers une structure CHEVAUCHEMENT requise pour l’opération asynchrone.
Ce paramètre peut être NULL si aucune opération asynchrone n’est 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 de bloc de journal spécifiée par CreateLogMarshallingArea n’est pas suffisamment grande pour contenir un bloc de journal complet.
En règle générale, ReadLogRestartArea est utilisé uniquement pendant le redémarrage du client, soit après un plantage, soit après un arrêt normal.
S’il n’y a pas de zone de redémarrage dans le journal, ReadLogRestartArea échoue avec le code ERROR_LOG_NO_RESTART.
Si ReadLogRestartArea échoue avec un code d’erreur 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 des enregistrements 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 en appelant GetOverlappedResult, ou l’une des fonctions d’attente de synchronisation. Pour plus d’informations, consultez Synchronisation et entrée et sortie qui se chevauchent.
Une fois ReadLogRestartArea terminé de manière asynchrone, la zone de redémarrage demandée est lue à partir du disque, mais aucun pointeur valide n’est placé dans *ppvRestartBuffer.
Pour obtenir un pointeur valide, le client doit appeler ReadPreviousLogRestartArea, qui transmet le pointeur de contexte de lecture retourné par ReadLogRestartArea.
Les contextes de lecture CLFS ne doivent pas être passés dans plusieurs lectures asynchrones à la fois, sinon la fonction échoue avec ERROR_BUSY.
Configuration requise
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
Fonctions courantes du système de fichiers journaux