IOCTL_VOLUME_READ_PLEX IOCTL(ntddvol.h)
볼륨의 특정 플렉스 대한 읽기를 수행합니다. 모든 플렉스는 동일하기 때문에 볼륨 관리자는 일반 읽기 작업 중에 볼륨의 플렉스에서 데이터를 검색할 수 있습니다. 볼륨 관리자는 실제 미디어의 I/O 부하를 분산하고 읽기 성능을 최대화하기 위해 볼륨의 플렉스 간에 읽기를 분산합니다.
그러나 애플리케이션 또는 커널 모드 구성 요소가 볼륨 관리자가 하나를 선택하도록 하는 대신 특정 플렉스에서 데이터를 읽어야 하는 경우 이 IOCTL을 사용하여 이 작업을 수행할 수 있습니다.
주 코드
입력 버퍼
호출자는 Irp->AssociatedIrp.SystemBuffer버퍼의 시작 부분에 논리 오프셋을 포함하는 VOLUME_READ_PLEX_INPUT 구조를 삽입합니다.
입력 버퍼 길이
IRP의 I/O 스택 위치에 있는 Parameters.DeviceIoControl.InputBufferLength 입력 버퍼의 크기(바이트)를 나타내며, 이는 VOLUME_READ_PLEX_INPUT(sizeof) 값보다 크거나 같아야 합니다.출력 버퍼
IRP_MJ_READ마찬가지로 이 IOCTL은 MDL(메모리 설명자 목록)으로 전달된 메모리 버퍼의 읽기 데이터를 Irp->MdlAddress 필드에 저장합니다.
출력 버퍼 길이
버퍼의 길이입니다.
상태 블록
작업이 성공하면 볼륨 관리자는 상태 필드를 STATUS_SUCCESS 설정합니다.
Irp->AssociatedIrp.SystemBuffer VOLUME_READ_PLEX_INPUT 구조체에는 512바이트 경계에 맞춰야 하는 Length 멤버가 있습니다. Length 적절한 맞춤이 없으면 작업이 실패하고 볼륨 관리자가 상태 필드를 VKE_EINVAL 설정합니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP부터 사용할 수 있습니다. |
헤더 | ntddvol.h(Ntddvol.h 포함) |