Função ReadLogRestartArea (clfsw32.h)
Retorna a última área de reinicialização 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 examinar áreas de reinicialização anteriores à 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 de 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 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. A falha ao fazer isso resulta em perda de memória.
[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 uma 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.
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 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 ReadLogRestartArea for concluído 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, que passa o ponteiro de contexto de leitura retornado por ReadLogRestartArea.
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_BUSY.
Requisitos
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
Funções comuns do sistema de arquivos de log