Compartir a través de


Función CcMdlWriteComplete (ntifs.h)

La rutina ccMdlWriteComplete libera las listas de descriptores de memoria (MDL) creadas por ccPrepareMdlWrite para un archivo almacenado en caché.

Sintaxis

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

Parámetros

[in] FileObject

Puntero de objeto de archivo que se pasó a CcPrepareMdlWrite.

[in] FileOffset

Valor de FileOffset que se pasó a CcPrepareMdlWrite.

[in] MdlChain

Dirección de la cadena MDL devuelta por CcPrepareMdlWrite.

Valor devuelto

Ninguno

Observaciones

Los sistemas de archivos llaman a ccMdlWriteComplete para liberar las listas de descriptores de memoria (MDL) creadas por CcPrepareMdlWrite para un archivo almacenado en caché y para marcar el intervalo de bytes especificado para escritura. Se desbloquean todas las páginas físicas bloqueadas. Las páginas asignadas no están asignadas.

Si la marca FO_WRITE_THROUGH se establece en el objeto de archivo al que apunta el parámetro FileObject, los datos del archivo se vacían inmediatamente en el disco. Esta operación de vaciado vuelve a entrar en el sistema de archivos y puede provocar ccMdlWriteComplete generar una excepción si se produce un error en la operación de vaciado. En este caso, el MDL no se ha liberado y el autor de la llamada puede volver a probar la operación.

Después de CcMdlWriteComplete se llama correctamente para una operación de IRP_MN_COMPLETE, el autor de la llamada debe establecer el campo mdlAddress de IRP en null.

Antes de usar CcMdlWriteComplete, se recomienda encarecidamente a los desarrolladores del sistema de archivos que estudien la forma en que se usa esta rutina en el ejemplo FASTFAT.

Cada llamada a ccPrepareMdlWrite debe ir seguida de una llamada a CcMdlWriteComplete o CcMdlWriteAbort.

Requisitos

Requisito Valor
de la plataforma de destino de Universal
encabezado de ntifs.h (incluya Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL PASSIVE_LEVEL

Consulte también

CcMdlWriteAbort

CcPrepareMdlWrite