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 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.
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.
[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. |
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.
[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 . |
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.
[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 . |