Função ReadPreviousLogRestartArea (clfsw32.h)

Lê a área de reinicialização de log anterior relativa ao registro de reinicialização atual especificado no contexto de leitura, pvReadContext. Esse contexto de leitura é aquele criado anteriormente por uma chamada para ReadLogRestartArea.

Sintaxe

CLFSUSER_API BOOL ReadPreviousLogRestartArea(
  [in]                PVOID        pvReadContext,
  [out]               PVOID        *ppvRestartBuffer,
  [out]               PULONG       pcbRestartBuffer,
  [out]               PCLFS_LSN    plsnRestart,
  [in, out, optional] LPOVERLAPPED pOverlapped
);

Parâmetros

[in] pvReadContext

Um ponteiro para um contexto de leitura alocado pelo sistema que ReadLogRestartArea retorna.

Mesmo quando essas funções retornam ERROR_IO_PENDING, elas ainda retornam um ponteiro para um contexto de leitura válido. Para obter informações sobre a conclusão assíncrona, consulte a seção Comentários deste tópico.

[out] ppvRestartBuffer

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

[out] pcbRestartBuffer

Um ponteiro para uma variável que recebe o tamanho dos dados de reinicialização em *ppvRestartBuffer, em bytes.

[out] plsnRestart

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

[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

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.

Se ReadPreviousLogRestartArea 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 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 ReadPreviousLogRestartArea 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 em *ppvRestartBuffer.

Para obter um ponteiro válido, o cliente deve chamar ReadPreviousLogRestartArea 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 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

Funções comuns do sistema de arquivos de log

CreateLogFile

OVERLAPPED

ReadLogRestartArea

Sincronização e entrada e saída sobrepostas