Partilhar via


Função ClfsWriteRestartArea (wdm.h)

O ClfsWriteRestartArea acrescenta atomicamente um novo registro de reinicialização a um fluxo CLFS, libera o registro de reinicialização para o armazenamento estável e, opcionalmente, atualiza o LSN base do fluxo.

Sintaxe

CLFSUSER_API NTSTATUS ClfsWriteRestartArea(
  [in, out]       PVOID     pvMarshalContext,
  [in]            PVOID     pvRestartBuffer,
  [in]            ULONG     cbRestartBuffer,
  [in, optional]  PCLFS_LSN plsnBase,
  [in]            ULONG     fFlags,
  [out, optional] PULONG    pcbWritten,
  [out, optional] PCLFS_LSN plsnNext
);

Parâmetros

[in, out] pvMarshalContext

Um ponteiro para um contexto opaco que representa uma área de marshalling associada a um fluxo CLFS. O chamador obteve esse ponteiro anteriormente chamando ClfsCreateMarshallingArea.

[in] pvRestartBuffer

Um ponteiro para um buffer que contém os dados do registro de reinicialização.

[in] cbRestartBuffer

O tamanho, em bytes, do buffer apontado por pvRestartBuffer. Esse é o tamanho dos dados de reinicialização.

[in, optional] plsnBase

Um ponteiro para uma estrutura CLFS_LSN que especifica um novo LSN base para o fluxo. Se esse parâmetro for NULL, o LSN base não será alterado.

[in] fFlags

Esse parâmetro deve ser um dos seguintes valores.

Valor Significado
0 O registro de reinicialização é colocado em espaço recém-alocado em um bloco de E/S. O número de registros reservados na área de marshalling não é alterado.
CLFS_FLAG_USE_RESERVATION O registro de reinicialização é colocado em espaço reservado anteriormente em um bloco de E/S. O número de registros reservados na área de marshalling é reduzido em um.

[out, optional] pcbWritten

Um ponteiro para uma variável do tipo ULONG que recebe o número de bytes realmente forçados ao armazenamento estável. Esse parâmetro pode ser NULL.

[out, optional] plsnNext

Um ponteiro para uma estrutura CLFS_LSN que recebe o LSN do registro de reinicialização gravado recentemente.

Valor de retorno

ClfsWriteRestartArea retornará STATUS_SUCCESS se tiver êxito; caso contrário, ele retorna um dos códigos de erro definidos em Ntstatus.h.

Observações

Normalmente, ClfsWriteRestartArea é chamado como o último ato de um ponto de verificação do cliente.

ClfsWriteRestartArea é uma operação relativamente cara porque causa uma liberação de todos os registros atualmente na área de marshalling, juntamente com uma liberação de fluxo e metadados de log.

A qualquer momento, apenas uma área de marshalling deve ser usada para gravar dados em um fluxo. Ter duas áreas de marshalling escrevendo no fluxo pode resultar em corrupção de fluxo.

Se você quiser apenas definir o LSN base de um fluxo, use ClfsAdvanceLogBase, que não necessariamente libera dados para o armazenamento estável.

Para obter uma explicação dos conceitos e terminologia do CLFS, consulte Common Log File System.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível no Windows Server 2003 R2, Windows Vista e versões posteriores do Windows.
da Plataforma de Destino Área de trabalho
cabeçalho wdm.h (inclua Wdm.h)
biblioteca Clfs.lib
de DLL Clfs.sys
IRQL <= APC_LEVEL

Consulte também

CLFS_LSN

ClfsAdvanceLogBase

ClfsCreateMarshallingArea

ClfsReadPreviousRestartArea

ClfsReadRestartArea