반응형

 

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

 

아직 안정화된 버전이 아니므로 테스트용으로 가볍게 사용해 보시기 바랍니다.

DiskInfoView.exe
4.65MB

 

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

 

기능 활용 예제(파티션 작업 )

 

DiskManager.exe
1.73MB

아직 안정화된 버전이 아니므로 테스트용으로 가볍게 사용해 보시기 바랍니다.

 


 

🔷 개발 목적

기존 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 기반 문자열 추출

✔ 미디어 타입 판별 로직

  1. BusType == 17 → NVMe
  2. SeekPenalty False → SSD
  3. 그 외 → HDD

이 방식은 단순 문자열 판별보다 훨씬 정확합니다.


② 파티션 상세 정보 분석

디스크 클릭 시 하단에 상세 파티션 정보 표시

표시 항목:

항목설명
No 파티션 번호
Drive 할당 문자
Type 파티션 종류
Size 용량
Format 파일 시스템
Status 용도 설명

🔍 GPT 파티션 GUID 직접 분석

아래 GUID를 직접 비교합니다:

  • ESP (EFI System Partition)
  • MSR (Microsoft Reserved)
  • Recovery
  • Data

이를 통해 다음과 같이 분류:

  • [부팅] ESP
  • [예약] MSR
  • [복구] Recovery
  • Windows 설치 파티션 자동 감지
  • 일반 데이터 저장소

이 방식은 Diskpart 텍스트 기반 분석보다 훨씬 정확합니다.


③ 드라이브 문자가 없는 파티션 파일 시스템 확인

기존 방식에서는 문자가 없으면 파일 시스템 확인이 불가했습니다.

본 버전에서는:

  1. FindFirstVolumeW
  2. DeviceIoControl
  3. 물리 디스크 번호 + 파티션 번호 매칭
  4. Volume GUID 확보
  5. GetVolumeInformationW 호출

문자 없이도 파일 시스템 확인 가능

이 기능이 WinAPI 전환의 가장 큰 개선점입니다.


④ 드라이브 문자 자동 할당 기능 (Mount)

절차:

  1. 디스크 선택
  2. 파티션 선택
  3. 빈 드라이브 문자 자동 계산 (D~Z)
  4. diskpart 스크립트 생성
  5. assign 실행
  6. UI 자동 갱신
  7. 드라이브 인식 대기
  8. 자동 탐색기 열기

✔ 개선 포인트

  • UI 선택 상태 유지
  • 포커스 복구
  • 자동 재로드
  • 자동 열기 기능 추가

⑤ 문자 해제 기능 (Unmount)

  • mountvol /D 방식 사용
  • 해제 후 즉시 UI 갱신
  • 포커스 상태 유지

⑥ NVMe / SSD / HDD 자동 판별

단순 모델 문자열 기반이 아닌:

  • BusType 분석
  • SeekPenalty 조회

이중 판별 구조로 정확성 향상


⑦ Explorer++ 내장 실행 지원

  • 기본: Windows 탐색기
  • 선택: Explorer++
  • 프로그램 종료 시 자동 삭제
  • PE 환경 고려 (@WindowsDir & "\Temp" 사용)

⑧ 중복 실행 방지 (Mutex)

 
_Singleton("DiskInfo View 2.0 (WinAPI)", 1)
 

이미 실행 중이면 상단 경고 메시지 표시 후 종료.


⑨ 실시간 새로고침 시스템

  • Refresh 버튼
  • 마운트/언마운트 후 자동 갱신
  • Drive Combo 자동 재계산

🔷 기술적 개선 요약

항목기존 Diskpart 기반WinAPI 기반
구조 텍스트 파싱 커널 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)

반응형

+ Recent posts