다음을 통해 공유


CcCopyWrite 함수(ntifs.h)

CcCopyWrite 루틴은 사용자 버퍼에서 캐시된 파일로 데이터를 복사합니다.

통사론

BOOLEAN CcCopyWrite(
  [in] PFILE_OBJECT   FileObject,
  [in] PLARGE_INTEGER FileOffset,
  [in] ULONG          Length,
  [in] BOOLEAN        Wait,
  [in] PVOID          Buffer
);

매개 변수

[in] FileObject

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

[in] FileOffset

캐시된 파일 내의 시작 바이트 오프셋을 지정하는 변수에 대한 포인터입니다.

[in] Length

쓸 데이터의 길이(바이트)입니다.

[in] Wait

모든 데이터가 복사될 때까지 호출자를 대기 상태로 전환할 수 있으면 TRUE 설정되고, 그렇지 않으면 FALSE .

[in] Buffer

데이터를 복사할 버퍼에 대한 포인터입니다.

반환 값

CcCopyWrite 루틴은 데이터가 성공적으로 복사되면 TRUE 반환하고, 그렇지 않으면 FALSE .

발언

Wait TRUE경우 CcCopyWrite 복사 요청을 완료하고 TRUE반환합니다. 캐시된 파일의 필수 페이지가 이미 메모리에 있는 경우 데이터가 즉시 복사되고 차단이 발생하지 않습니다. 필요한 페이지가 없는 경우 모든 필수 페이지가 상주하고 데이터를 복사할 수 있을 때까지 호출자는 대기 상태로 설정됩니다.

Wait FALSE경우 CcCopyWrite 차단을 거부하고 캐시된 파일의 필수 페이지가 메모리에 아직 없거나 파일 개체에 FO_WRITE_THROUGH 플래그가 설정된 경우 FALSE반환합니다.

오류가 발생하면 CcCopyWrite 해당 특정 실패에 대한 상태 예외가 발생합니다. 예를 들어 풀 할당 오류가 발생하면 ccCopyWrite STATUS_INSUFFICIENT_RESOURCES 예외가 발생합니다. I/O 오류가 발생하면 CcCopyWrite I/O 오류의 상태 예외가 발생합니다. 따라서 오류가 발생하는 경우 제어를 위해 드라이버는 try-except 또는 try-finally 문을 CcCopyWrite 호출을 래핑해야 합니다.

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

요구 사항

요구
지원되는 최소 클라이언트 Windows 2000
대상 플랫폼 보편적
헤더 ntifs.h(Ntifs.h, FltKernel.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

참고 항목

ccInitializeCacheMap