다음을 통해 공유


CcSetFileSizes 함수(ntifs.h)

CcSetFileSizes 루틴은 크기가 변경된 캐시된 파일에 대한 캐시 맵 및 섹션 개체를 업데이트합니다. 오류 처리에 대한 더 나은 지침과 함께 NTSTATUS 반환 코드를 제공하기 때문에 CcSetFileSizesEx 대신 사용합니다.

통사론

void CcSetFileSizes(
  [in] PFILE_OBJECT   FileObject,
  [in] PCC_FILE_SIZES FileSizes
);

매개 변수

[in] FileObject

캐시된 파일의 파일 개체에 대한 포인터입니다.

[in] FileSizes

새 파일 크기 정보를 포함하는 CC_FILE_SIZES 구조체에 대한 포인터입니다.

반환 값

없음

발언

파일 시스템은 CcSetFileSizesEx 호출하거나 CcSetFileSizes 호출하여 캐시된 파일에 대해 다음 중 하나가 변경될 때마다 캐시 관리자 데이터 구조를 업데이트해야 합니다.

  • 할당 크기가 증가합니다.

  • 유효한 데이터 길이가 줄어듭니다.

  • 유효한 데이터 길이는 캐시되지 않은 I/O 작업으로 증가합니다.

  • 파일 크기가 증가하거나 줄어듭니다.

오류가 발생하면 ccSetFileSize가 특정 오류에 대한 상태 예외가 발생합니다. 예를 들어 풀 할당 오류가 발생하면 ccSetFileSizes STATUS_INSUFFICIENT_RESOURCES 예외가 발생합니다. 따라서 오류가 발생하는 경우 제어하려면 드라이버가 try-finally 문을 try-except에서 ccSetFileSizes 호출을 래핑해야 합니다.

파일 시스템은 캐시 맵이 유효한지 확인해야 하며 이 호출 기간 동안 계속 유지됩니다.

파일을 캐시하려면 CcInitializeCacheMap사용합니다.

캐시된 파일의 크기를 얻으려면 FileObjectCcGetFileSizePointer전달합니다.

요구 사항

요구
대상 플랫폼 보편적
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe

참고 항목

ccInitializeCacheMap

CcSetFileSizesEx