CcZeroData 함수(ntifs.h)

CcZeroData 루틴은 캐시되거나 캐시되지 않은 파일에서 지정된 바이트 범위를 0으로 설정합니다.

참고

이 루틴은 파일의 유효한 데이터 길이를 초과하는 파일의 0개 부분만 호출해야 합니다. CcZeroData 는 이전에 작성된 파일 데이터를 수정하지 않습니다. 파일의 유효한 데이터 길이까지 파일의 일부인 이전에 작성된 데이터를 0으로 설정하려면 CcCopyWrite 또는 캐시된 다른 쓰기 인터페이스 중 하나를 호출합니다.

구문

BOOLEAN CcZeroData(
  [in] PFILE_OBJECT   FileObject,
  [in] PLARGE_INTEGER StartOffset,
  [in] PLARGE_INTEGER EndOffset,
  [in] BOOLEAN        Wait
);

매개 변수

[in] FileObject

바이트 범위가 0이 되는 파일의 FILE_OBJECT 대한 포인터입니다.

[in] StartOffset

0이 될 첫 번째 바이트에 대한 파일 내의 바이트 오프셋을 지정하는 변수에 대한 포인터입니다.

[in] EndOffset

파일 내의 바이트 오프셋을 0으로 지정할 마지막 바이트를 지정하는 변수에 대한 포인터입니다.

[in] Wait

호출자가 전체 바이트 범위가 0이 될 때까지 대기 상태로 전환해야 하는 경우 TRUE 로 설정합니다. 그렇지 않으면 이 매개 변수가 FALSE로 설정됩니다.

반환 값

데이터가 0이면 CcZeroDataTRUE 를 반환합니다. 그렇지 않으면 FALSE를 반환 합니다.

설명

0으로 설정할 파일은 캐시되거나 캐시되지 않을 수 있습니다. 그러나 파일이 캐시되지 않은 경우 StartOffsetEndOffset 값은 모두 볼륨 섹터 크기의 배수여야 합니다.

풀 할당 오류가 발생하고 WaitTRUE로 지정된 경우 CcZeroData 는 STATUS_INSUFFICIENT_RESOURCES 예외를 발생합니다. 풀 할당 오류가 발생하고 WaitFALSE로 지정된 경우 CcZeroDataFALSE를 반환하지만 예외는 발생하지 않습니다.

제공된 FileObject 가 캐싱을 사용하도록 설정하지 않았지만 캐싱이 스트림에 있는 경우(즉, 동일한 파일에 대한 다른 파일 개체에 캐싱이 사용하도록 설정된 경우) 0은 쓰기 통과 캐싱이 사용하도록 설정된 것처럼 처리됩니다.

WaitTRUE로 설정된 경우 CcZeroData는 0 데이터 요청을 완료하고 TRUE를 반환하도록 보장됩니다. 캐시된 파일의 필수 페이지가 이미 메모리에 상주하는 경우 데이터는 즉시 0이 되고 차단이 발생하지 않습니다. 필요한 페이지가 상주하지 않으면 모든 필수 페이지가 상주하고 데이터가 0이 될 때까지 호출자가 대기 상태로 유지됩니다.

WaitFALSE이고 캐시된 파일의 필수 페이지가 메모리에 아직 상주하지 않은 경우 CcZeroData는 차단을 거부하고 FALSE를 반환합니다.

풀 할당 오류가 발생하면 CcZeroData 에서 STATUS_INSUFFICIENT_RESOURCES 예외가 발생합니다. CcZeroData에서 IO 오류를 비롯한 다른 오류가 발생하면 호출자에게 오류가 발생합니다.

Windows Vista 이상 Windows 운영 체제의 경우 CcZeroData 의 동작은 다음과 같습니다.

  • 스트림이 캐시되고 write_through 경우 StartOffset 은 섹터를 정렬할 필요가 없습니다.
  • EndOffset이 정렬되지 않으면 다음 섹터 크기로 반올림됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000. Vista 이상 운영 체제에 대한 변경 내용은 설명을 참조하세요.
대상 플랫폼 유니버설
헤더 ntifs.h(Fltkernel.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=APC_LEVEL

추가 정보

CcInitializeCacheMap

CcIsFileCached

FILE_OBJECT