1 /* 2 * ReactOS kernel 3 * Copyright (C) 2002 ReactOS Team 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License along 16 * with this program; if not, write to the Free Software Foundation, Inc., 17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 */ 19 /* 20 * COPYRIGHT: See COPYING in the top level directory 21 * PROJECT: ReactOS text-mode setup 22 * FILE: base/setup/usetup/usetup.h 23 * PURPOSE: Text-mode setup 24 * PROGRAMMER: Eric Kohl 25 */ 26 27 #ifndef _USETUP_PCH_ 28 #define _USETUP_PCH_ 29 30 /* C Headers */ 31 #include <stdio.h> 32 #include <stdlib.h> 33 34 /* PSDK/NDK */ 35 #define WIN32_NO_STATUS 36 #include <windef.h> 37 #include <winbase.h> 38 #include <winreg.h> 39 #include <winuser.h> 40 #include <wincon.h> 41 42 #define NTOS_MODE_USER 43 #include <ndk/cmfuncs.h> 44 #include <ndk/exfuncs.h> 45 #include <ndk/iofuncs.h> 46 #include <ndk/kefuncs.h> 47 #include <ndk/mmfuncs.h> 48 #include <ndk/obfuncs.h> 49 #include <ndk/psfuncs.h> 50 #include <ndk/rtlfuncs.h> 51 #include <ndk/setypes.h> 52 53 #include <ntstrsafe.h> 54 55 /* Filesystem headers */ 56 #include <reactos/rosioctl.h> 57 #include <fslib/vfatlib.h> 58 #include <fslib/ext2lib.h> 59 // #include <fslib/ntfslib.h> 60 61 /* Internal Headers */ 62 #include "consup.h" 63 #include "inffile.h" 64 #include "inicache.h" 65 #include "progress.h" 66 #include "infros.h" 67 #include "filequeue.h" 68 #include "registry.h" 69 #include "fslist.h" 70 #include "partlist.h" 71 #include "cabinet.h" 72 #include "filesup.h" 73 #include "genlist.h" 74 #include "mui.h" 75 #include "errorcode.h" 76 77 extern HANDLE ProcessHeap; 78 extern UNICODE_STRING SourceRootPath; 79 extern UNICODE_STRING SourceRootDir; 80 extern UNICODE_STRING SourcePath; 81 extern BOOLEAN IsUnattendedSetup; 82 extern PWCHAR SelectedLanguageId; 83 84 extern VOID InfSetHeap(PVOID Heap); 85 extern VOID InfCloseFile(HINF InfHandle); 86 extern BOOLEAN InfFindNextLine(PINFCONTEXT ContextIn, 87 PINFCONTEXT ContextOut); 88 extern BOOLEAN InfGetBinaryField(PINFCONTEXT Context, 89 ULONG FieldIndex, 90 PUCHAR ReturnBuffer, 91 ULONG ReturnBufferSize, 92 PULONG RequiredSize); 93 extern BOOLEAN InfGetMultiSzField(PINFCONTEXT Context, 94 ULONG FieldIndex, 95 PWSTR ReturnBuffer, 96 ULONG ReturnBufferSize, 97 PULONG RequiredSize); 98 extern BOOLEAN InfGetStringField(PINFCONTEXT Context, 99 ULONG FieldIndex, 100 PWSTR ReturnBuffer, 101 ULONG ReturnBufferSize, 102 PULONG RequiredSize); 103 104 #define SetupCloseInfFile InfCloseFile 105 #define SetupFindNextLine InfFindNextLine 106 #define SetupGetBinaryField InfGetBinaryField 107 #define SetupGetMultiSzFieldW InfGetMultiSzField 108 #define SetupGetStringFieldW InfGetStringField 109 110 #ifndef _PAGE_NUMBER_DEFINED 111 #define _PAGE_NUMBER_DEFINED 112 typedef enum _PAGE_NUMBER 113 { 114 START_PAGE, 115 LANGUAGE_PAGE, 116 INTRO_PAGE, 117 LICENSE_PAGE, 118 INSTALL_INTRO_PAGE, 119 120 // SCSI_CONTROLLER_PAGE, 121 122 DEVICE_SETTINGS_PAGE, 123 COMPUTER_SETTINGS_PAGE, 124 DISPLAY_SETTINGS_PAGE, 125 KEYBOARD_SETTINGS_PAGE, 126 LAYOUT_SETTINGS_PAGE, 127 128 SELECT_PARTITION_PAGE, 129 CREATE_PRIMARY_PARTITION_PAGE, 130 CREATE_EXTENDED_PARTITION_PAGE, 131 CREATE_LOGICAL_PARTITION_PAGE, 132 CONFIRM_DELETE_SYSTEM_PARTITION_PAGE, 133 DELETE_PARTITION_PAGE, 134 135 SELECT_FILE_SYSTEM_PAGE, 136 FORMAT_PARTITION_PAGE, 137 CHECK_FILE_SYSTEM_PAGE, 138 139 PREPARE_COPY_PAGE, 140 INSTALL_DIRECTORY_PAGE, 141 FILE_COPY_PAGE, 142 REGISTRY_PAGE, 143 BOOT_LOADER_PAGE, 144 BOOT_LOADER_FLOPPY_PAGE, 145 BOOT_LOADER_HARDDISK_MBR_PAGE, 146 BOOT_LOADER_HARDDISK_VBR_PAGE, 147 148 REPAIR_INTRO_PAGE, 149 150 SUCCESS_PAGE, 151 QUIT_PAGE, 152 FLUSH_PAGE, 153 REBOOT_PAGE, /* virtual page */ 154 RECOVERY_PAGE, /* virtual page */ 155 } PAGE_NUMBER, *PPAGE_NUMBER; 156 #endif 157 158 #define POPUP_WAIT_NONE 0 159 #define POPUP_WAIT_ANY_KEY 1 160 #define POPUP_WAIT_ENTER 2 161 162 #define InsertAscendingList(ListHead, NewEntry, Type, ListEntryField, SortField)\ 163 {\ 164 PLIST_ENTRY current;\ 165 \ 166 current = (ListHead)->Flink;\ 167 while (current != (ListHead))\ 168 {\ 169 if (CONTAINING_RECORD(current, Type, ListEntryField)->SortField >=\ 170 (NewEntry)->SortField)\ 171 {\ 172 break;\ 173 }\ 174 current = current->Flink;\ 175 }\ 176 \ 177 InsertTailList(current, &((NewEntry)->ListEntryField));\ 178 } 179 180 #endif /* _USETUP_PCH_ */ 181