Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подпрограмма CcMdlWriteComplete освобождает списки дескрипторов памяти , созданные CcPrepareMdlWrite для кэшированного файла.
Синтаксис
VOID CcMdlWriteComplete(
[in] PFILE_OBJECT FileObject,
[in] PLARGE_INTEGER FileOffset,
[in] PMDL MdlChain
);
Параметры
[in] FileObject
Указатель объекта файла, переданный CcPrepareMdlWrite.
[in] FileOffset
Значение FileOffset, переданное CcPrepareMdlWrite.
[in] MdlChain
Адрес цепочки MDL, возвращаемой CcPrepareMdlWrite.
Возвращаемое значение
Никакой
Замечания
Файловые системы вызывают CcMdlWriteComplete, чтобы освободить списки дескрипторов памяти, созданные CcPrepareMdlWrite для кэшированного файла и пометить указанный диапазон байтов для записи. Все физические страницы, заблокированные, разблокированы. Все сопоставленные страницы не сопоставлены.
Если флаг FO_WRITE_THROUGH установлен в объекте файла, на который указывает параметр FileObject, данные файла немедленно сбрасываются на диск. Эта операция очистки повторно вводит файловую систему и может привести к тому, что CcMdlWriteComplete вызвать исключение, если операция очистки завершается ошибкой. В этом случае MDL не был освобожден, и вызывающий объект может повторно попробовать операцию.
После успешного вызова
Прежде чем использовать CcMdlWriteComplete, разработчикам файловой системы настоятельно рекомендуется изучить способ использования этой процедуры в примере FASTFAT.
За каждым вызовом CcPrepareMdlWrite должен следовать вызов CcMdlWriteComplete или CcMdlWriteAbort.
Требования
| Требование | Ценность |
|---|---|
| целевая платформа | Всеобщий |
| заголовка | ntifs.h (include Ntifs.h) |
| библиотеки |
NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | PASSIVE_LEVEL |