22 WCHAR szUnitBuffer[8];
54 swprintf(pszSizeBuffer,
L"%4I64u %-2s", ullSize, szUnitBuffer);
69 SectorCount = DiskEntry->EndSector.QuadPart - DiskEntry->StartSector.QuadPart + 1;
71 Entry = DiskEntry->PrimaryPartListHead.Flink;
72 while (
Entry != &DiskEntry->PrimaryPartListHead)
85 Entry = DiskEntry->LogicalPartListHead.Flink;
86 while (
Entry != &DiskEntry->LogicalPartListHead)
100 SectorCount = DiskEntry->EndSector.QuadPart - DiskEntry->StartSector.QuadPart + 1;
102 Entry = DiskEntry->PrimaryPartListHead.Flink;
103 while (
Entry != &DiskEntry->PrimaryPartListHead)
128 WCHAR szDiskSizeBuffer[8];
129 WCHAR szFreeSizeBuffer[8];
134 DiskSize = DiskEntry->SectorCount.QuadPart *
147 DiskEntry->DiskNumber,
194 ULONG PartNumber = 1;
196 WCHAR szPartitionTypeBuffer[40];
197 WCHAR szSizeBuffer[8];
198 WCHAR szOffsetBuffer[8];
214 bPartitionFound =
TRUE;
226 bPartitionFound =
TRUE;
232 if (bPartitionFound ==
FALSE)
262 szPartitionTypeBuffer,
ARRAYSIZE(szPartitionTypeBuffer));
267 szPartitionTypeBuffer,
290 szPartitionTypeBuffer,
ARRAYSIZE(szPartitionTypeBuffer));
294 szPartitionTypeBuffer,
340 szPartitionTypeBuffer,
ARRAYSIZE(szPartitionTypeBuffer));
345 szPartitionTypeBuffer,
364 WCHAR szVolumeTypeBuffer[30];
365 WCHAR szInfoBuffer[16];
366 WCHAR szSizeBuffer[8];
369 switch (VolumeEntry->VolumeType)
391 PrintSize(VolumeEntry->Size.QuadPart, szSizeBuffer);
394 if (VolumeEntry->IsSystem)
396 else if (VolumeEntry->IsBoot)
401 VolumeEntry->VolumeNumber,
402 VolumeEntry->DriveLetter,
403 (VolumeEntry->pszLabel) ? VolumeEntry->pszLabel :
L"",
404 (VolumeEntry->pszFilesystem) ? VolumeEntry->pszFilesystem :
L"",
445 ConPuts(
StdOut,
L"The LIST VDISK command is not implemented yet!\n");
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)
static VOID PrintSize(_In_ ULONGLONG ullSize, _Out_ PWSTR pszSizeBuffer)
VOID PrintDisk(_In_ PDISKENTRY DiskEntry)
VOID PrintVolume(_In_ PVOLENTRY VolumeEntry)
#define IDS_PARTITION_TYPE_EXTENDED
#define IDS_VOLUME_TYPE_DVD
#define IDS_PARTITION_TYPE_UNKNOWN
#define IDS_LIST_DISK_LINE
#define IDS_LIST_PARTITION_NO_DISK
#define IDS_VOLUME_TYPE_REMOVABLE
#define IDS_LIST_DISK_HEAD
#define IDS_PARTITION_TYPE_LOGICAL
#define IDS_LIST_VOLUME_LINE
#define IDS_LIST_VOLUME_HEAD
#define IDS_STATUS_ONLINE
#define IDS_LIST_DISK_FORMAT
#define IDS_PARTITION_TYPE_SYSTEM
#define IDS_LIST_PARTITION_HEAD
#define IDS_VOLUME_TYPE_PARTITION
#define IDS_PARTITION_TYPE_PRIMARY
#define IDS_PARTITION_TYPE_UNUSED
#define IDS_PARTITION_TYPE_RESERVED
#define IDS_LIST_PARTITION_LINE
#define IDS_LIST_VOLUME_FORMAT
#define IDS_VOLUME_TYPE_UNKNOWN
#define IDS_LIST_PARTITION_NONE
#define IDS_LIST_PARTITION_FORMAT
#define PARTITION_ENTRY_UNUSED
LIST_ENTRY VolumeListHead
enum _EXIT_CODE EXIT_CODE
INT WINAPI DECLSPEC_HOTPATCH LoadStringW(HINSTANCE instance, UINT resource_id, LPWSTR buffer, INT buflen)
#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