Compartilhar via


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

Confira também

CcMdlWriteAbort

CcPrepareMdlWrite