Função CcMdlWriteComplete (ntifs.h)
A rotina CcMdlWriteComplete libera as listas de descritores de memória (MDL) criadas por CcPrepareMdlWrite para um arquivo armazenado em cache.
Sintaxe
void CcMdlWriteComplete(
[in] PFILE_OBJECT FileObject,
[in] PLARGE_INTEGER FileOffset,
[in] PMDL MdlChain
);
Parâmetros
[in] FileObject
Ponteiro do objeto de arquivo que foi passado para CcPrepareMdlWrite.
[in] FileOffset
Valor de FileOffset que foi passado para CcPrepareMdlWrite.
[in] MdlChain
Endereço da cadeia MDL retornada por CcPrepareMdlWrite.
Retornar valor
Nenhum
Comentários
Os sistemas de arquivos chamam CcMdlWriteComplete para liberar as listas de descritores de memória (MDL) criadas por CcPrepareMdlWrite para um arquivo armazenado em cache e para marcar o intervalo de bytes especificado para gravação. Todas as páginas físicas que foram bloqueadas são desbloqueadas. Todas as páginas mapeadas não são mapeadas.
Se o sinalizador FO_WRITE_THROUGH for definido no objeto de arquivo apontado pelo parâmetro FileObject , os dados do arquivo serão imediatamente liberados para o disco. Essa operação de liberação entra novamente no sistema de arquivos e pode fazer com que CcMdlWriteComplete gere uma exceção se a operação de liberação falhar. Nesse caso, o MDL não foi liberado e o chamador pode tentar novamente a operação.
Depois que CcMdlWriteComplete for chamado com êxito para uma operação de IRP_MN_COMPLETE, o chamador deverá definir o campo MdlAddress do IRP como NULL.
Antes de usar CcMdlWriteComplete, os desenvolvedores do sistema de arquivos são fortemente incentivados a estudar a maneira como essa rotina é usada na amostra FASTFAT.
Cada chamada para CcPrepareMdlWrite deve ser seguida por uma chamada para CcMdlWriteComplete ou CcMdlWriteAbort.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Cabeçalho | ntifs.h (inclua Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |