다음을 통해 공유


DISK_GEOMETRY_EX 구조체(ntdddisk.h)

DISK_GEOMETRY_EX 구조체는 DISK_GEOMETRY 구조체로 구성된 임의 길이 구조체이고 그 뒤에 DISK_PARTITION_INFO 구조체가 차례로 DISK_DETECTION_INFO 구조체로 구성됩니다.

구문

typedef struct _DISK_GEOMETRY_EX {
  DISK_GEOMETRY Geometry;
  LARGE_INTEGER DiskSize;
  UCHAR         Data[1];
} DISK_GEOMETRY_EX, *PDISK_GEOMETRY_EX;

멤버

Geometry

이 멤버에 대한 설명은 DISK_GEOMETRY 참조하세요.

DiskSize

디스크의 크기(바이트)를 포함합니다.

Data[1]

DISK_PARTITION_INFO 구조와 DISK_DETECTION_INFO 구조로 시작하는 데이터 블록의 시작 입니다.

설명

DISK_GEOMETRY_EX 실제 디스크의 기하 도형(미디어 유형, 실린더 수, 실린더당 트랙 수, 트랙당 섹터 및 섹터당 바이트)에 대한 정보를 검색하기 위해 IOCTL_DISK_GET_DRIVE_GEOMETRY_EX 및 IOCTL_DISK_GET_MEDIA_TYPES IOCTL과 함께 사용됩니다.

파티션 및 검색 정보가 DISK_GEOMETRY_EX 구조 내의 고정 위치에 있지 않으므로 ntdddisk.h 는 이 정보에 액세스하기 위한 두 개의 매크로를 제공합니다. 두 매크로 모두 DISK_GEOMETRY_EX 형식의 구조체에 대한 포인터를 인수로 사용합니다.

#if (NTDDI_VERSION < NTDDI_WS03)
#define DiskGeometryGetPartition(Geometry)\
                        ((PDISK_PARTITION_INFO)((Geometry)+1))

#define DiskGeometryGetDetect(Geometry)\
                        ((PDISK_DETECTION_INFO)(((PBYTE)DiskGeometryGetPartition(Geometry)+\
                                        DiskGeometryGetPartition(Geometry)->SizeOfPartitionInfo)))
#else
#define DiskGeometryGetPartition(Geometry)\
                        ((PDISK_PARTITION_INFO)((Geometry)->Data))

#define DiskGeometryGetDetect(Geometry)\
                        ((PDISK_DETECTION_INFO)(((ULONG_PTR)DiskGeometryGetPartition(Geometry)+\
                                        DiskGeometryGetPartition(Geometry)->SizeOfPartitionInfo)))
#endif

요구 사항

요구 사항
헤더 ntdddisk.h(Ntdddisk.h, Ntddk.h, Ntdddisk.h 포함)

추가 정보

DISK_DETECTION_INFO

DISK_GEOMETRY

DISK_PARTITION_INFO

IOCTL_DISK_GET_DRIVE_GEOMETRY

IOCTL_DISK_GET_MEDIA_TYPES