Compartilhar via


Função ReadNextLogRecord (clfsw32.h)

Lê o próximo registro em uma sequência iniciada por uma chamada para ReadLogRecord ou ReadLogRestartArea. Usando ReadNextLogRecord iterativamente, um cliente pode ler todos os registros de um tipo especificado em um log. A direção da enumeração é determinada especificando o modo de contexto ao iniciar a sequência de leitura.

Sintaxe

CLFSUSER_API BOOL ReadNextLogRecord(
  [in, out]           PVOID             pvReadContext,
  [out]               PVOID             *ppvBuffer,
  [out]               PULONG            pcbBuffer,
  [in, out]           PCLFS_RECORD_TYPE peRecordType,
  [in, optional]      PCLFS_LSN         plsnUser,
  [out]               PCLFS_LSN         plsnUndoNext,
  [out]               PCLFS_LSN         plsnPrevious,
  [out]               PCLFS_LSN         plsnRecord,
  [in, out, optional] LPOVERLAPPED      pOverlapped
);

Parâmetros

[in, out] pvReadContext

Um ponteiro para um contexto de leitura que o sistema aloca e cria durante uma chamada bem-sucedida para ReadLogRecord ou ReadLogRestartArea.

Se a função adiar a conclusão de uma operação, ela retornará um ponteiro para um contexto de leitura válido e um erro status de ERROR_IO_PENDING. Para obter informações sobre como lidar com a conclusão assíncrona, consulte a seção Comentários deste tópico.

[out] ppvBuffer

Um ponteiro para uma variável que recebe um ponteiro para os dados de leitura.

[out] pcbBuffer

Um ponteiro para uma variável que recebe o tamanho dos dados de leitura retornados no ppvReadBuffer, em bytes.

[in, out] peRecordType

Um ponteiro que, na entrada, especifica o filtro de tipo de registro da próxima leitura de registro e na saída especifica o tipo de registro retornado.

Os clientes podem especificar qualquer um dos tipos de registro a seguir.

Valor Significado
ClfsDataRecord
Somente registros de dados do usuário são lidos.
ClfsRestartRecord
Somente os registros de reinicialização são lidos.
ClfsClientRecord
Todos os registros de reinicialização e de dados são lidos.

[in, optional] plsnUser

Um ponteiro para uma estrutura CLFS_LSN que especifica o cliente de log para ler esse LSN (número de sequência de log) como o próximo LSN em vez de ler para o próximo registro, ler o LSN anterior ou ler o LSN de desfazer próximo.

Esse parâmetro fornece aos clientes de log a capacidade de cursor por meio de cadeias LSN definidas pelo usuário em buffers de cliente. A relação desse parâmetro com o LSN atual mantido pelo contexto de leitura deve ser consistente com o modo de contexto, ecxMode, especificado nos pontos de entrada ReadLogRecord ; caso contrário, um código de erro de ERROR_INVALID_PARAMETER é retornado.

[out] plsnUndoNext

Um ponteiro para uma estrutura CLFS_LSN que recebe o LSN do próximo registro em uma cadeia de registros desfazer.

[out] plsnPrevious

Um ponteiro para uma estrutura CLFS_LSN que recebe o LSN do próximo registro na cadeia de registros anterior.

[out] plsnRecord

Um ponteiro para uma estrutura CLFS_LSN que recebe o LSN do registro atual lido no contexto de leitura.

[in, out, optional] pOverlapped

Um ponteiro para uma estrutura OVERLAPPED necessária para a operação assíncrona.

Esse parâmetro poderá ser NULL se a operação assíncrona não for usada.

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

Se ReadNextLogRecord retornar com um código status de ERROR_IO_PENDING, o cliente deverá sincronizar sua execução com a conclusão adiada da operação de E/S sobreposta usando GetOverlappedResult ou uma das funções de espera de sincronização. Para obter mais informações, consulte Sincronização e Entrada e saída sobrepostas.

Depois que ReadNextLogRecord for concluído de forma assíncrona, o registro solicitado será lido do disco, mas não será resolvido para um ponteiro em *ppvReadBuffer. Para obter um ponteiro válido para o registro, o cliente deve chamar ReadNextLogRecord uma segunda vez.

Nota Os contextos comuns de leitura do CLFS (Sistema de Arquivos de Log) não são thread-safe. Eles não devem ser usados por mais de um thread por vez.

Os contextos de leitura do CLFS não devem ser passados para mais de uma leitura assíncrona por vez ou a função falha com ERROR_READ.

 

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

OVERLAPPED

ReadLogRecord

ReadLogRestartArea

Sincronização e entrada e saída sobrepostas