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

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

Синтаксис

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

Параметры

[in] FileObject

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

[in] FileSizes

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

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

None

Remarks

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

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

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

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

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

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

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

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

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

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe

См. также раздел

CcInitializeCacheMap

CcSetFileSizesEx