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
[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은 페이지 무효화가 실패했음을 나타냅니다. Flags 매개 변수에 CC_FLUSH_AND_PURGE_NO_PURGE 전달하더라도 페이지 무효화가 실패할 수 있습니다. STATUS_CACHE_PAGE_LOCKED 성공 상태입니다(즉, NT_SUCCESS 매크로로 테스트하면 TRUE가 반환됨).
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7 |
대상 플랫폼 | 보편적 |
헤더 | ntifs.h(Ntifs.h, FltKernel.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL |
PASSIVE_LEVEL |
참고 항목
ccFlushCache