// ntddk.h
NTSTATUS IoReadPartitionTable(
[in] PDEVICE_OBJECT DeviceObject,
[in] ULONG SectorSize,
[in] BOOLEAN ReturnRecognizedPartitions,
[out] _DRIVE_LAYOUT_INFORMATION **PartitionBuffer
);
View the official Windows Driver Kit DDI reference
No description available.
The IoReadPartitionTable routine is obsolete and is provided only to support existing drivers. New drivers must use IoReadPartitionTableEx. IoReadPartitionTable reads a list of partitions on a disk having a specified sector size and creates an entry in the partition list for each recognized partition.
DeviceObject
[in]Pointer to the device object for the disk whose partitions are to be read.
SectorSize
[in]Specifies the size of the sectors on the disk.
ReturnRecognizedPartitions
[in]Indicates whether only recognized partitions or all partition entries should be returned.
PartitionBuffer
[out]Pointer to an uninitialized address. If successful, IoReadPartitionTable allocates the memory for this buffer from nonpaged pool and returns the drive layout information in it.
This routine returns a value of STATUS_SUCCESS if at least one sector table was read. Otherwise, it returns an error status and sets the pointer at PartitionBuffer to NULL.
IoReadPartitionTable must only be used by disk drivers. Other drivers should use the IOCTL_DISK_GET_DRIVE_LAYOUT disk I/O request instead.
Disk device drivers call this routine during driver initialization.
It is the responsibility of the caller to deallocate the PartitionBuffer that was allocated by this routine with ExFreePool.
The algorithm used by this routine is determined by the Boolean value ReturnRecognizedPartitions:
Read each partition table and, for each and every entry, fill in a partition information entry. Extended partitions are located to find each partition on the disk; entries are built for these as well.