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 |