Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Программа 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 |