Поделиться через


Функция 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

См. также

CcCopyWrite

CcDeferWrite

CcFastCopyWrite

CcInitializeCacheMap

CcSetDirtyPageThreshold