Функция CcCanIWrite (ntifs.h)
Подпрограмма CcCanIWrite определяет, может ли вызывающий объект выполнять запись в кэшированный файл.
Синтаксис
BOOLEAN CcCanIWrite(
[in] PFILE_OBJECT FileObject,
[in] ULONG BytesToWrite,
[in] BOOLEAN Wait,
[in] UCHAR Retrying
);
Параметры
[in] FileObject
Указатель на объект файла для кэшированного файла.
[in] BytesToWrite
Число записываемых байтов.
[in] Wait
Задайте значение TRUE, если вызывающий объект может быть переведен в состояние ожидания до тех пор, пока он не сможет выполнить запись в кэшированный файл. В противном случае — FALSE.
[in] Retrying
Задайте значение FALSE, если ccCanIWrite вызывается для этого запроса на запись впервые. В противном случае — ЗНАЧЕНИЕ TRUE.
Возвращаемое значение
CcCanIWrite возвращает значение TRUE, если диспетчер кэша может принять запрос на запись. В противном случае — FALSE.
Комментарии
CcCanIWrite следует вызывать перед вызовом CcCopyWrite или CcFastCopyWrite.
Если CcCanIWrite возвращает значение TRUE, вызывающий объект может немедленно вызвать CcCopyWrite или CcFastCopyWrite.
Если CcCanIWrite возвращает значение FALSE, вызывающий объект должен вместо этого вызвать CcDeferWrite , чтобы отложить запрос на запись.
В общем случае диспетчер кэша может принять запрос на запись, если выполняются следующие условия:
Объем записываемых данных не слишком велик.
Для выполнения операции записи достаточно памяти.
Количество грязное страниц в системном кэше не превышает пороговое значение грязное страницы (CcDirtyPageThreshold).
Если для этого файла существует пороговое значение грязное страницы для каждого файла, оно не превышается на количество грязное страниц для этого файла в системном кэше.
Чтобы кэшировать файл, используйте CcInitializeCacheMap.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | ntifs.h (включая Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |