Compartilhar via


Função DumpLogRecords (clfsw32.h)

Verifica um log especificado; filtra registros de log com base no tipo de registro; e coloca os registros em um fluxo de arquivo de saída que o chamador abre.

Sintaxe

CLFSUSER_API BOOL DumpLogRecords(
  [in]           PWSTR                     pwszLogFileName,
  [in]           CLFS_RECORD_TYPE          fRecordType,
  [in, optional] PCLFS_LSN                 plsnStart,
  [in, optional] PCLFS_LSN                 plsnEnd,
  [in, optional] PFILE                     pstrmOut,
  [in, optional] CLFS_PRINT_RECORD_ROUTINE pfnPrintRecord,
  [in, optional] CLFS_BLOCK_ALLOCATION     pfnAllocBlock,
  [in, optional] CLFS_BLOCK_DEALLOCATION   pfnFreeBlock,
  [in, optional] PVOID                     pvBlockAllocContext,
  [in]           ULONG                     cbBlock,
  [in]           ULONG                     cMaxBlocks
);

Parâmetros

[in] pwszLogFileName

O nome do fluxo de log.

Esse nome é especificado quando você cria o log usando CreateLogFile. O exemplo a seguir identifica o formato a ser usado:

Log:<nome>do log[::nome do< fluxo de log]>

<nome> do log corresponde a um caminho de arquivo válido no sistema de arquivos.

<nome >do fluxo de log é o nome exclusivo de um fluxo de log no log.

Para obter mais informações, consulte Tipos de log.

[in] fRecordType

O tipo de registros a serem lidos.

Esse parâmetro pode ser uma ou mais das seguintes constantes de CLFS_RECORD_TYPE.

Valor Significado
ClfsNullRecord
O tipo de registro padrão de ClfsDataRecord é usado.
ClfsDataRecord
Os registros de dados do usuário são lidos.
ClfsRestartRecord
Os registros de reinicialização são lidos.
ClfsClientRecord
Os registros de reinicialização e de dados são lidos.
ClfsClientRecord
Especifica uma máscara para todos os dados válidos ou registros de reinicialização.

[in, optional] plsnStart

Um ponteiro para um CLFS_LSN que especifica o LSN (número de sequência de log) inicial para a sequência de despejo de log.

Se esse parâmetro for especificado, o LSN deverá ser o endereço de um registro de log válido na parte ativa do log; caso contrário, a chamada falhará com status ERROR_INVALID_PARAMETER.

Se esse parâmetro não for especificado, o início da sequência de despejo será o início do log ativo.

[in, optional] plsnEnd

Um ponteiro para um CLFS_LSN que especifica o LSN em que a sequência de despejo deve terminar.

Se esse LSN estiver além do final do intervalo LSN, a função retornará ERROR_HANDLE_EOF.

Ao contrário de plsnStart, esse valor não precisa ser o LSN de um registro válido no log ativo, mas pode ser qualquer LSN válido. Somente os registros com um valor LSN menor ou igual a plsnEnd são colocados no fluxo de saída.

Se esse parâmetro for NULL, a função de despejo usará o último LSN no log ativo (no cabeçalho do log).

[in, optional] pstrmOut

Um ponteiro para um fluxo de saída aberto em que os registros de log são colocados.

Se esse parâmetro não for especificado, "stdout" será usado como o padrão.

[in, optional] pfnPrintRecord

Uma rotina de retorno de chamada definida pelo usuário que formata buffers definidos pelo usuário e os imprime no pstrmOut do fluxo de saída.

A função DumpLogRecords gera nativamente seus cabeçalhos de registro interno para pstrmOut, mas depende do retorno de chamada definido pelo usuário para formatar os buffers de usuário.

Se esse parâmetro for NULL, DumpLogRecords colocará dados de registro do usuário no fluxo de saída como dígitos hexadecimal.

[in, optional] pfnAllocBlock

Uma função de retorno de chamada que aloca memória para blocos de log.

Se esse parâmetro for NULL, o CLFS (Common Log File System) fornecerá uma função de alocação de bloco padrão. Esse parâmetro não poderá ser NULL se um retorno de chamada de liberação de blocos for especificado usando o parâmetro pfnFreeBuffer .

O exemplo a seguir identifica a sintaxe da função de retorno de chamada de alocação de bloco:

typedef PVOID (* CLFS_BLOCK_ALLOCATION) (voidULONG cbBufferSize, PVOID pvUserContext);

[in, optional] pfnFreeBlock

Uma função de retorno de chamada que libera blocos de log alocados por pfnAllocBuffer.

Se esse parâmetro for NULL, o CLFS fornecerá uma função de desalocação de bloco padrão. Esse parâmetro não poderá ser NULL se um retorno de chamada de alocação de bloco for especificado usando o parâmetro pfnAllocBuffer .

O exemplo a seguir identifica a sintaxe da função de retorno de chamada de liberação de blocos:

typedef void (* CLFS_BLOCK_DEALLOCATION) (PVOID pvBuffer, PVOID pvUserContext);

O parâmetro buffer de "ClfsBlockDeallocProc" deve apontar para um bloco alocado usando o retorno de chamada apontado por pfnAllocBuffer.

[in, optional] pvBlockAllocContext

Um ponteiro para um buffer que é passado como um contexto de usuário para as rotinas de alocação e desalocação de blocos, se um buffer for especificado.

Se pfnAllocBuffer for NULL, esse parâmetro será ignorado.

[in] cbBlock

O tamanho do buffer no qual os registros são empacotados, em bytes.

Os registros não podem ser acrescentados ou lidos se forem maiores que esse valor.

[in] cMaxBlocks

O número máximo de blocos que podem ser alocados a qualquer momento para operações de leitura.

Os contextos de leitura usam pelo menos um bloco de leitura.

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á 0 (zero). Para obter informações de erro estendidas, chame GetLastError. A lista a seguir identifica os possíveis códigos de erro:

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

CLFS_RECORD_TYPE

Funções comuns do sistema de arquivos de log