다음을 통해 공유


CcCanIWrite 함수(ntifs.h)

CcCanIWrite 루틴은 호출자가 캐시된 파일에 쓸 수 있는지 여부를 결정합니다.

통사론

BOOLEAN CcCanIWrite(
  [in] PFILE_OBJECT FileObject,
  [in] ULONG        BytesToWrite,
  [in] BOOLEAN      Wait,
  [in] UCHAR        Retrying
);

매개 변수

[in] FileObject

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

[in] BytesToWrite

쓸 바이트 수입니다.

[in] Wait

호출자가 캐시된 파일에 쓸 수 있을 때까지 대기 상태로 전환할 수 있으면 TRUE로 설정하고, 그렇지 않으면 FALSE로 설정합니다.

[in] Retrying

이 쓰기 요청에 대해 CcCanIWrite 처음 호출되는 TRUE이면 FALSE로 설정합니다. 그렇지 않으면 TRUE입니다.

반환 값

CcCanIWrite 캐시 관리자가 쓰기 요청을 수락할 수 있으면 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다.

발언

CcCopyWrite 호출하거나 CcFastCopyWrite 호출하기 전에 CcCanIWrite 호출해야 합니다.

CcCanIWrite TRUE를 반환하면 호출자는 즉시 CcCopyWrite 호출하거나 CcFastCopyWrite수 있습니다.

CcCanIWrite FALSE를 반환하는 경우 호출자는 대신 CcDeferWrite 호출하여 쓰기 요청을 연기해야 합니다.

일반적으로 다음 조건이 충족되면 캐시 관리자는 쓰기 요청을 수락할 수 있습니다.

  • 쓸 데이터의 양이 너무 크지 않습니다.

  • 쓰기 작업을 수행하기에 충분한 메모리가 있습니다.

  • 시스템 캐시의 더티 페이지 수가 더티 페이지 임계값(CcDirtyPageThreshold)을 초과하지 않습니다.

  • 이 파일에 대해 파일별 더티 페이지 임계값이 있는 경우 시스템 캐시에 있는 이 파일의 더티 페이지 수를 초과하지 않습니다.

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

요구 사항

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

참고 항목

ccCopyWrite

CcDeferWrite

ccFastCopyWrite

ccInitializeCacheMap

CcSetDirtyPageThreshold