IOCTL_DISK_GET_DRIVE_GEOMETRY_EX IOCTL(ntdddisk.h)
실제 디스크의 기하 도형(미디어 유형, 실린더 수, 실린더당 트랙 수, 트랙당 섹터 및 섹터당 바이트)에 대한 정보를 반환합니다.
IOCTL_DISK_GET_DRIVE_GEOMETRY_EX 이전 IOCTL_DISK_GET_DRIVE_GEOMETRY 요청의 차이점은 IOCTL_DISK_GET_DRIVE_GEOMETRY_EX MBR(마스터 부팅 레코드) 및 GPT(GUID 파티션 테이블) 형식의 분할된 미디어에서 정보를 검색할 수 있는 반면 IOCTL_DISK_GET_DRIVE_GEOMETRY MBR 스타일 미디어만 읽을 수 있다는 것입니다.
주 코드
입력 버퍼
없음
입력 버퍼 길이
없음
출력 버퍼
드라이버는 Irp-AssociatedIrp.SystemBuffer>의 버퍼에 있는 DISK_GEOMETRY_EX 데이터를 반환합니다. 출력 버퍼의 크기가 입력 버퍼와 같지 않을 수 있습니다.
출력 버퍼 길이
IRP의 I/O 스택 위치에 있는 Parameters.DeviceIoControl.OutputBufferLength는 버퍼의 크기(바이트)를 나타내며, 버퍼의 크기는 적어도 (sizeof(DISK_GEOMETRY) + sizeof(LARGE_INTEGER)) 및 최대 (sizeof(DISK_GEOMETRY) + sizeof(LARGE_INTEGER) + sizeof(DISK_PARTITION_INFO) + sizeof(DISK_DETECTION_INFO))여야 합니다.
상태 블록
정보 필드는 반환된 데이터의 크기(바이트)로 설정됩니다.
상태 필드는 다음 값 중 하나를 반환합니다.
- STATUS_SUCCESS
- STATUS_UNRECOGNIZED_MEDIA
- STATUS_INVALID_PARAMETER
- STATUS_INVALID_DEVICE_REQUEST
- STATUS_INFO_LENGTH_MISMATCH
- STATUS_INSUFFICIENT_RESOURCES
- STATUS_BUFFER_TOO_SMALL
설명
Partmgr.sys 위의 호출자만 디스크 파티션 정보를 포함하기 때문에 이 IOCTL을 호출할 수 있습니다.
이 IOCTL은 IOCTL_DISK_GET_DRIVE_GEOMETRY 사용하여 DISK_GEOMETRY 구조와 IOCTL_DISK_GET_LENGTH_INFO 가져와 GET_LENGTH_INFORMATION 구조를 가져옵니다. 이러한 IOCTL은 모두 disk.sys 수준에서 사용할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | ntdddisk.h(Ntdddisk.h 포함) |