CcCopyReadEx 함수(ntifs.h)
CcCopyReadEx 루틴은 캐시된 파일에서 사용자 버퍼로 데이터를 복사합니다. 작업의 I/O 바이트 수는 발급 스레드에 청구됩니다.
통사론
BOOLEAN CcCopyReadEx(
[in] PFILE_OBJECT FileObject,
[in] PLARGE_INTEGER FileOffset,
[in] ULONG Length,
[in] BOOLEAN Wait,
[out] PVOID Buffer,
[out] PIO_STATUS_BLOCK IoStatus,
[in] PETHREAD IoIssuerThread
);
매개 변수
[in] FileObject
데이터를 읽을 캐시된 파일의 파일 개체에 대한 포인터입니다.
[in] FileOffset
캐시된 파일 내의 시작 바이트 오프셋을 지정하는 변수에 대한 포인터입니다.
[in] Length
읽을 데이터의 길이(바이트)입니다.
[in] Wait
모든 데이터가 복사될 때까지 호출자를 대기 상태로 전환할 수 있으면 TRUE로 설정하고, 그렇지 않으면 FALSE로 설정합니다.
[out] Buffer
데이터를 복사할 버퍼에 대한 포인터입니다.
[out] IoStatus
작업에 대한 최종 완료 상태 및 정보를 수신하는 호출자 할당 구조체에 대한 포인터입니다. 모든 데이터가 성공적으로 복사되지 않은 경우 IoStatus.Information 복사된 실제 바이트 수가 포함됩니다.
[in] IoIssuerThread
읽기 요청을 실행하는 스레드입니다. 디스크 I/O 회계를 사용하도록 설정된 파일 시스템의 경우 I/O가 청구되는 스레드입니다. IoIssuerThread NULL이면 I/O가 현재 스레드에 청구됩니다.
반환 값
CcCopyReadEx 루틴은 데이터가 성공적으로 복사되면 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다.
발언
Wait TRUE이면 CcCopyReadEx 복사 요청을 완료하고 TRUE를 반환합니다. 캐시된 파일의 필수 페이지가 이미 메모리에 있는 경우 데이터가 즉시 복사되고 차단이 발생하지 않습니다. 필요한 페이지가 없는 경우 모든 필수 페이지가 상주하고 데이터를 복사할 수 있을 때까지 호출자는 대기 상태로 설정됩니다.
Wait FALSE이면 CcCopyReadEx 차단을 거부하고 캐시된 파일의 필수 페이지가 메모리에 아직 없는 경우 FALSE를 반환합니다.
FileOffset 및 Length 캐시된 파일의 크기보다 작거나 같아야 합니다. 그렇지 않으면 어설션 오류가 발생합니다.
오류가 발생하면 ccCopyReadEx
파일을 캐시하려면 CcInitializeCacheMap사용합니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8 |
대상 플랫폼 | 보편적 |
헤더 | ntifs.h(Ntifs.h, FltKernel.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL |
<= APC_LEVEL |
참고 항목
CcFastCopyRead
ccInitializeCacheMap
ccReadAhead