Função PrepareLogArchive (clfsw32.h)
Prepara um log físico para arquivamento. A função usa uma instantâneo do log ativo atual, cria um conjunto ordenado de descritores de arquivo de log para as extensões de log ativas e retorna um contexto de arquivo morto de log.
Ao passar esse contexto de arquivo de log para GetNextLogArchiveExtent, um cliente pode iterar por meio do conjunto de extensões de arquivo de log para arquivar o log. Você também pode especificar um intervalo de registros para arquivar.
Sintaxe
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
);
Parâmetros
[in] hLog
Um identificador para o log obtido por uma chamada bem-sucedida para CreateLogFile.
Esse identificador pode ser o identificador para um log dedicado ou multiplexado.
[in, out] pszBaseLogFileName
Um ponteiro para um buffer alocado pelo usuário para receber o caminho totalmente qualificado do log base.
Se o buffer não for grande o suficiente, ele conterá um caminho de arquivo truncado na saída e a função falhará com um código status ERROR_BUFFER_OVERFLOW.
O comprimento do caminho do arquivo é retornado na variável apontada por pcActualLength. O cliente pode tentar novamente uma chamada com falha com um buffer de nome grande o suficiente.
[in] cLen
O tamanho do buffer pszBaseLogFileName , em caracteres largos.
[in, optional] plsnLow
Um ponteiro para uma estrutura CLFS_LSN que especifica o LSN (número de sequência de log) da extremidade baixa do intervalo do log ativo em que o cliente de log precisa de informações de arquivamento de log.
Se esse parâmetro for omitido, a extremidade baixa do intervalo usará como padrão o LSN da parte final do arquivo de log.
[in, optional] plsnHigh
Um ponteiro para uma estrutura CLFS_LSN que especifica o LSN da extremidade superior do intervalo do log ativo em que o cliente de log precisa de informações de arquivamento de log.
Se esse parâmetro for omitido, a extremidade alta do intervalo usará como padrão o próximo LSN a ser gravado no log.
[out, optional] pcActualLength
Um ponteiro para uma variável que recebe o comprimento real do nome do caminho de log base, em caracteres.
Se esse valor for maior que cLen, a função retornará um ERROR_BUFFER_OVERFLOW status com um caminho truncado armazenado no buffer pszBaseLogFileName e todos os outros parâmetros out que não estão definidos como valores significativos.
[out] poffBaseLogFileData
Um ponteiro para uma variável que recebe o deslocamento em que os metadados começam no log base.
A extensão contígua no log base pszBaseLogFileName representa o conteúdo completo dos metadados de log, ou seja, de poffBaseLogFileData a pcbBaseLogFileLength.
[out] pcbBaseLogFileLength
Um ponteiro para uma variável que especifica o comprimento exato do log base, em bytes.
[out] plsnBase
Um ponteiro para uma estrutura CLFS_LSN para receber o LSN (número de sequência de log base) do log ativo.
[out] plsnLast
Um ponteiro para uma estrutura CLFS_LSN para receber o LSN válido mais alto no log ativo.
[out] plsnCurrentArchiveTail
Um ponteiro para uma estrutura CLFS_LSN para receber o LSN atual da parte final do arquivo morto do log.
[out] ppvArchiveContext
Um ponteiro para a variável que recebe um ponteiro para um contexto de arquivo morto alocado pelo sistema.
O contexto de arquivo morto mantém o estado do cursor do iterador de arquivamento e do contexto do identificador de log. O cliente de arquivamento é responsável por liberar o contexto chamando TerminateLogArchive.
Valor retornado
Se a função for bem-sucedida, o valor retornado será diferente de zero.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError. A lista a seguir identifica os possíveis códigos de erro:
Comentários
Você deve chamar TerminateLogArchive para liberar o contexto de arquivo morto ou pode ocorrer vazamentos de memória.
Até que você chame TerminateLogArchive, os contêineres que estão sendo arquivados não poderão ser reciclados.
Você só pode executar uma operação de arquivo morto por vez por identificador que CreateLogFile retorna.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 R2 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | clfsw32.h |
Biblioteca | Clfsw32.lib |
DLL | Clfsw32.dll |