IoReadPartitionTable 함수(ntddk.h)
IoReadPartitionTable 루틴은 사용되지 않으며 기존 드라이버를 지원하기 위해만 제공됩니다. 새 드라이버는 IoReadPartitionTableEx를 사용해야 합니다. IoReadPartitionTable 은 지정된 섹터 크기를 가진 디스크의 파티션 목록을 읽고 인식된 각 파티션에 대한 파티션 목록에 항목을 만듭니다.
구문
NTSTATUS IoReadPartitionTable(
[in] PDEVICE_OBJECT DeviceObject,
[in] ULONG SectorSize,
[in] BOOLEAN ReturnRecognizedPartitions,
[out] _DRIVE_LAYOUT_INFORMATION **PartitionBuffer
);
매개 변수
[in] DeviceObject
파티션을 읽을 디스크의 디바이스 개체에 대한 포인터입니다.
[in] SectorSize
디스크의 섹터 크기를 지정합니다.
[in] ReturnRecognizedPartitions
인식된 파티션 또는 모든 파티션 항목만 반환해야 하는지 여부를 나타냅니다.
[out] PartitionBuffer
초기화되지 않은 주소에 대한 포인터입니다. 성공하면 IoReadPartitionTable 은 페이지가 없는 풀에서 이 버퍼에 대한 메모리를 할당하고 드라이브 레이아웃 정보를 반환합니다.
반환 값
이 루틴은 하나 이상의 섹터 테이블을 읽은 경우 STATUS_SUCCESS 값을 반환합니다. 그렇지 않으면 오류 상태 반환하고 PartitionBuffer의 포인터를 NULL로 설정합니다.
설명
IoReadPartitionTable 은 디스크 드라이버에서만 사용해야 합니다. 다른 드라이버는 IOCTL_DISK_GET_DRIVE_LAYOUT 디스크 I/O 요청을 대신 사용해야 합니다.
디스크 디바이스 드라이버는 드라이버 초기화 중에 이 루틴을 호출합니다.
ExFreePool을 사용하여 이 루틴에 의해 할당된 PartitionBuffer의 할당을 취소하는 것은 호출자의 책임입니다.
이 루틴에서 사용하는 알고리즘은 부울 값 ReturnRecognizedPartitions에 의해 결정됩니다.
- 각 파티션 테이블을 읽고 유효하고 인식된 각 파티션에 대해 PARTITION_INFORMATION 항목 배열의 요소를 채웁니다. 파티션 정보 항목의 배열은 DRIVE_LAYOUT_INFORMATION 구조체의 PartitionEntry 멤버가 가리켰습니다. DRIVE_LAYOUT_INFORMATION 구조체는 PartitionBuffer가 가리키는 위치에 있습니다. 확장 파티션은 다른 파티션 테이블을 찾기 위해 배치되지만 해당 파티션에 대한 항목은 빌드되지 않습니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
헤더 | ntddk.h(Ntddk.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 규정 준수 규칙 | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |