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 작업으로 증가합니다.

  • 파일 크기가 증가하거나 감소합니다.

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

파일 시스템은 캐시 맵이 유효하고 이 호출 기간 동안 그대로 유지되도록 해야 합니다.

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

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

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe

추가 정보

CcInitializeCacheMap

CcSetFileSizesEx