Función CcMdlWriteComplete (ntifs.h)
La rutina ccMdlWriteComplete
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 |