BOOLEAN NATIVE_CreateFileSystemList( IN PFILE_SYSTEM_LIST List) { FS_AddProvider(List, L"FAT", VfatFormat, VfatChkdsk); //FS_AddProvider(List, L"EXT2", Ext2Format, Ext2Chkdsk); return TRUE; }
PFILE_SYSTEM_LIST CreateFileSystemList( IN SHORT Left, IN SHORT Top, IN BOOLEAN ForceFormat, IN LPCWSTR ForceFileSystem) { PFILE_SYSTEM_LIST List; PFILE_SYSTEM_ITEM Item; PLIST_ENTRY ListEntry; List = (PFILE_SYSTEM_LIST)RtlAllocateHeap(ProcessHeap, 0, sizeof(FILE_SYSTEM_LIST)); if (List == NULL) return NULL; List->Left = Left; List->Top = Top; List->Selected = NULL; InitializeListHead(&List->ListHead); HOST_CreateFileSystemList(List); if (!ForceFormat) { /* Add 'Keep' provider */ FS_AddProvider(List, NULL, NULL, NULL); } /* Search for ForceFileSystem in list */ ListEntry = List->ListHead.Flink; while (ListEntry != &List->ListHead) { Item = CONTAINING_RECORD(ListEntry, FILE_SYSTEM_ITEM, ListEntry); if (Item->FileSystemName && wcscmp(ForceFileSystem, Item->FileSystemName) == 0) { List->Selected = Item; break; } ListEntry = ListEntry->Flink; } if (!List->Selected) List->Selected = CONTAINING_RECORD(List->ListHead.Flink, FILE_SYSTEM_ITEM, ListEntry); return List; }