ReactOS 0.4.16-dev-2104-gb84fa49
filesystems.c
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS DiskPart
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: base/system/diskpart/filesystems.c
5 * PURPOSE: Manages all the partitions of the OS in an interactive way.
6 * PROGRAMMERS: Lee Schroeder
7 */
8
9#include "diskpart.h"
10
11#define NDEBUG
12#include <debug.h>
13
14static
15VOID
17 _In_ PVOLENTRY VolumeEntry)
18{
19 WCHAR szBuffer[32];
20 PWSTR pszSizeUnit = L"";
21 ULONG ulClusterSize;
22
24 ConPuts(StdOut, L"\n");
25
26 ConResPrintf(StdOut, IDS_FILESYSTEMS_TYPE, VolumeEntry->pszFilesystem);
27
28 ulClusterSize = VolumeEntry->SectorsPerAllocationUnit * VolumeEntry->BytesPerSector;
29 if (ulClusterSize >= SIZE_10MB) /* 10 MB */
30 {
31 ulClusterSize = RoundingDivide(ulClusterSize, SIZE_1MB);
32 pszSizeUnit = L"MB";
33 }
34 else if (ulClusterSize >= SIZE_10KB) /* 10 KB */
35 {
36 ulClusterSize = RoundingDivide(ulClusterSize, SIZE_1KB);
37 pszSizeUnit = L"KB";
38 }
39
40 wsprintf(szBuffer, L"%lu %s", ulClusterSize, pszSizeUnit);
42 ConResPrintf(StdOut, IDS_FILESYSTEMS_SERIAL_NUMBER, VolumeEntry->SerialNumber);
43 ConPuts(StdOut, L"\n");
44}
45
46
47static
48VOID
50 _In_ PVOLENTRY VolumeEntry)
51{
52 WCHAR szBuffer[256];
53 WCHAR szDefault[32];
55 DWORD dwIndex;
56 UCHAR uMajor, uMinor;
57 BOOLEAN bLatest;
58
61 szDefault, ARRAYSIZE(szDefault));
62
64 ConPuts(StdOut, L"\n");
65
66 for (dwIndex = 0; ; dwIndex++)
67 {
69 szBuffer,
70 &uMajor,
71 &uMinor,
72 &bLatest);
73 if (ret == FALSE)
74 break;
75
76 if (wcscmp(szBuffer, L"FAT") == 0)
77 wcscat(szBuffer, szDefault);
78
80 wcscpy(szBuffer, L"-");
82 ConPuts(StdOut, L"\n");
83 }
84}
85
86
91{
92 if (CurrentVolume == NULL)
93 {
95 return EXIT_SUCCESS;
96 }
97
98 ConPuts(StdOut, L"\n");
99
102
103 return EXIT_SUCCESS;
104}
unsigned char BOOLEAN
static int argc
Definition: ServiceArgs.c:12
void ConPuts(FILE *fp, LPCWSTR psz)
Definition: fc.c:16
#define StdOut
Definition: fc.c:14
void ConResPrintf(FILE *fp, UINT nID,...)
Definition: fc.c:33
void ConResPuts(FILE *fp, UINT nID)
Definition: fc.c:27
#define IDS_SELECT_NO_VOLUME
Definition: resource.h:130
#define IDS_FILESYSTEMS_FORMATTING
Definition: resource.h:81
#define IDS_FILESYSTEMS_CURRENT
Definition: resource.h:80
#define IDS_FILESYSTEMS_DEFAULT
Definition: resource.h:85
#define IDS_FILESYSTEMS_SERIAL_NUMBER
Definition: resource.h:84
#define IDS_FILESYSTEMS_CLUSTERSIZE
Definition: resource.h:83
#define IDS_FILESYSTEMS_TYPE
Definition: resource.h:82
enum _EXIT_CODE EXIT_CODE
#define SIZE_1KB
Definition: diskpart.h:257
#define SIZE_1MB
Definition: diskpart.h:259
#define SIZE_10MB
Definition: diskpart.h:260
PVOLENTRY CurrentVolume
Definition: partlist.c:77
#define SIZE_10KB
Definition: diskpart.h:258
#define NULL
Definition: types.h:112
#define FALSE
Definition: types.h:117
#define ARRAYSIZE(array)
Definition: filtermapper.c:47
BOOLEAN NTAPI QueryAvailableFileSystemFormat(IN DWORD Index, IN OUT PWCHAR FileSystem, OUT UCHAR *Major, OUT UCHAR *Minor, OUT BOOLEAN *LatestVersion)
Definition: query.c:20
INT WINAPI DECLSPEC_HOTPATCH LoadStringW(HINSTANCE instance, UINT resource_id, LPWSTR buffer, INT buflen)
Definition: string.c:1220
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
Definition: wcs.c:1972
return ret
Definition: mutex.c:146
#define L(x)
Definition: resources.c:13
unsigned long DWORD
Definition: ntddk_ex.h:95
static VOID ShowInstalledFileSystems(_In_ PVOLENTRY VolumeEntry)
Definition: filesystems.c:49
EXIT_CODE filesystems_main(_In_ INT argc, _In_ PWSTR *argv)
Definition: filesystems.c:88
static VOID ShowFileSystemInfo(_In_ PVOLENTRY VolumeEntry)
Definition: filesystems.c:16
#define argv
Definition: mplay32.c:18
#define _In_
Definition: no_sal2.h:158
#define EXIT_SUCCESS
Definition: rdjpgcom.c:55
wcscat
wcscpy
ULONGLONG RoundingDivide(IN ULONGLONG Dividend, IN ULONGLONG Divisor)
Definition: partlist.c:95
uint16_t * PWSTR
Definition: typedefs.h:56
int32_t INT
Definition: typedefs.h:58
uint32_t ULONG
Definition: typedefs.h:59
#define GetModuleHandle
Definition: winbase.h:3576
#define wsprintf
Definition: winuser.h:5976
unsigned char UCHAR
Definition: xmlstorage.h:181
__wchar_t WCHAR
Definition: xmlstorage.h:180