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