Share via


FSCTL_OFFLOAD_READ 제어 코드

FSCTL_OFFLOAD_READ 제어 코드는 오프로드 읽기 기본 형식을 지원하는 스토리지 시스템의 데이터 블록에 대한 오프로드 읽기를 시작합니다.

이 작업을 수행하려면 다음 매개 변수 를 사용하여 FltFsControlFile 또는 ZwFsControlFile 을 호출합니다.

매개 변수

  • 인스턴스 [in]: FltFsControlFile만 해당 합니다. 호출자에 대한 불투명 instance 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

  • FileObject [in]: FltFsControlFile만 해당 합니다. 읽을 파일을 지정하는 파일 포인터 개체입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

  • FileHandle [in]: ZwFsControlFile만 해당 합니다. 읽을 파일의 파일 핸들입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

  • FsControlCode [in]: 작업에 대한 제어 코드입니다. 이 작업에 는 FSCTL_OFFLOAD_READ 사용합니다.

  • InputBuffer [in]: 읽을 데이터 블록의 크기와 오프셋을 포함하는 FSCTL_OFFLOAD_READ_INPUT 구조체에 대한 포인터입니다.

  • InputBufferLength [in]: InputBuffer가 가리키는 버퍼의 크기(바이트)입니다. 이 값은 sizeof(FSCTL_OFFLOAD_READ_INPUT)입니다.

  • OutputBuffer [out]: 오프로드 읽기 작업의 결과를 수신하는 FSCTL_OFFLOAD_READ_OUTPUT 구조체에 대한 포인터입니다.

  • OutputBufferLength [out]: OutputBuffer 매개 변수가 가리키는 버퍼의 크기(바이트)입니다. 이 값은 sizeof(FSCTL_OFFLOAD_READ_OUTPUT) 이상이어야 합니다.

상태 블록

FltFsControlFile 또는 ZwFsControlFile 은 작업이 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 적절한 함수가 다음 NTSTATUS 값 중 하나를 반환할 수 있습니다.

코드 의미
STATUS_INVALID_DEVICE_REQUEST 지정된 핸들이 유효한 파일 핸들이 아닙니다.
STATUS_INVALID_PARAMETER 매개 변수가 잘못되었습니다. 설명 부분을 참조하세요.
STATUS_VOLUME_DISMOUNTED 파일 시스템 볼륨이 분리됩니다.
STATUS_NOT_SUPPORTED 이 볼륨에서는 읽기 작업 오프로드가 지원되지 않습니다.
STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED 요청된 파일 형식은 지원되지 않습니다. 이러한 파일 형식에는 TxF(트랜잭션된 파일)에서 오프로드 작업이 지원되지 않습니다. 사용자가 아닌 파일; 압축된 파일; 암호화된 파일; 스파스 파일; NTFS Metatdata 파일.
STATUS_FILE_DELETED 이 파일의 데이터 스트림이 잘못되었습니다.
STATUS_FILE_CLOSED 파일 핸들이 닫힙니다.
STATUS_INVALID_HANDLE 지정된 파일 핸들이 잘못되었습니다.
STATUS_FILE_LOCK_CONFLICT 현재 파일 잠금 상태로 인해 읽기 권한이 부족합니다.
STATUS_END_OF_FILE FSCTL_OFFLOAD_READ_INPUTFileOffset 멤버는 EOF(파일 끝) 후에 시작됩니다.
STATUS_DISMOUNTED_VOLUME 분리된 볼륨에서는 오프로드 읽기가 발생할 수 없습니다.
STATUS_INSUFFICIENT_RESOUCES 요청을 완료하는 데 사용할 수 있는 리소스가 부족합니다.
STATUS_BUFFER_TOO_SMALL OutputBufferLength 가 너무 작아 서 OutputBufferFSCTL_OFFLOAD_READ_OUTPUT 구조를 받을 수 없습니다.

설명

오프로드 읽기는 일반 파일에만 사용할 수 있습니다. 지원되지 않는 파일 형식 목록은 STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED 대한 설명을 참조하세요.

읽기는 VDL(유효한 데이터 길이) 이상으로 시작할 수 있지만 EOF를 초과할 수는 없습니다.

STATUS_INVALID_PARAMETER 반환될 때 오류는 다음 잘못된 매개 변수 중 하나일 수 있습니다.

  • 파일 크기가 PAGE_SIZE 미만입니다.
  • InputBufferLength<sizeof(FSCTL_OFFLOAD_READ_INPUT).
  • 이러한 FSCTL_OFFLOAD_READ_INPUT 멤버 중 하나 이상이 잘못되었습니다.
    • FileOffset 은 볼륨의 논리적 섹터 크기의 배수가 아닙니다.
    • CopyLength 는 볼륨의 논리적 섹터 크기의 배수가 아닙니다.
    • 크기FSCTL_OFFLOAD_READ_INPUT 구조체의 크기가 아닙니다.
    • FileOffset + CopyLength>MAXULONGLONG.

요구 사항

요구 사항 유형 요구 사항
지원되는 최소 클라이언트 Windows 8
헤더 Ntifs.h ( Ntifs.h 또는 Fltkernel.h 포함)

추가 정보

FltFsControlFile

ZwFsControlFile

FSCTL_OFFLOAD_READ_INPUT

FSCTL_OFFLOAD_READ_OUTPUT