Функция 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 (include Ntifs.h) |
библиотеки |
NtosKrnl.lib |
DLL | NtosKrnl.exe |