다음을 통해 공유


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 구조를 가져와서 GET_LENGTH_INFORMATION 구조를 가져오는 IOCTL_DISK_GET_LENGTH_INFO. 이러한 IOCTL은 모두 disk.sys 수준에서 사용할 수 있습니다.

요구 사항

요구
헤더 ntdddisk.h(Ntdddisk.h 포함)