CcInitializeCacheMap 함수(ntifs.h)
파일 시스템은 CcInitializeCacheMap 루틴을 호출하여 파일을 캐시합니다.
통사론
void CcInitializeCacheMap(
[in] PFILE_OBJECT FileObject,
[in] PCC_FILE_SIZES FileSizes,
[in] BOOLEAN PinAccess,
[in] PCACHE_MANAGER_CALLBACKS Callbacks,
[in] PVOID LazyWriteContext
);
매개 변수
[in] FileObject
파일의 파일 개체에 대한 포인터입니다.
[in] FileSizes
typedef struct _CC_FILE_SIZES {
LARGE_INTEGER AllocationSize;
LARGE_INTEGER FileSize;
LARGE_INTEGER ValidDataLength;
} CC_FILE_SIZES, *PCC_FILE_SIZES;
구성원 | 의미 |
---|---|
AllocationSize | 파일의 새 섹션 개체 크기입니다. 현재 섹션 크기보다 작거나 같은 경우 무시됩니다. |
fileSize |
파일의 새 파일 크기입니다. |
ValidDataLength | 파일에 대한 유효한 새 데이터 길이입니다. |
[in] PinAccess
CcPinXxx 루틴이 파일에 사용되는 경우 TRUE 설정합니다.
[in] Callbacks
호출자가 제공한 미리 읽기 및 쓰기 숨김 콜백 루틴의 진입점을 포함하는 비페이지 풀에서 할당된 구조체에 대한 포인터입니다. 이 구조체와 해당 멤버는 다음과 같이 정의됩니다.
typedef struct _CACHE_MANAGER_CALLBACKS {
PACQUIRE_FOR_LAZY_WRITE AcquireForLazyWrite;
PRELEASE_FROM_LAZY_WRITE ReleaseFromLazyWrite;
PACQUIRE_FOR_READ_AHEAD AcquireForReadAhead;
PRELEASE_FROM_READ_AHEAD ReleaseFromReadAhead;
} CACHE_MANAGER_CALLBACKS, *PCACHE_MANAGER_CALLBACKS;
typedef
BOOLEAN (*PACQUIRE_FOR_LAZY_WRITE) (
IN PVOID Context,
IN BOOLEAN Wait
);
typedef
VOID (*PRELEASE_FROM_LAZY_WRITE) (
IN PVOID Context
);
typedef
BOOLEAN (*PACQUIRE_FOR_READ_AHEAD) (
IN PVOID Context,
IN BOOLEAN Wait
);
typedef
VOID (*PRELEASE_FROM_READ_AHEAD) (
IN PVOID Context
);
[in] LazyWriteContext
콜백지정된 콜백 루틴에 전달할 컨텍스트 정보에 대한 포인터입니다.
반환 값
없음
발언
CcInitializeCacheMap 파일 데이터 캐싱에 필요한 데이터 구조를 만듭니다.
오류가 발생하면 CcInitializeCacheMap
데이터 캐싱을 사용하지 않도록 설정하여 파일을 만들지 않는 한 파일 시스템에서 CcInitializeCacheMap 호출하여 파일의 다른 캐시 관리자 루틴을 사용하기 전에 파일을 캐시해야 합니다. 대부분의 파일 시스템에서 파일 캐싱은 기본적으로 사용하도록 설정되지만 파일 만들기 옵션에서 FILE_NO_INTERMEDIATE_BUFFERING 플래그를 TRUE 설정하여 사용하지 않도록 설정할 수 있습니다.
CcInitializeCacheMap호출한 후 파일 시스템은 CcSetAdditionalCacheAttributes 호출하여 원하는 경우 미리 읽기 또는 쓰기 숨김을 사용하지 않도록 설정할 수 있습니다.
파일을 닫을 때 파일 캐싱을 지원하는 모든 파일 시스템은 파일이 캐시되었는지 여부에 관계없이 해당 파일에 CcUninitializeCacheMap 호출해야 합니다. 캐싱을 사용하지 않도록 설정하여 파일을 만든 경우에도 파일 시스템은 CcUninitializeCacheMap호출해야 합니다.
CcIsFileCached 매크로는 파일이 캐시되었는지 여부를 결정합니다.
BOOLEAN CcIsFileCached(
[in] PFILE_OBJECT FileObject
);
매개 변수
FileObject[in] [in]
파일의 파일 개체에 대한 포인터입니다.
반환 값
파일이 캐시되면
요구 사항
요구 | 값 |
---|---|
대상 플랫폼 | 보편적 |
헤더 | ntifs.h(Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |