CcFastCopyRead 함수(ntifs.h)
CcFastCopyRead 루틴은 캐시된 파일에서 메모리의 버퍼로 빠른 복사 읽기를 수행합니다.
구문
void CcFastCopyRead(
[in] PFILE_OBJECT FileObject,
[in] ULONG FileOffset,
[in] ULONG Length,
[in] ULONG PageCount,
[out] PVOID Buffer,
[out] PIO_STATUS_BLOCK IoStatus
);
매개 변수
[in] FileObject
데이터를 읽을 캐시된 파일의 파일 개체에 대한 포인터입니다.
[in] FileOffset
캐시된 파일 내에서 바이트 오프셋을 시작합니다.
[in] Length
읽을 데이터의 길이(바이트)입니다.
[in] PageCount
읽기로 확장되는 페이지 수입니다.
[out] Buffer
데이터를 복사할 버퍼에 대한 포인터입니다.
[out] IoStatus
최종 완료 상태 받는 구조체에 대한 포인터 및 작업에 대한 정보입니다. 모든 데이터가 성공적으로 복사되지 않은 경우 IoStatus.Information 에는 복사된 실제 바이트 수가 포함됩니다.
반환 값
없음
설명
CcFastCopyRead 는 더 빠른 버전의 CcCopyRead입니다. 다음과 같은 측면에서 CcCopyRead 와 다릅니다.
FileOffset 은 PLARGE_INTEGER 아닌 ULONG입니다.
Wait 매개 변수가 없습니다. 호출자는 모든 데이터가 복사될 때까지 대기 상태를 입력할 수 있어야 합니다.
CcFastCopyRead 는 읽기 작업이 성공했는지 여부를 나타내는 BOOLEAN을 반환하지 않습니다.
FileOffset 및 Length 는 캐시된 파일의 크기보다 작거나 같아야 합니다. 그렇지 않으면 어설션 오류가 발생합니다.
오류가 발생하면 CcFastCopyRead는 해당 특정 오류에 대한 상태 예외를 발생합니다. 예를 들어 풀 할당 오류가 발생하면 CcFastCopyRead는 STATUS_INSUFFICIENT_RESOURCES 예외를 발생합니다. I/O 오류가 발생하면 CcFastCopyRead는 I/O 오류의 상태 예외를 발생합니다. 따라서 오류가 발생하는 경우 제어하려면 드라이버가 try-except 또는 try-finally 문에서 CcFastCopyRead에 대한 호출을 래핑해야 합니다.
파일을 캐시하려면 CcInitializeCacheMap을 사용합니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
헤더 | ntifs.h(Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |
추가 정보
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기