IoReadPartitionTableEx 함수(ntddk.h)
IoReadPartitionTableEx 루틴은 지정된 섹터 크기를 가진 디스크의 파티션 목록을 읽고 인식된 각 파티션에 대한 파티션 목록에 항목을 만듭니다.
구문
NTSTATUS IoReadPartitionTableEx(
[in] PDEVICE_OBJECT DeviceObject,
_DRIVE_LAYOUT_INFORMATION_EX **DriveLayout
);
매개 변수
[in] DeviceObject
파티션을 읽을 디스크의 디바이스 개체에 대한 포인터입니다.
DriveLayout
초기화되지 않은 주소에 대한 포인터입니다. 성공하면 IoReadPartitionTableEx 는 페이지가 없는 풀에서 이 버퍼에 대한 메모리를 할당하고 드라이브 레이아웃 정보를 반환합니다.
반환 값
이 루틴은 하나 이상의 섹터 테이블을 읽은 경우 STATUS_SUCCESS 값을 반환합니다. 그렇지 않으면 오류 상태 값을 반환하고 PartitionBuffer의 포인터를 NULL로 설정합니다.
설명
IoReadPartitionTableEx 는 디스크 드라이버에서만 사용해야 합니다. 다른 드라이버는 대신 IOCTL_DISK_GET_DRIVE_LAYOUT_EX 디스크 I/O 요청을 사용해야 합니다.
IoReadPartitionTableEx 는 GPT(GUID 파티션 테이블) 디스크와 레거시 MBR(마스터 부팅 레코드) 디스크에서 파티션 테이블 정보를 읽을 수 있습니다. 디스크 디바이스 드라이버는 드라이버 초기화 중에 이 루틴을 호출합니다.
ExFreePool을 사용하여 이 루틴에 의해 할당된 PartitionBuffer의 할당을 취소하는 것은 호출자의 책임입니다.
디스크 드라이버는 다음 I/O 제어 코드를 사용하여 IRP_MJ_DEVICE_CONTROL 요청에 대한 응답으로 파티션 정보를 반환하고 설정합니다.
- IOCTL_DISK_GET_PARTITION_INFO_EX
- IOCTL_DISK_SET_PARTITION_INFO_EX
- IOCTL_DISK_GET_DRIVE_LAYOUT_EX
- IOCTL_DISK_SET_DRIVE_LAYOUT_EX
- IOCTL_DISK_GET_DRIVE_GEOMETRY
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
헤더 | ntddk.h(Ntddk.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 규정 준수 규칙 | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |
추가 정보
IOCTL_DISK_GET_DRIVE_LAYOUT_EX
IOCTL_DISK_GET_PARTITION_INFO_EX
IOCTL_DISK_SET_DRIVE_LAYOUT_EX