FSCTL_OFFLOAD_READ 제어 코드
FSCTL_OFFLOAD_READ 제어 코드는 오프로드 읽기 기본 형식을 지원하는 스토리지 시스템의 데이터 블록에 대한 오프로드 읽기를 시작합니다.
이 작업을 수행하려면 다음 매개 변수 를 사용하여 FltFsControlFile 또는 ZwFsControlFile 을 호출합니다.
매개 변수
인스턴스 [in]
FltFsControlFile만 해당 됩니다. 호출자에 대한 불투명 인스턴스 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
FileObject [in]
FltFsControlFile만 해당 됩니다. 읽을 파일을 지정하는 파일 포인터 개체입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
FileHandle [in]
ZwFsControlFile만 해당됩니다 . 읽을 파일의 파일 핸들입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
FsControlCode [in]
작업에 대한 제어 코드입니다. 이 작업에 FSCTL_OFFLOAD_READ 사용합니다.
InputBuffer
읽을 데이터 블록의 크기와 오프셋을 포함하는 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 |
파일 크기가 PAGE_SIZE 미만입니다. 또는 InputBufferLength<sizeof(FSCTL_OFFLOAD_READ_INPUT). 또는 이러한 FSCTL_OFFLOAD_READ_INPUT 멤버 중 하나 이상이 잘못되었습니다. FileOffset 은 볼륨의 논리 섹터 크기의 배수가 아닙니다. CopyLength 는 볼륨의 논리 섹터 크기의 배수가 아닙니다. 크기 는 FSCTL_OFFLOAD_READ_INPUT 구조체의 크기가 아닙니다. FileOffset + CopyLength>막술롱. |
STATUS_VOLUME_DISMOUNTED |
파일 시스템 볼륨이 분리됩니다. |
STATUS_NOT_SUPPORTED |
이 볼륨에서는 읽기 작업 오프로드가 지원되지 않습니다. |
STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED |
요청된 파일 형식은 지원되지 않습니다. 이러한 파일 형식에서는 오프로드 작업이 지원되지 않습니다.
|
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 가 너무 작아 서 OutputBuffer 가 FSCTL_OFFLOAD_READ_OUTPUT 구조를 수신할 수 없습니다. |
설명
읽기 오프로드는 일반 파일에만 사용할 수 있습니다. 지원되지 않는 파일 형식 목록은 STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED 대한 설명을 참조하세요.
읽기는 VDL(유효한 데이터 길이) 이상으로 시작할 수 있지만 EOF를 벗어나는 것은 아닙니다.
요구 사항
Version |
Windows 8 시작해서 사용할 수 있습니다. |
헤더 |
Ntifs.h(Ntifs.h 또는 Fltkernel.h 포함) |