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 |