다음을 통해 공유


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_MJ_DEVICE_CONTROL

입력 버퍼

없음

입력 버퍼 길이

없음

출력 버퍼

드라이버는 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 포함)