Compartilhar via


Função ReadLogRestartArea (clfsw32.h)

Retorna a última área de reinicialização que é gravada com êxito no log associado à área de marshaling de WriteLogRestartArea. A função também retorna um contexto de leitura que permite que o chamador faça o cursor para trás ou para frente por meio de um log do registro de reinicialização.

Esse contexto de leitura é útil ao verificar as áreas de reinicialização anteriores antes da atual invocando ReadPreviousLogRestartArea.

Sintaxe

CLFSUSER_API BOOL ReadLogRestartArea(
  [in]                PVOID        pvMarshal,
  [out]               PVOID        *ppvRestartBuffer,
  [out]               PULONG       pcbRestartBuffer,
  [out]               PCLFS_LSN    plsn,
  [out]               PVOID        *ppvContext,
  [in, out, optional] LPOVERLAPPED pOverlapped
);

Parâmetros

[in] pvMarshal

Um ponteiro para um contexto de marshaling alocado usando a função CreateLogMarshallingArea.

[out] ppvRestartBuffer

Um ponteiro para uma variável que recebe um ponteiro para os dados de reinicialização no bloco de E/S do log.

[out] pcbRestartBuffer

Um ponteiro para uma variável que recebe a quantidade de dados de reinicialização.

[out] plsn

Um ponteiro para uma estrutura de CLFS_LSN que recebe o LSN (número de sequência de log) da área de reinicialização.

[out] ppvContext

Um ponteiro para uma variável que recebe um ponteiro para um contexto de leitura alocado pelo sistema quando uma leitura é bem-sucedida.

Se a função adiar a conclusão de uma operação, ela retornará um ponteiro de contexto de leitura válido e um status de erro de ERROR_IO_PENDING. Em todos os outros erros, o ponteiro de contexto de leitura é NULL . Para obter mais informações sobre como lidar com a conclusão adiada da função, consulte a seção Comentários deste tópico.

Depois de obter todos os registros de log solicitados, o cliente deve passar o contexto de leitura para TerminateReadLog para liberar a memória associada. Falha ao fazer isso resulta em perda de memória.

Observação contextos de leitura do CLFS (Common Log File System) não são thread-safe. Eles não devem ser usados por mais de um thread por vez ou passados para mais de uma leitura assíncrona por vez.
 

[in, out, optional] pOverlapped

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

Esse parâmetro pode ser NULL se uma operação assíncrona não for usada.

Valor de retorno

Se a função for bem-sucedida, o valor retornado não será 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:

Observações

A mensagem de erro ERROR_LOG_BLOCK_INCOMPLETE será retornada se o tamanho do bloco de log especificado por CreateLogMarshallingArea não for grande o suficiente para manter um bloco de log completo.

Normalmente, ReadLogRestartArea é usado somente durante a reinicialização do cliente, após uma falha ou após um desligamento normal.

Se não houver nenhuma área de reinicialização no log, ReadLogRestartArea falhará com o código ERROR_LOG_NO_RESTART.

Se ReadLogRestartArea falhar com um código de erro de ERROR_IO_PENDING, um ponteiro para um contexto de leitura válido será colocado na variável apontada pelo parâmetro ppvReadContext.

Para concluir a cópia de registro de log, o cliente deve primeiro sincronizar sua execução com a conclusão adiada da operação de E/S sobreposta chamando GetOverlappedResultou uma das funções de espera de sincronização. Para obter mais informações, consulte sincronização ede entrada e saída sobrepostas.

Depois que ReadLogRestartArea for concluída de forma assíncrona, a área de reinicialização solicitada será lida do disco, mas um ponteiro válido para ele não será colocado no *ppvRestartBuffer.

Para obter um ponteiro válido, o cliente deve chamar ReadPreviousLogRestartArea, que passa o ponteiro de contexto de leitura retornado por ReadLogRestartArea .

Observação contextos de leitura do CLFS (Common Log File System) não são thread-safe. Eles não devem ser usados por mais de um thread por vez.

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

 

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows Vista [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2003 R2 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho clfsw32.h
biblioteca Clfsw32.lib
de DLL Clfsw32.dll

Consulte também

CLFS_LSN

Funções comuns do sistema de arquivos de log

CreateLogFile

SOBREPOSTOS

ReadPreviousLogRestartArea

sincronização e de entrada e saída sobrepostas

WriteLogRestartArea