다음을 통해 공유


FSCTL_OFFLOAD_READ_OUTPUT 구조체(ntifs.h)

FSCTL_OFFLOAD_READ_OUTPUT 구조에는 FSCTL_OFFLOAD_READ 제어 코드 요청에 대한 출력이 포함됩니다.

구문

typedef struct _FSCTL_OFFLOAD_READ_OUTPUT {
  ULONG     Size;
  ULONG     Flags;
  ULONGLONG TransferLength;
  UCHAR     Token[512];
} FSCTL_OFFLOAD_READ_OUTPUT, *PFSCTL_OFFLOAD_READ_OUTPUT;

멤버

Size

이 구조체의 크기입니다. 이 멤버를 sizeof(FSCTL_OFFLOAD_READ_OUTPUT)로 설정합니다.

Flags

결과 플래그입니다. 이 값은 다음 값의 비트 OR 조합입니다.

의미
OFFLOAD_READ_FLAG_FILE_TOO_SMALL
0x00000001
읽을 파일이 너무 작아서 오프로드 작업이 수행되지 않습니다.
OFFLOAD_READ_FLAG_ALL_ZERO_BEYOND_CURRENT_RANGE
0x00000002
선택한 범위를 벗어나는 범위에는 모두 0이 포함됩니다.
OFFLOAD_READ_FLAG_CANNOT_OFFLOAD_BEYOND_CURRENT_RANGE
0x00000004
오프로드 작업은 선택한 범위를 초과하여 완료할 수 없습니다. 오프로드되지 않은 읽기 메서드를 사용하여 작업을 완료해야 합니다.

TransferLength

토큰이 나타내는 데이터의 길이(바이트)입니다.

Token[512]

FSCTL_OFFLOAD_READ_INPUT 지정된 범위 내의 파일 데이터를 나타내는 토큰 구조(STORAGE_OFFLOAD_TOKEN)를 포함하는 바이트 배열입니다. 토큰의 내용은 오프로드 작업 간에 수정되지 않은 상태로 유지되어야 합니다.

설명

FSCTL_OFFLOAD_READ 작업이 성공하면 스토리지 디바이스의 복사 공급자는 파일 데이터 읽기 부분을 식별하는 고유한 토큰 값을 FSCTL_OFFLOAD_READ_OUTPUT 반환합니다.

복사 공급자는 FSCTL_OFFLOAD_READ_INPUT 구조체의 TokenTimeToLive 멤버에서 읽은 데이터를 보존합니다.

토큰FSCTL_OFFLOAD_READ_INPUTFileOffset 멤버에서 요청된 오프셋으로 시작하는 파일의 연속 영역을 나타냅니다. 복사된 결과 길이인 TransferLength는 원래 FSCTL_OFFLOAD_READ_INPUTCopyLength 멤버에 지정된 길이보다 작을 수 있습니다. 값이 작을수록 토큰 이 요청된 것보다 적은 데이터를 논리적으로 나타낼 수 있음을 나타냅니다.

요청된 데이터보다 적은 데이터가 전송된 경우 다른 FSCTL_OFFLOAD_READ 요청을 수행하여 읽기 작업을 완료할 수 있습니다. 다음 요청은 transferLength의 값과 TransferLength의 값을 뺀 이전 길이의 조정된 읽기 길이를 사용하여 FSCTL_OFFLOAD_READ_INPUT 구조에서 업데이트된 FileOffset 멤버를 사용합니다. 또한 예를 들어 ZwReadFile 루틴을 사용하여 오프로드되지 않은 읽기 메서드를 통해 불완전한 읽기 작업을 완료할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8
머리글 ntifs.h(Ntifs.h, Fltkernel.h 포함)

추가 정보

FSCTL_OFFLOAD_READ

FSCTL_OFFLOAD_READ_INPUT

STORAGE_OFFLOAD_TOKEN