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


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

CcCoherencyFlushAndPurgeCache рутинные очистки или очистки кэша, чтобы обеспечить совместную работу кэша.

Синтаксис

void CcCoherencyFlushAndPurgeCache(
  [in]           PSECTION_OBJECT_POINTERS SectionObjectPointer,
  [in, optional] PLARGE_INTEGER           FileOffset,
  [in]           ULONG                    Length,
  [out]          PIO_STATUS_BLOCK         IoStatus,
  [in, optional] ULONG                    Flags
);

Параметры

[in] SectionObjectPointer

Указатель на структуру SECTION_OBJECT_POINTERS, содержащую указатели объекта раздела объекта файла.

[in, optional] FileOffset

Указатель на переменную, указывающую начальное смещение байтов на очистку или очистку.

[in] Length

Длина в байтах данных для очистки или очистки, начиная с FileOffset. Этот параметр игнорируется, если указатель NULL передается в FileOffset.

[out] IoStatus

Указатель на выделенную вызывающим IO_STATUS_BLOCK структуру, которая получает окончательное состояние завершения и сведения об операции.

[in, optional] Flags

Битовая маска следующих флагов, указывающая, как выполняется операция:

Ценность Значение
CC_FLUSH_AND_PURGE_NO_PURGE Очистка, но не очищайте кэш. Это полезно для чтения совместного использования.
CC_FLUSH_AND_PURGE_GATHER_DIRTY_BITS Зарезервировано для использования системы; не используйте.
CC_FLUSH_AND_PURGE_WRITEABLE_VIEWS_NOTSEEN Вызывающий объект может задать этот флаг, если нет сопоставлений с файлом за пределами диспетчера кэша, чтобы пропустить дорогостоящую операцию обрезки рабочих наборов процесса.

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

Никакой

Замечания

Используйте CcCoherencyFlushAndPurgeCache, если это возможно, вместо явной очистки и очистки последовательности вызовов, так как это приведет к недопустимости сопоставленных пользователем представлений, чтобы предотвратить повреждение данных. CcCoherencyFlushAndPurgeCache обеспечивает совместное выполнение кэша; Таким образом, нет возможности выполнить очистку только через эту функцию.

Файл необходимо получить исключительно перед вызовом CcCoherencyFlushAndPurgeCache.

Вы можете удалить или очистить и очистить любой диапазон байтов в файле с помощью параметров FileOffset и Length. Вы также можете удалить или очистить и очистить весь файл, если передать указатель NULL указатель на параметр FileOffset.

Вызов CcCoherencyFlushAndPurgeCache является синхронной (блокирующей) операцией, а не асинхронной (неблокирующей).

Значение состояния IoStatus STATUS_CACHE_PAGE_LOCKED указывает, что сбо й недопустимой страницы. Помните, что недопустимость страницы может завершиться ошибкой, даже если вы передаете CC_FLUSH_AND_PURGE_NO_PURGE в параметре флагов . Обратите внимание, что STATUS_CACHE_PAGE_LOCKED — это состояние успешного (то есть тестирование с помощью макроса NT_SUCCESS возвращает значение TRUE).

Требования

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

См. также

CcFlushCache

CcPurgeCacheSection