27 SectorCount = DiskEntry->EndSector.QuadPart - DiskEntry->StartSector.QuadPart + 1;
29 Entry = DiskEntry->PrimaryPartListHead.Flink;
30 while (
Entry != &DiskEntry->PrimaryPartListHead)
43 Entry = DiskEntry->LogicalPartListHead.Flink;
44 while (
Entry != &DiskEntry->LogicalPartListHead)
58 SectorCount = DiskEntry->EndSector.QuadPart - DiskEntry->StartSector.QuadPart + 1;
60 Entry = DiskEntry->PrimaryPartListHead.Flink;
61 while (
Entry != &DiskEntry->PrimaryPartListHead)
91 DiskSize = DiskEntry->SectorCount.QuadPart *
140 DiskEntry->DiskNumber,
191 ULONG PartNumber = 1;
207 bPartitionFound =
TRUE;
219 bPartitionFound =
TRUE;
225 if (bPartitionFound ==
FALSE)
275 lpOffsetUnit =
L"TB";
280 lpOffsetUnit =
L"GB";
285 lpOffsetUnit =
L"MB";
290 lpOffsetUnit =
L"KB";
341 lpOffsetUnit =
L"TB";
346 lpOffsetUnit =
L"GB";
351 lpOffsetUnit =
L"MB";
356 lpOffsetUnit =
L"KB";
411 lpOffsetUnit =
L"TB";
416 lpOffsetUnit =
L"GB";
421 lpOffsetUnit =
L"MB";
426 lpOffsetUnit =
L"KB";
431 lpPartitionType =
L"Unused";
435 lpPartitionType =
L"Primary";
439 lpPartitionType =
L"System";
443 lpPartitionType =
L"Reserved";
447 lpPartitionType =
L"Other";
478 VolumeSize = VolumeEntry->Size.QuadPart;
500 switch (VolumeEntry->VolumeType)
503 pszVolumeType =
L"DVD";
506 pszVolumeType =
L"Partition";
509 pszVolumeType =
L"Removable";
513 pszVolumeType =
L"Unknown";
519 VolumeEntry->VolumeNumber,
520 VolumeEntry->DriveLetter,
521 (VolumeEntry->pszLabel) ? VolumeEntry->pszLabel :
L"",
522 (VolumeEntry->pszFilesystem) ? VolumeEntry->pszFilesystem :
L"",
524 VolumeSize, pszSizeUnit,
void ConPuts(FILE *fp, LPCWSTR psz)
void ConResPrintf(FILE *fp, UINT nID,...)
void ConResPuts(FILE *fp, UINT nID)
EXIT_CODE ListPartition(_In_ INT argc, _In_ PWSTR *argv)
EXIT_CODE ListVolume(_In_ INT argc, _In_ PWSTR *argv)
EXIT_CODE ListVirtualDisk(_In_ INT argc, _In_ PWSTR *argv)
EXIT_CODE ListDisk(_In_ INT argc, _In_ PWSTR *argv)
static ULONGLONG GetFreeDiskSize(_In_ PDISKENTRY DiskEntry)
VOID PrintDisk(_In_ PDISKENTRY DiskEntry)
VOID PrintVolume(_In_ PVOLENTRY VolumeEntry)
#define IDS_LIST_DISK_LINE
#define IDS_LIST_PARTITION_NO_DISK
#define IDS_LIST_DISK_HEAD
#define IDS_LIST_VOLUME_LINE
#define IDS_LIST_VOLUME_HEAD
#define IDS_LIST_DISK_FORMAT
#define IDS_LIST_PARTITION_HEAD
#define IDS_LIST_PARTITION_LINE
#define IDS_LIST_VOLUME_FORMAT
#define IDS_LIST_PARTITION_NONE
#define IDS_LIST_PARTITION_FORMAT
#define PARTITION_ENTRY_UNUSED
LIST_ENTRY VolumeListHead
enum _EXIT_CODE EXIT_CODE
#define IsContainerPartition(PartitionType)
#define IsEqualGUID(rguid1, rguid2)
ULONGLONG RoundingDivide(IN ULONGLONG Dividend, IN ULONGLONG Divisor)
base of all file and directory entries
LIST_ENTRY LogicalPartListHead
LIST_ENTRY PrimaryPartListHead
struct _LIST_ENTRY * Flink
ULARGE_INTEGER SectorCount
ULARGE_INTEGER StartSector
#define CONTAINING_RECORD(address, type, field)
static PPARTENTRY CurrentPartition