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 구조를 가져와서 GET_LENGTH_INFORMATION 구조를 가져오는 IOCTL_DISK_GET_LENGTH_INFO. 이러한 IOCTL은 모두 disk.sys 수준에서 사용할 수 있습니다.
요구 사항
요구 | 값 |
---|---|
헤더 | ntdddisk.h(Ntdddisk.h 포함) |