Condividi tramite


Funzione CcMdlWriteComplete (ntifs.h)

La routine CcMdlWriteComplete libera gli elenchi dei descrittori di memoria (MDL) creati da CcPrepareMdlWrite per un file memorizzato nella cache.

Sintassi

void CcMdlWriteComplete(
  [in] PFILE_OBJECT   FileObject,
  [in] PLARGE_INTEGER FileOffset,
  [in] PMDL           MdlChain
);

Parametri

[in] FileObject

Puntatore all'oggetto file passato a CcPrepareMdlWrite.

[in] FileOffset

Valore di FileOffset passato a CcPrepareMdlWrite.

[in] MdlChain

Indirizzo della catena MDL restituita da CcPrepareMdlWrite.

Valore restituito

Nessuno

Osservazioni

I file system chiamano CcMdlWriteComplete per liberare gli elenchi dei descrittori di memoria (MDL) creati da CcPrepareMdlWrite per un file memorizzato nella cache e per contrassegnare l'intervallo di byte specificato per la scrittura. Tutte le pagine fisiche bloccate vengono sbloccate. Tutte le pagine mappate vengono annullate.

Se il flag FO_WRITE_THROUGH è impostato sull'oggetto file a cui punta il parametro FileObject , i dati del file vengono scaricati immediatamente su disco. Questa operazione di scaricamento immette nuovamente il file system e può causare CcMdlWriteComplete generare un'eccezione se l'operazione di scaricamento non riesce. In questo caso, MDL non è stato liberato e il chiamante può ritentare l'operazione.

Dopo aver chiamato correttamente CcMdlWriteComplete per un'operazione di IRP_MN_COMPLETE, il chiamante deve impostare il campo MdlAddress di IRP su NULL.

Prima di usare CcMdlWriteComplete, gli sviluppatori di file system sono fortemente invitati a studiare il modo in cui questa routine viene usata nell'esempio FASTFAT.

Ogni chiamata a CcPrepareMdlWrite deve essere seguita da una chiamata a CcMdlWriteComplete o CcMdlWriteAbort.

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
intestazione ntifs.h (include Ntifs.h)
libreria NtosKrnl.lib
dll NtosKrnl.exe
IRQL PASSIVE_LEVEL

Vedere anche

CcMdlWriteAbort

CcPrepareMdlWrite