Data Structures | Defines | Functions

Disk Partition Information APIs

Data Structures

struct  DRIVEPACKET
struct  PHYSDISK

Defines

#define PART_UNKNOWN   0x00
#define PART_DOS2_FAT   0x01
 12-bit FAT.
#define PART_DOS3_FAT   0x04
 16-bit FAT. Partition smaller than 32MB.
#define PART_EXTENDED   0x05
 Extended MS-DOS Partition.
#define PART_DOS4_FAT   0x06
 16-bit FAT. Partition larger than or equal to 32MB.
#define PART_NTFS   0x07
 NTFS.
#define PART_EXFAT   0x0107
 exFAT
#define PART_DOS32   0x0B
 32-bit FAT. Partition up to 2047GB.
#define PART_DOS32X   0x0C
 Same as PART_DOS32(0Bh), but uses Logical Block Address Int 13h extensions.
#define PART_DOSX13   0x0E
 Same as PART_DOS4_FAT(06h), but uses Logical Block Address Int 13h extensions.
#define PART_DOSX13X   0x0F
 Same as PART_EXTENDED(05h), but uses Logical Block Address Int 13h extensions.
#define PART_DYNAMICDISK   0x42
 Dynamic disk.
#define PART_LINUX   0x83
 Linux partition (eg. ext2, ext3).
#define PART_LINUX_LVM   0x8E
 Linux partition LVM (eg. ext2, ext3).
#define PART_HFS   0xAF
 HFS or HFS+.
#define PART_APFS   0x01AF
 APFS.
#define PART_GPT   0xEE
 GPT disk (Protection MBR flag).
#define PART_RAW   0xF0
 Raw partition.
#define MAX_PARTITIONS   256
 Maximum number of partitions per physical disk supported for collecting disk partition information.
#define MAX_NUM_PHYSDISKS   (SYSINFO_MAXNUMDISKS + 26 + 1)
 Maximum number of physcial disk supported for collecting disk partition information.
#define START_VOLUME_INDEX   SYSINFO_MAXNUMDISKS
#define START_IMAGE_INDEX   (START_VOLUME_INDEX + 26)
#define DRIVE_NOT_MOUNTED   (DWORD) -1
#define UNKNOWN_DISK_TYPE   0
#define BASIC_DISK   1
 Master Boot Record partition table.
#define DYNAMIC_DISK   2
 EFI/ GUID Partition Table.
#define UNKNOWN_DISK_PARTITION   0
#define MBR_DISK   1
 Master Boot Record partition table.
#define GPT_DISK   2
 EFI/ GUID Partition Table.
#define APM_DISK   3
 Apple Partition Map.

Functions

SYSINFO_API DWORD SysInfoDll_GetPartitionInfo (PHYSDISK *PhyDisks[MAX_NUM_PHYSDISKS])
 Call this function to return Disk Partition information from the Partition table and Master Boot Record for NTFS and FAT partitions.
SYSINFO_API DWORD SysInfoDll_GetPartitionInfoAll (PHYSDISK *PhyDisks[MAX_NUM_PHYSDISKS])
 Call this function to return Disk Partition information via Partition table and Master Boot Record.
SYSINFO_API DWORD SysInfoDll_ScanPartitionTableBlock (HANDLE hDrive, DWORD wDrive, PHYSDISK *Disk)
 Call this function to return Disk Partition information (for a single disk) via Partition table and Master Boot Record. Requries the disk to be opened before calling.

Define Documentation

#define PART_UNKNOWN   0x00

Partition types Unknown.

#define PART_DOS2_FAT   0x01

12-bit FAT.

#define PART_DOS3_FAT   0x04

16-bit FAT. Partition smaller than 32MB.

#define PART_EXTENDED   0x05

Extended MS-DOS Partition.

#define PART_DOS4_FAT   0x06

16-bit FAT. Partition larger than or equal to 32MB.

#define PART_NTFS   0x07

NTFS.

#define PART_EXFAT   0x0107

exFAT

#define PART_DOS32   0x0B

32-bit FAT. Partition up to 2047GB.

#define PART_DOS32X   0x0C

Same as PART_DOS32(0Bh), but uses Logical Block Address Int 13h extensions.

#define PART_DOSX13   0x0E

Same as PART_DOS4_FAT(06h), but uses Logical Block Address Int 13h extensions.

#define PART_DOSX13X   0x0F

Same as PART_EXTENDED(05h), but uses Logical Block Address Int 13h extensions.

#define PART_DYNAMICDISK   0x42

Dynamic disk.

#define PART_LINUX   0x83

Linux partition (eg. ext2, ext3).

#define PART_LINUX_LVM   0x8E

Linux partition LVM (eg. ext2, ext3).

#define PART_HFS   0xAF

HFS or HFS+.

#define PART_APFS   0x01AF

APFS.

#define PART_GPT   0xEE

GPT disk (Protection MBR flag).

#define PART_RAW   0xF0

Raw partition.

#define MAX_PARTITIONS   256

Maximum number of partitions per physical disk supported for collecting disk partition information.

#define MAX_NUM_PHYSDISKS   (SYSINFO_MAXNUMDISKS + 26 + 1)

Maximum number of physcial disk supported for collecting disk partition information.

#define START_VOLUME_INDEX   SYSINFO_MAXNUMDISKS
#define START_IMAGE_INDEX   (START_VOLUME_INDEX + 26)
#define DRIVE_NOT_MOUNTED   (DWORD) -1
#define UNKNOWN_DISK_TYPE   0

Disk Type Unknown

#define BASIC_DISK   1

Master Boot Record partition table.

#define DYNAMIC_DISK   2

EFI/ GUID Partition Table.

#define UNKNOWN_DISK_PARTITION   0

Partition table types Unknown

#define MBR_DISK   1

Master Boot Record partition table.

#define GPT_DISK   2

EFI/ GUID Partition Table.

#define APM_DISK   3

Apple Partition Map.


Function Documentation

SYSINFO_API DWORD SysInfoDll_GetPartitionInfo ( PHYSDISK PhyDisks[MAX_NUM_PHYSDISKS]  ) 

Call this function to return Disk Partition information from the Partition table and Master Boot Record for NTFS and FAT partitions.

Parameters:
[in,out] PhyDisks,: Pointer to an array of Physical disk descriptions. Note: The pointers must be NULL. If the pointers are not NULL, then this call is a refressh, and only disks that are new (e.g. newly enumerated USB drives) will be added.
Returns:
ERROR_SUCCESS on success otherwise returns restult of GetLastError()
SYSINFO_API DWORD SysInfoDll_GetPartitionInfoAll ( PHYSDISK PhyDisks[MAX_NUM_PHYSDISKS]  ) 

Call this function to return Disk Partition information via Partition table and Master Boot Record.

Parameters:
[in,out] PhyDisks,: Pointer to an array of Physical disk descriptions (caller must delete memory) Note: The pointers must be NULL. If the pointers are not NULL, then this call is a refresh, and only disks that are new (e.g. newly enumerated USB drives) will be added. The caller must free the memory allocated .
Returns:
ERROR_SUCCESS on success otherwise returns restult of GetLastError()
SYSINFO_API DWORD SysInfoDll_ScanPartitionTableBlock ( HANDLE  hDrive,
DWORD  wDrive,
PHYSDISK Disk 
)

Call this function to return Disk Partition information (for a single disk) via Partition table and Master Boot Record. Requries the disk to be opened before calling.

Parameters:
[in] hDrive,: Handle to the drive.
[in] wDrive,: Physcial drive number.
[in,out] Disk,: Pointer to an array of Physical disk descriptions (caller must delete memory) Note: The pointers must be NULL. If the pointers are not NULL, then this call is a refressh, and only disks that are new (e.g. newly enumerated USB drives) will be added. The caller must free the memory allocated .
Returns:
ERROR_SUCCESS on success otherwise returns restult of GetLastError()
 All Data Structures Files Functions Variables Enumerations Enumerator Defines