DiskInfo View 2.0 (WinAPI) 버전은 기존 Diskpart 의존형 구조에서 한 단계 더 발전하여, 핵심 디스크/파티션 정보 조회를 Windows API 기반으로 재구성한 버전입니다. 즉, 단순히 diskpart 출력 결과를 파싱하는 방식이 아닌, DeviceIoControl을 직접 호출하여 물리 디스크를 제어하고 분석하는 구조로 변경한 것이 가장 큰 특징입니다.
아직 안정화된 버전이 아니므로 테스트용으로 가볍게 사용해 보시기 바랍니다.


DiskInfoView v2.0 샘플 - 움짤(GIF)





기능 활용 예제(파티션 작업 )
아직 안정화된 버전이 아니므로 테스트용으로 가볍게 사용해 보시기 바랍니다.







🔷 개발 목적
기존 Diskpart 기반 방식은 다음과 같은 한계가 있었습니다.
- 텍스트 출력 결과를 분석해야 하는 구조
- OS 언어에 따른 출력 형식 차이
- 숨겨진 파티션(GPT ESP/MSR/Recovery) 식별 한계
- 드라이브 문자 없는 볼륨의 파일 시스템 확인 불가
이를 해결하기 위해 본 버전에서는 다음을 목표로 개선했습니다.
✔ Windows API 직접 호출
✔ GPT/MBR 구조 정확 분석
✔ 볼륨 GUID 기반 탐지
✔ NVMe / SSD / HDD 구분
✔ 실시간 UI 자동 갱신
🔷 주요 구조 변화
1️⃣ Diskpart 중심 → WinAPI 중심 구조
사용된 핵심 IOCTL
- IOCTL_DISK_GET_DRIVE_LAYOUT_EX
- IOCTL_DISK_GET_DRIVE_GEOMETRY_EX
- IOCTL_STORAGE_QUERY_PROPERTY
- IOCTL_STORAGE_GET_DEVICE_NUMBER
모두 DeviceIoControl()을 통해 직접 호출합니다.
이를 통해 다음이 가능해졌습니다:
- 디스크 GPT/MBR 판별
- 물리 파티션 개수 정확 계산
- 모델명 직접 추출
- 버스 타입 분석 (NVMe 판별)
- Seek Penalty 기반 SSD/HDD 구분
🔷 프로그램 주요 기능 상세 설명
① 디스크 전체 정보 표시
상단 리스트뷰에 표시되는 정보:
| Disk No | PhysicalDrive 번호 |
| Format | GPT / MBR |
| Size | 전체 용량 |
| Partitions | 실제 유효 파티션 수 |
| Media Type | NVMe / SSD / HDD |
| Model | 물리 디스크 모델명 |
✔ 모델명 추출 방식
IOCTL_STORAGE_QUERY_PROPERTY →
STORAGE_DEVICE_DESCRIPTOR 구조체 분석 →
Offset 기반 문자열 추출
✔ 미디어 타입 판별 로직
- BusType == 17 → NVMe
- SeekPenalty False → SSD
- 그 외 → HDD
이 방식은 단순 문자열 판별보다 훨씬 정확합니다.
② 파티션 상세 정보 분석
디스크 클릭 시 하단에 상세 파티션 정보 표시
표시 항목:
| No | 파티션 번호 |
| Drive | 할당 문자 |
| Type | 파티션 종류 |
| Size | 용량 |
| Format | 파일 시스템 |
| Status | 용도 설명 |
🔍 GPT 파티션 GUID 직접 분석
아래 GUID를 직접 비교합니다:
- ESP (EFI System Partition)
- MSR (Microsoft Reserved)
- Recovery
- Data
이를 통해 다음과 같이 분류:
- [부팅] ESP
- [예약] MSR
- [복구] Recovery
- Windows 설치 파티션 자동 감지
- 일반 데이터 저장소
이 방식은 Diskpart 텍스트 기반 분석보다 훨씬 정확합니다.

③ 드라이브 문자가 없는 파티션 파일 시스템 확인
기존 방식에서는 문자가 없으면 파일 시스템 확인이 불가했습니다.
본 버전에서는:
- FindFirstVolumeW
- DeviceIoControl
- 물리 디스크 번호 + 파티션 번호 매칭
- Volume GUID 확보
- GetVolumeInformationW 호출
→ 문자 없이도 파일 시스템 확인 가능
이 기능이 WinAPI 전환의 가장 큰 개선점입니다.
④ 드라이브 문자 자동 할당 기능 (Mount)
절차:
- 디스크 선택
- 파티션 선택
- 빈 드라이브 문자 자동 계산 (D~Z)
- diskpart 스크립트 생성
- assign 실행
- UI 자동 갱신
- 드라이브 인식 대기
- 자동 탐색기 열기
✔ 개선 포인트
- UI 선택 상태 유지
- 포커스 복구
- 자동 재로드
- 자동 열기 기능 추가
⑤ 문자 해제 기능 (Unmount)
- mountvol /D 방식 사용
- 해제 후 즉시 UI 갱신
- 포커스 상태 유지
⑥ NVMe / SSD / HDD 자동 판별
단순 모델 문자열 기반이 아닌:
- BusType 분석
- SeekPenalty 조회
이중 판별 구조로 정확성 향상
⑦ Explorer++ 내장 실행 지원
- 기본: Windows 탐색기
- 선택: Explorer++
- 프로그램 종료 시 자동 삭제
- PE 환경 고려 (@WindowsDir & "\Temp" 사용)
⑧ 중복 실행 방지 (Mutex)
이미 실행 중이면 상단 경고 메시지 표시 후 종료.
⑨ 실시간 새로고침 시스템
- Refresh 버튼
- 마운트/언마운트 후 자동 갱신
- Drive Combo 자동 재계산
🔷 기술적 개선 요약
| 구조 | 텍스트 파싱 | 커널 API 직접 호출 |
| GPT 분석 | 제한적 | GUID 직접 비교 |
| 파일시스템 조회 | 문자 필요 | GUID 기반 조회 가능 |
| NVMe 인식 | 문자열 | BusType 분석 |
| 파티션 수 계산 | 부정확 가능 | Layout 직접 계산 |
| 안정성 | OS 언어 영향 | 무관 |
🔷 이 버전의 의미
이 프로젝트는 단순 디스크 정보 툴이 아니라,
AutoIt 기반 WinAPI 레벨 디스크 분석기
로 발전한 버전입니다.
특히 다음 환경에서 매우 유용합니다:
- Windows PE
- 멀티부팅 환경
- GPT 구조 분석
- 숨겨진 파티션 확인
- 복구 파티션 작업
- EFI 파티션 수동 제어
🔷 결론
DiskInfo View 2.0은
- Diskpart 의존 구조에서 탈피
- Windows API 기반 정밀 분석
- GPT/MBR 완전 지원
- NVMe 자동 인식
- 문자 없는 볼륨 파일시스템 조회 가능
이라는 핵심 개선을 이루었습니다.
디스크 제어 수준을 한 단계 끌어올린 버전이며,
PE 및 시스템 관리 환경에서 강력한 도구로 활용할 수 있습니다.
DiskInfo View 2.0 샘플 - 움짤(GIF)

'자작 프로그램 > Diskpart 스크립트' 카테고리의 다른 글
| DiskManager v2.0 (WinAPI) (0) | 2026.03.06 |
|---|---|
| DiskInfo View v1.0 - 초안 샘플 (0) | 2026.03.01 |
| Diskpart 파티션 스크립트 v4.0 활용 방법 (0) | 2025.03.04 |
| Diskpart 파티션 스크립트 v4.5 - 기능 개선 (7) | 2025.02.04 |
| Diskpart 파티션 스크립트 v4.0 - 기능 개선(완료) (5) | 2025.01.23 |