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

None

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 marcar el intervalo de bytes especificado para escritura. Se desbloquean todas las páginas físicas bloqueadas. Las páginas asignadas no se asignan.

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 que CcMdlWriteComplete genere 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 intentar la operación.

Después de llamar a CcMdlWriteComplete 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 Value
Plataforma de destino Universal
Encabezado ntifs.h (incluya Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

Consulte también

CcMdlWriteAbort

CcPrepareMdlWrite