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 |