Funzione PrepareLogArchive (clfsw32.h)

Prepara un log fisico per l'archiviazione. La funzione accetta uno snapshot del log attivo corrente, compila un set ordinato di descrittori di archivio log per gli extent di log attivi e restituisce un contesto di archivio log.

Passando questo contesto di archivio log a GetNextLogArchiveExtent, un client può scorrere il set di estensioni di archivio log per archiviare il log. È anche possibile specificare un intervallo di record da archiviare.

Sintassi

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
);

Parametri

[in] hLog

Handle per il log ottenuto da una chiamata riuscita a CreateLogFile.

Questo handle può essere l'handle di un log dedicato o multiplexed.

[in, out] pszBaseLogFileName

Puntatore a un buffer allocato dall'utente per ricevere il percorso completo del log di base.

Se il buffer non è abbastanza grande, contiene un percorso file troncato all'uscita e la funzione ha esito negativo con un codice di stato ERROR_BUFFER_OVERFLOW .

La lunghezza del percorso del file viene restituita nella variabile a cui fa riferimento pcActualLength. Il client può riprovare una chiamata non riuscita con un buffer di nomi abbastanza grande.

[in] cLen

Dimensioni del buffer pszBaseLogFileName , in caratteri wide.

[in, optional] plsnLow

Puntatore a una struttura CLFS_LSN che specifica il numero di sequenza di log (LSN) dell'intervallo inferiore dell'intervallo del log attivo in cui il client di log necessita di informazioni di archiviazione log.

Se questo parametro viene omesso, la fine bassa dell'intervallo viene predefinita per l'LSN della coda dell'archivio di log.

[in, optional] plsnHigh

Puntatore a una struttura CLFS_LSN che specifica l'LSN dell'intervallo superiore dell'intervallo del log attivo in cui il client di log richiede informazioni di archiviazione dei log.

Se questo parametro viene omesso, la fine superiore dell'intervallo viene predefinita per la scrittura nel log successivo.

[out, optional] pcActualLength

Puntatore a una variabile che riceve la lunghezza effettiva del nome del percorso del log di base, in caratteri.

Se questo valore è maggiore di cLen, la funzione restituisce uno stato ERROR_BUFFER_OVERFLOW con un percorso troncato archiviato nel buffer pszBaseLogFileName e tutti gli altri parametri out che non sono impostati su valori significativi.

[out] poffBaseLogFileData

Puntatore a una variabile che riceve l'offset in cui iniziano i metadati nel log di base.

L'estensione contigua nel log di base pszBaseLogFileName rappresenta il contenuto completo dei metadati del log, ovvero da poffBaseLogFileData a pcbBaseLogFileLength.

[out] pcbBaseLogFileLength

Puntatore a una variabile che specifica la lunghezza esatta del log di base, in byte.

[out] plsnBase

Puntatore a una struttura CLFS_LSN per ricevere il numero di sequenza di log di base (LSN) del log attivo.

[out] plsnLast

Puntatore a una struttura CLFS_LSN per ricevere l'LSN più alto valido nel log attivo.

[out] plsnCurrentArchiveTail

Puntatore a una struttura CLFS_LSN per ricevere l'LSN corrente della parte finale dell'archivio del log.

[out] ppvArchiveContext

Puntatore alla variabile che riceve un puntatore a un contesto di archiviazione allocato dal sistema.

Il contesto di archiviazione mantiene lo stato del cursore dell'iteratore di archiviazione e del contesto di handle di log. Il client di archiviazione è responsabile del rilascio del contesto chiamando TerminateLogArchive.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError. L'elenco seguente identifica i possibili codici di errore:

Commenti

È necessario chiamare TerminateLogArchive per liberare il contesto di archiviazione o le perdite di memoria possono verificarsi.

Fino a quando non si chiama TerminateLogArchive, i contenitori archiviati non possono essere riciclati.

È possibile eseguire un'operazione di archiviazione solo alla volta per handle restituito da CreateLogFile .

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2003 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione clfsw32.h
Libreria Clfsw32.lib
DLL Clfsw32.dll

Vedi anche

CLFS_LSN

Funzioni comuni del file system di log

GetNextLogArchiveExtent

ReadLogArchiveMetadata

TerminateLogArchive