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 |