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

Voir aussi

CLFS_LSN

Fonctions courantes du système de fichiers journaux

GetNextLogArchiveExtent

ReadLogArchiveMetadata

TerminateLogArchive