Функция CcSetFileSizes (ntifs.h)

Программа CcSetFileSizes обновляет карты кэша и объект раздела для кэшированного файла, размер которого изменился. Вместо этого используйте CcSetFileSizesEx, так как он предоставляет код возврата NTSTATUS вместе с лучшим руководством по обработке ошибок.

Синтаксис

VOID CcSetFileSizes(
  [in] PFILE_OBJECT   FileObject,
  [in] PCC_FILE_SIZES FileSizes
);

Параметры

[in] FileObject

Указатель на объект файла для кэшированного файла.

[in] FileSizes

Указатель на структуру CC_FILE_SIZES, содержащую новые сведения о размере файла.

Возвращаемое значение

Никакой

Замечания

Файловые системы должны вызывать CcSetFileSizesEx или CcSetFileSizes, чтобы обновить структуры данных диспетчера кэша при каждом из следующих изменений в кэшированный файл:

  • Его размер выделения увеличивается.

  • Его допустимая длина данных уменьшается.

  • Его допустимая длина данных увеличивается операцией ввода-вывода, не кэшированного ввода-вывода.

  • Его размер файла увеличивается или уменьшается.

В случае сбоя CcSetFileSizes вызывает исключение состояния для конкретного сбоя. Например, если происходит сбой выделения пула, CcSetFileSizes вызывает исключение STATUS_INSUFFICIENT_RESOURCES. Таким образом, чтобы получить контроль при возникновении сбоя, драйвер должен упаковать вызов CcSetFileSizes в , кроме или инструкции try-finally.

Файловая система должна убедиться, что карта кэша действительна и будет оставаться на протяжении всего этого вызова.

Чтобы кэшировать файл, используйте CcInitializeCacheMap.

Чтобы получить размер кэшированного файла, передайте FileObject в CcGetFileSizePointer.

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка ntifs.h (include Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe

См. также

CcInitializeCacheMap

CcSetFileSizesEx