Fonction PrepareLogArchive (clfsw32.h)
Prépare un journal physique pour l’archivage. La fonction prend une instantané du journal actif actuel, génère un ensemble ordonné de descripteurs d’archive de journaux pour les étendues du journal actif et retourne un contexte d’archive de journal.
En transmettant ce contexte d’archive de journal à GetNextLogArchiveExtent, un client peut itérer dans l’ensemble des étendues d’archive de journaux pour archiver le journal. Vous pouvez également spécifier une plage d’enregistrements à archiver.
Syntaxe
CLFSUSER_API BOOL PrepareLogArchive(
[in] HANDLE hLog,
[in, out] PWSTR pszBaseLogFileName,
[in] ULONG cLen,
[in, optional] const PCLFS_LSN plsnLow,
[in, optional] const PCLFS_LSN plsnHigh,
[out, optional] PULONG pcActualLength,
[out] PULONGLONG poffBaseLogFileData,
[out] PULONGLONG pcbBaseLogFileLength,
[out] PCLFS_LSN plsnBase,
[out] PCLFS_LSN plsnLast,
[out] PCLFS_LSN plsnCurrentArchiveTail,
[out] PCLFS_LOG_ARCHIVE_CONTEXT ppvArchiveContext
);
Paramètres
[in] hLog
Handle du journal obtenu par un appel réussi à CreateLogFile.
Ce handle peut être le handle d’un journal dédié ou multiplexé.
[in, out] pszBaseLogFileName
Pointeur vers une mémoire tampon allouée par l’utilisateur pour recevoir le chemin complet du journal de base.
Si la mémoire tampon n’est pas assez grande, elle contient un chemin de fichier tronqué à la sortie, et la fonction échoue avec un ERROR_BUFFER_OVERFLOW status code.
La longueur du chemin d’accès au fichier est retournée dans la variable pointée vers pcActualLength. Le client peut réessayer une tentative d’appel ayant échoué avec une mémoire tampon de nom suffisamment grande.
[in] cLen
Taille de la mémoire tampon pszBaseLogFileName , en caractères larges.
[in, optional] plsnLow
Pointeur vers une structure de CLFS_LSN qui spécifie le numéro de séquence de journal (LSN) de l’extrémité inférieure de la plage du journal actif où le client de journal a besoin d’informations d’archivage de journal.
Si ce paramètre est omis, l’extrémité inférieure de la plage correspond par défaut au LSN de la queue de l’archive du journal.
[in, optional] plsnHigh
Pointeur vers une structure de CLFS_LSN qui spécifie le LSN de l’extrémité supérieure de la plage du journal actif où le client de journal a besoin d’informations d’archivage de journal.
Si ce paramètre est omis, l’extrémité supérieure de la plage est définie par défaut sur le LSN suivant à écrire dans le journal.
[out, optional] pcActualLength
Pointeur vers une variable qui reçoit la longueur réelle du nom du chemin du journal de base, en caractères.
Si cette valeur est supérieure à cLen, la fonction retourne un ERROR_BUFFER_OVERFLOW status avec un chemin tronqué stocké dans la mémoire tampon pszBaseLogFileName et tous les autres paramètres de sortie qui ne sont pas définis sur des valeurs significatives.
[out] poffBaseLogFileData
Pointeur vers une variable qui reçoit le décalage où les métadonnées commencent dans le journal de base.
L’étendue contiguë dans le journal de base pszBaseLogFileName représente le contenu complet des métadonnées du journal, c’est-à-dire, de poffBaseLogFileData à pcbBaseLogFileLength.
[out] pcbBaseLogFileLength
Pointeur vers une variable qui spécifie la longueur exacte du journal de base, en octets.
[out] plsnBase
Un pointeur vers une structure CLFS_LSN pour recevoir le numéro de séquence de journal de base (LSN) du journal actif.
[out] plsnLast
Un pointeur vers une structure CLFS_LSN pour recevoir le LSN valide le plus élevé dans le journal actif.
[out] plsnCurrentArchiveTail
Pointeur vers une structure de CLFS_LSN pour recevoir le LSN actuel de la queue d’archive du journal.
[out] ppvArchiveContext
Pointeur vers la variable qui reçoit un pointeur vers un contexte d’archive que le système alloue.
Le contexte d’archivage conserve l’état du curseur de l’itérateur d’archivage et le contexte du handle de journal. Le client d’archivage est chargé de libérer le contexte en appelant TerminateLogArchive.
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
Vous devez appeler TerminateLogArchive pour libérer le contexte d’archivage, sinon des fuites de mémoire peuvent se produire.
Tant que vous n’appelez pas TerminateLogArchive, les conteneurs archivés ne peuvent pas être recyclés.
Vous ne pouvez effectuer qu’une seule opération d’archivage à la fois par handle retourné par CreateLogFile .
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 |