ReactOS 0.4.15-dev-5893-g1bb4167
fslist.c File Reference
#include "usetup.h"
#include <debug.h>
Include dependency graph for fslist.c:

Go to the source code of this file.

Macros

#define NDEBUG
 
#define HIDE_FAT32_CHOICE
 

Functions

static VOID AddProvider (IN OUT PFILE_SYSTEM_LIST List, IN PCWSTR FileSystem)
 
static VOID InitializeFileSystemList (IN OUT PFILE_SYSTEM_LIST List, IN BOOLEAN ForceFormat)
 
PFILE_SYSTEM_LIST CreateFileSystemList (IN SHORT Left, IN SHORT Top, IN BOOLEAN ForceFormat, IN PCWSTR SelectFileSystem)
 
VOID DestroyFileSystemList (IN PFILE_SYSTEM_LIST List)
 
VOID DrawFileSystemList (IN PFILE_SYSTEM_LIST List)
 
VOID ScrollDownFileSystemList (IN PFILE_SYSTEM_LIST List)
 
VOID ScrollUpFileSystemList (IN PFILE_SYSTEM_LIST List)
 

Macro Definition Documentation

◆ HIDE_FAT32_CHOICE

#define HIDE_FAT32_CHOICE

Definition at line 33 of file fslist.c.

◆ NDEBUG

#define NDEBUG

Definition at line 29 of file fslist.c.

Function Documentation

◆ AddProvider()

static VOID AddProvider ( IN OUT PFILE_SYSTEM_LIST  List,
IN PCWSTR  FileSystem 
)
static

Definition at line 38 of file fslist.c.

41{
43
45 if (!Item)
46 return;
47
48 Item->FileSystem = FileSystem;
49 Item->QuickFormat = TRUE;
50 InsertTailList(&List->ListHead, &Item->ListEntry);
51
52 if (!FileSystem)
53 return;
54
56 if (!Item)
57 return;
58
59 Item->FileSystem = FileSystem;
60 Item->QuickFormat = FALSE;
61 InsertTailList(&List->ListHead, &Item->ListEntry);
62}
HANDLE ProcessHeap
Definition: servman.c:15
PWCHAR FileSystem
Definition: format.c:72
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
Definition: heap.c:588
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define InsertTailList(ListHead, Entry)
struct _FILE_SYSTEM_ITEM * PFILE_SYSTEM_ITEM
_In_ WDFCOLLECTION _In_ WDFOBJECT Item
_Must_inspect_result_ _In_ WDFCMRESLIST List
Definition: wdfresource.h:550

Referenced by InitializeFileSystemList().

◆ CreateFileSystemList()

PFILE_SYSTEM_LIST CreateFileSystemList ( IN SHORT  Left,
IN SHORT  Top,
IN BOOLEAN  ForceFormat,
IN PCWSTR  SelectFileSystem 
)

Definition at line 109 of file fslist.c.

114{
117 PLIST_ENTRY ListEntry;
118
120 if (List == NULL)
121 return NULL;
122
123 List->Left = Left;
124 List->Top = Top;
125 List->Selected = NULL;
126 InitializeListHead(&List->ListHead);
127
128 InitializeFileSystemList(List, ForceFormat);
129
130 /* Search for SelectFileSystem in list */
131 ListEntry = List->ListHead.Flink;
132 while (ListEntry != &List->ListHead)
133 {
134 Item = CONTAINING_RECORD(ListEntry, FILE_SYSTEM_ITEM, ListEntry);
135 if (Item->FileSystem && wcsicmp(SelectFileSystem, Item->FileSystem) == 0)
136 {
137 List->Selected = Item;
138 break;
139 }
140 ListEntry = ListEntry->Flink;
141 }
142 if (!List->Selected)
143 List->Selected = CONTAINING_RECORD(List->ListHead.Flink, FILE_SYSTEM_ITEM, ListEntry);
144
145 return List;
146}
static LPHIST_ENTRY Top
Definition: history.c:53
#define NULL
Definition: types.h:112
#define wcsicmp
Definition: compat.h:15
#define InitializeListHead(ListHead)
Definition: env_spec_w32.h:944
static VOID InitializeFileSystemList(IN OUT PFILE_SYSTEM_LIST List, IN BOOLEAN ForceFormat)
Definition: fslist.c:65
struct _FILE_SYSTEM_LIST * PFILE_SYSTEM_LIST
Definition: typedefs.h:120
struct _LIST_ENTRY * Flink
Definition: typedefs.h:121
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260

Referenced by SelectFileSystemPage().

◆ DestroyFileSystemList()

VOID DestroyFileSystemList ( IN PFILE_SYSTEM_LIST  List)

Definition at line 149 of file fslist.c.

151{
152 PLIST_ENTRY ListEntry;
154
155 ListEntry = List->ListHead.Flink;
156 while (!IsListEmpty(&List->ListHead))
157 {
158 ListEntry = RemoveHeadList(&List->ListHead);
159 Item = CONTAINING_RECORD(ListEntry, FILE_SYSTEM_ITEM, ListEntry);
161 }
162
164}
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
Definition: heap.c:606
#define IsListEmpty(ListHead)
Definition: env_spec_w32.h:954
#define RemoveHeadList(ListHead)
Definition: env_spec_w32.h:964

Referenced by ResetFileSystemList().

◆ DrawFileSystemList()

VOID DrawFileSystemList ( IN PFILE_SYSTEM_LIST  List)

Definition at line 167 of file fslist.c.

169{
170 PLIST_ENTRY ListEntry;
172 COORD coPos;
173 DWORD Written;
174 ULONG Index = 0;
175 CHAR Buffer[128];
176
177 ListEntry = List->ListHead.Flink;
178 while (ListEntry != &List->ListHead)
179 {
180 Item = CONTAINING_RECORD(ListEntry, FILE_SYSTEM_ITEM, ListEntry);
181
182 coPos.X = List->Left;
183 coPos.Y = List->Top + (SHORT)Index;
186 sizeof(Buffer),
187 coPos,
188 &Written);
190 ' ',
191 sizeof(Buffer),
192 coPos,
193 &Written);
194
195 if (Item->FileSystem)
196 {
197 snprintf(Buffer, sizeof(Buffer),
200 Item->FileSystem);
201 }
202 else
203 {
205 }
206
207 if (ListEntry == &List->Selected->ListEntry)
208 {
210 List->Top + (SHORT)Index,
211 Buffer);
212 }
213 else
214 {
216 List->Top + (SHORT)Index,
217 Buffer);
218 }
219 Index++;
220 ListEntry = ListEntry->Flink;
221 }
222}
BOOL WINAPI FillConsoleOutputCharacterA(IN HANDLE hConsoleOutput, IN CHAR cCharacter, IN DWORD nLength, IN COORD dwWriteCoord, OUT LPDWORD lpNumberOfCharsWritten)
Definition: console.c:560
BOOL WINAPI FillConsoleOutputAttribute(IN HANDLE hConsoleOutput, IN WORD wAttribute, IN DWORD nLength, IN COORD dwWriteCoord, OUT LPDWORD lpNumberOfAttrsWritten)
Definition: console.c:525
#define BACKGROUND_BLUE
Definition: blue.h:65
Definition: bufpool.h:45
VOID CONSOLE_SetInvertedTextXY(IN SHORT x, IN SHORT y, IN LPCSTR Text)
Definition: consup.c:538
VOID CONSOLE_SetTextXY(IN SHORT x, IN SHORT y, IN LPCSTR Text)
Definition: consup.c:320
HANDLE StdOutput
Definition: consup.c:37
#define FOREGROUND_WHITE
Definition: consup.h:29
unsigned long DWORD
Definition: ntddk_ex.h:95
short SHORT
Definition: pedump.c:59
Definition: bl.h:1338
ULONG Y
Definition: bl.h:1340
ULONG X
Definition: bl.h:1339
uint32_t ULONG
Definition: typedefs.h:59
PCSTR MUIGetString(ULONG Number)
Definition: mui.c:251
#define STRING_FORMATDISK2
Definition: mui.h:170
#define STRING_KEEPFORMAT
Definition: mui.h:171
#define STRING_FORMATDISK1
Definition: mui.h:169
_In_ WDFCOLLECTION _In_ ULONG Index
#define snprintf
Definition: wintirpc.h:48
char CHAR
Definition: xmlstorage.h:175

Referenced by ScrollDownFileSystemList(), ScrollUpFileSystemList(), and SelectFileSystemPage().

◆ InitializeFileSystemList()

static VOID InitializeFileSystemList ( IN OUT PFILE_SYSTEM_LIST  List,
IN BOOLEAN  ForceFormat 
)
static

Definition at line 65 of file fslist.c.

68{
69 PCWSTR FileSystemName;
71
72#ifdef HIDE_FAT32_CHOICE
73 BOOLEAN FatPresent = FALSE;
74
75 /* Check whether the FAT filesystem is present */
76 Index = 0;
77 while (GetRegisteredFileSystems(Index++, &FileSystemName))
78 {
79 if (wcsicmp(FileSystemName, L"FAT") == 0)
80 {
81 FatPresent = TRUE;
82 break;
83 }
84 }
85
86#endif
87
88 Index = 0;
89 while (GetRegisteredFileSystems(Index++, &FileSystemName))
90 {
91#ifdef HIDE_FAT32_CHOICE
92 /* USETUP only: If the FAT filesystem is present, show it, but
93 * don't display FAT32. The FAT formatter will automatically
94 * determine whether to use FAT12/16 or FAT32. */
95 if (FatPresent && wcsicmp(FileSystemName, L"FAT32") == 0)
96 continue;
97#endif
98 AddProvider(List, FileSystemName);
99 }
100
101 if (!ForceFormat)
102 {
103 /* Add the 'Keep existing filesystem' dummy provider */
105 }
106}
unsigned char BOOLEAN
static VOID AddProvider(IN OUT PFILE_SYSTEM_LIST List, IN PCWSTR FileSystem)
Definition: fslist.c:38
#define L(x)
Definition: ntvdm.h:50
BOOLEAN GetRegisteredFileSystems(IN ULONG Index, OUT PCWSTR *FileSystemName)
Definition: fsutil.c:182
const uint16_t * PCWSTR
Definition: typedefs.h:57

Referenced by CreateFileSystemList().

◆ ScrollDownFileSystemList()

VOID ScrollDownFileSystemList ( IN PFILE_SYSTEM_LIST  List)

Definition at line 225 of file fslist.c.

227{
228 if (List->Selected->ListEntry.Flink != &List->ListHead)
229 {
230 List->Selected = CONTAINING_RECORD(List->Selected->ListEntry.Flink, FILE_SYSTEM_ITEM, ListEntry);
232 }
233}
VOID DrawFileSystemList(IN PFILE_SYSTEM_LIST List)
Definition: fslist.c:167

Referenced by SelectFileSystemPage().

◆ ScrollUpFileSystemList()

VOID ScrollUpFileSystemList ( IN PFILE_SYSTEM_LIST  List)

Definition at line 236 of file fslist.c.

238{
239 if (List->Selected->ListEntry.Blink != &List->ListHead)
240 {
241 List->Selected = CONTAINING_RECORD(List->Selected->ListEntry.Blink, FILE_SYSTEM_ITEM, ListEntry);
243 }
244}

Referenced by SelectFileSystemPage().