Compartilhar via


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

Confira também

CLFS_LSN

Funções comuns do sistema de arquivos de log

GetNextLogArchiveExtent

ReadLogArchiveMetadata

TerminateLogArchive