Compartilhar via


Função ClfsWriteRestartArea (wdm.h)

A rotina 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 usar um dos valores a seguir.

Valor Significado
0 O registro de reinicialização é colocado no 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 no 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. Este parâmetro pode ser NULL.

[out, optional] plsnNext

Um ponteiro para uma estrutura de CLFS_LSN que recebe o LSN do registro de reinicialização recém-gravado.

Retornar valor

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

Comentários

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 metadados de fluxo e log.

Ao mesmo tempo, 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 nenhum dado para o armazenamento estável.

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

Requisitos

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

Confira também

CLFS_LSN

ClfsAdvanceLogBase

ClfsCreateMarshallingArea

ClfsReadPreviousRestartArea

ClfsReadRestartArea