ReactOS  0.4.14-dev-358-gbef841c
winldr.h File Reference
#include <arc/setupblk.h>
#include <pshpack1.h>
#include <poppack.h>
Include dependency graph for winldr.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  RSDP_DESCRIPTOR
 
struct  _ARC_DISK_SIGNATURE_EX
 

Macros

#define TAG_WLDR_DTE   'eDlW'
 
#define TAG_WLDR_BDE   'dBlW'
 
#define TAG_WLDR_NAME   'mNlW'
 

Typedefs

typedef struct RSDP_DESCRIPTORPRSDP_DESCRIPTOR
 
typedef struct _ARC_DISK_SIGNATURE_EX ARC_DISK_SIGNATURE_EX
 
typedef struct _ARC_DISK_SIGNATURE_EXPARC_DISK_SIGNATURE_EX
 

Functions

ARC_STATUS LoadAndBootWindows (IN ULONG Argc, IN PCHAR Argv[], IN PCHAR Envp[])
 
ARC_STATUS LoadReactOSSetup (IN ULONG Argc, IN PCHAR Argv[], IN PCHAR Envp[])
 
PVOID VaToPa (PVOID Va)
 
PVOID PaToVa (PVOID Pa)
 
VOID List_PaToVa (_In_ LIST_ENTRY *ListEntry)
 

Macro Definition Documentation

◆ TAG_WLDR_BDE

#define TAG_WLDR_BDE   'dBlW'

Definition at line 14 of file winldr.h.

◆ TAG_WLDR_DTE

#define TAG_WLDR_DTE   'eDlW'

Definition at line 13 of file winldr.h.

◆ TAG_WLDR_NAME

#define TAG_WLDR_NAME   'mNlW'

Definition at line 15 of file winldr.h.

Typedef Documentation

◆ ARC_DISK_SIGNATURE_EX

◆ PARC_DISK_SIGNATURE_EX

◆ PRSDP_DESCRIPTOR

Function Documentation

◆ List_PaToVa()

VOID List_PaToVa ( _In_ LIST_ENTRY ListEntry)

◆ LoadAndBootWindows()

ARC_STATUS LoadAndBootWindows ( IN ULONG  Argc,
IN PCHAR  Argv[],
IN PCHAR  Envp[] 
)

Definition at line 722 of file winldr.c.

726 {
728  PCSTR ArgValue;
730  PCHAR File;
732  USHORT OperatingSystemVersion;
733  PLOADER_PARAMETER_BLOCK LoaderBlock;
734  CHAR BootPath[MAX_PATH];
736  CHAR BootOptions[256];
737 
738  /* Retrieve the (mandatory) boot type */
739  ArgValue = GetArgumentValue(Argc, Argv, "BootType");
740  if (!ArgValue || !*ArgValue)
741  {
742  ERR("No 'BootType' value, aborting!\n");
743  return EINVAL;
744  }
745 
746  /* Convert it to an OS version */
747  if (_stricmp(ArgValue, "Windows") == 0 ||
748  _stricmp(ArgValue, "Windows2003") == 0)
749  {
750  OperatingSystemVersion = _WIN32_WINNT_WS03;
751  }
752  else if (_stricmp(ArgValue, "WindowsNT40") == 0)
753  {
754  OperatingSystemVersion = _WIN32_WINNT_NT4;
755  }
756  else
757  {
758  ERR("Unknown 'BootType' value '%s', aborting!\n", ArgValue);
759  return EINVAL;
760  }
761 
762  /* Retrieve the (mandatory) system partition */
763  SystemPartition = GetArgumentValue(Argc, Argv, "SystemPartition");
765  {
766  ERR("No 'SystemPartition' specified, aborting!\n");
767  return EINVAL;
768  }
769 
770  UiDrawBackdrop();
771  UiDrawProgressBarCenter(1, 100, "Loading NT...");
772 
773  /* Retrieve the system path */
774  *BootPath = ANSI_NULL;
775  ArgValue = GetArgumentValue(Argc, Argv, "SystemPath");
776  if (ArgValue)
777  RtlStringCbCopyA(BootPath, sizeof(BootPath), ArgValue);
778 
779  /*
780  * Check whether BootPath is a full path
781  * and if not, create a full boot path.
782  *
783  * See FsOpenFile for the technique used.
784  */
785  if (strrchr(BootPath, ')') == NULL)
786  {
787  /* Temporarily save the boot path */
788  RtlStringCbCopyA(FileName, sizeof(FileName), BootPath);
789 
790  /* This is not a full path: prepend the SystemPartition */
791  RtlStringCbCopyA(BootPath, sizeof(BootPath), SystemPartition);
792 
793  /* Append a path separator if needed */
794  if (*FileName != '\\' && *FileName != '/')
795  RtlStringCbCatA(BootPath, sizeof(BootPath), "\\");
796 
797  /* Append the remaining path */
798  RtlStringCbCatA(BootPath, sizeof(BootPath), FileName);
799  }
800 
801  /* Append a path separator if needed */
802  if (!*BootPath || BootPath[strlen(BootPath) - 1] != '\\')
803  RtlStringCbCatA(BootPath, sizeof(BootPath), "\\");
804 
805  TRACE("BootPath: '%s'\n", BootPath);
806 
807  /* Retrieve the boot options */
809  ArgValue = GetArgumentValue(Argc, Argv, "Options");
810  if (ArgValue && *ArgValue)
811  RtlStringCbCopyA(BootOptions, sizeof(BootOptions), ArgValue);
812 
813  /* Append boot-time options */
815 
816  /*
817  * Set "/HAL=" and "/KERNEL=" options if needed.
818  * If already present on the standard "Options=" option line, they take
819  * precedence over those passed via the separate "Hal=" and "Kernel="
820  * options.
821  */
822  if (strstr(BootOptions, "/HAL=") != 0)
823  {
824  /*
825  * Not found in the options, try to retrieve the
826  * separate value and append it to the options.
827  */
828  ArgValue = GetArgumentValue(Argc, Argv, "Hal");
829  if (ArgValue && *ArgValue)
830  {
831  RtlStringCbCatA(BootOptions, sizeof(BootOptions), " /HAL=");
832  RtlStringCbCatA(BootOptions, sizeof(BootOptions), ArgValue);
833  }
834  }
835  if (strstr(BootOptions, "/KERNEL=") != 0)
836  {
837  /*
838  * Not found in the options, try to retrieve the
839  * separate value and append it to the options.
840  */
841  ArgValue = GetArgumentValue(Argc, Argv, "Kernel");
842  if (ArgValue && *ArgValue)
843  {
844  RtlStringCbCatA(BootOptions, sizeof(BootOptions), " /KERNEL=");
845  RtlStringCbCatA(BootOptions, sizeof(BootOptions), ArgValue);
846  }
847  }
848 
849  TRACE("BootOptions: '%s'\n", BootOptions);
850 
851  /* Check if a ramdisk file was given */
852  File = strstr(BootOptions, "/RDPATH=");
853  if (File)
854  {
855  /* Load the ramdisk */
857  if (Status != ESUCCESS)
858  {
859  File += 8;
860  UiMessageBox("Failed to load RAM disk file '%.*s'",
861  strcspn(File, " \t"), File);
862  return Status;
863  }
864  }
865 
866  /* Let user know we started loading */
867  //UiDrawStatusText("Loading...");
868 
869  /* Allocate and minimally-initialize the Loader Parameter Block */
870  AllocateAndInitLPB(OperatingSystemVersion, &LoaderBlock);
871 
872  /* Load the system hive */
873  UiDrawBackdrop();
874  UiDrawProgressBarCenter(15, 100, "Loading system hive...");
875  Success = WinLdrInitSystemHive(LoaderBlock, BootPath, FALSE);
876  TRACE("SYSTEM hive %s\n", (Success ? "loaded" : "not loaded"));
877  /* Bail out if failure */
878  if (!Success)
879  return ENOEXEC;
880 
881  /* Fixup the version number using data from the registry */
882  if (OperatingSystemVersion == 0)
883  OperatingSystemVersion = WinLdrDetectVersion();
884  LoaderBlock->Extension->MajorVersion = (OperatingSystemVersion & 0xFF00) >> 8;
885  LoaderBlock->Extension->MinorVersion = (OperatingSystemVersion & 0xFF);
886 
887  /* Load NLS data, OEM font, and prepare boot drivers list */
888  Success = WinLdrScanSystemHive(LoaderBlock, BootPath);
889  TRACE("SYSTEM hive %s\n", (Success ? "scanned" : "not scanned"));
890  /* Bail out if failure */
891  if (!Success)
892  return ENOEXEC;
893 
894  /* Load the Firmware Errata file */
895  Success = WinLdrInitErrataInf(LoaderBlock, OperatingSystemVersion, BootPath);
896  TRACE("Firmware Errata file %s\n", (Success ? "loaded" : "not loaded"));
897  /* Not necessarily fatal if not found - carry on going */
898 
899  /* Finish loading */
900  return LoadAndBootWindowsCommon(OperatingSystemVersion,
901  LoaderBlock,
902  BootOptions,
903  BootPath,
904  FALSE);
905 }
VOID AppendBootTimeOptions(PCHAR BootOptions)
Definition: options.c:252
signed char * PCHAR
Definition: retypes.h:7
ARC_STATUS RamDiskInitialize(IN BOOLEAN InitRamDisk, IN PCSTR LoadOptions OPTIONAL, IN PCSTR DefaultPath OPTIONAL)
Definition: ramdisk.c:204
#define _WIN32_WINNT_WS03
Definition: sdkddkver.h:23
Definition: arc.h:32
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
BOOLEAN WinLdrScanSystemHive(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock, IN PCSTR SystemRoot)
Definition: wlregistry.c:173
char * strstr(char *String1, char *String2)
Definition: utclib.c:653
_Check_return_ _CRTIMP size_t __cdecl strcspn(_In_z_ const char *_Str, _In_z_ const char *_Control)
Definition: arc.h:39
PLOADER_PARAMETER_EXTENSION Extension
Definition: arc.h:512
char CHAR
Definition: xmlstorage.h:175
ULONG ARC_STATUS
Definition: arc.h:4
static BOOLEAN WinLdrInitErrataInf(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock, IN USHORT OperatingSystemVersion, IN PCSTR SystemRoot)
Definition: winldr.c:661
_Check_return_ _CRTIMP _CONST_RETURN char *__cdecl strrchr(_In_z_ const char *_Str, _In_ int _Ch)
#define _stricmp
Definition: cat.c:22
NTSTRSAFEAPI RtlStringCbCopyA(_Out_writes_bytes_(cbDest) _Always_(_Post_z_) NTSTRSAFE_PSTR pszDest, _In_ size_t cbDest, _In_ NTSTRSAFE_PCSTR pszSrc)
Definition: ntstrsafe.h:156
#define ANSI_NULL
_In_opt_ PVOID _In_ PCSTR File
Definition: iofuncs.h:615
VOID UiMessageBox(PCSTR Format,...)
Definition: ui.c:320
unsigned char BOOLEAN
smooth NULL
Definition: ftsmooth.c:416
#define _WIN32_WINNT_NT4
Definition: sdkddkver.h:20
USHORT WinLdrDetectVersion(VOID)
Definition: winldr.c:419
#define TRACE(s)
Definition: solgame.cpp:4
#define MAX_PATH
Definition: compat.h:26
static PPARTENTRY SystemPartition
Definition: usetup.c:61
VOID UiDrawBackdrop(VOID)
Definition: ui.c:214
VOID AllocateAndInitLPB(IN USHORT VersionToBoot, OUT PLOADER_PARAMETER_BLOCK *OutLoaderBlock)
Definition: winldr.c:34
Status
Definition: gdiplustypes.h:24
#define ERR(fmt,...)
Definition: debug.h:109
unsigned short USHORT
Definition: pedump.c:61
ARC_STATUS LoadAndBootWindowsCommon(USHORT OperatingSystemVersion, PLOADER_PARAMETER_BLOCK LoaderBlock, PCSTR BootOptions, PCSTR BootPath, BOOLEAN Setup)
Definition: winldr.c:908
Definition: arc.h:47
const char * PCSTR
Definition: typedefs.h:51
Definition: File.h:15
PCHAR GetArgumentValue(IN ULONG Argc, IN PCHAR Argv[], IN PCHAR ArgumentName)
Definition: arcsupp.c:41
BOOLEAN WinLdrInitSystemHive(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock, IN PCSTR SystemRoot, IN BOOLEAN Setup)
Definition: wlregistry.c:123
VOID UiDrawProgressBarCenter(ULONG Position, ULONG Range, PCHAR ProgressText)
Definition: ui.c:346
NTSTRSAFEAPI RtlStringCbCatA(_Inout_updates_bytes_(cbDest) _Always_(_Post_z_) NTSTRSAFE_PSTR pszDest, _In_ size_t cbDest, _In_ NTSTRSAFE_PCSTR pszSrc)
Definition: ntstrsafe.h:625

◆ LoadReactOSSetup()

ARC_STATUS LoadReactOSSetup ( IN ULONG  Argc,
IN PCHAR  Argv[],
IN PCHAR  Envp[] 
)

Definition at line 178 of file setupldr.c.

182 {
184  PCSTR ArgValue;
186  PCHAR File;
188  CHAR BootPath[MAX_PATH];
189  CHAR BootOptions2[256];
190  PCSTR LoadOptions;
192  BOOLEAN BootFromFloppy;
194  ULONG i, ErrorLine;
195  HINF InfHandle;
196  INFCONTEXT InfContext;
197  PLOADER_PARAMETER_BLOCK LoaderBlock;
198  PSETUP_LOADER_BLOCK SetupBlock;
199  PCSTR SystemPath;
200 
201  static PCSTR SourcePaths[] =
202  {
203  "", /* Only for floppy boot */
204 #if defined(_M_IX86)
205  "I386\\",
206 #elif defined(_M_MPPC)
207  "PPC\\",
208 #elif defined(_M_MRX000)
209  "MIPS\\",
210 #endif
211  "reactos\\",
212  NULL
213  };
214 
215  /* Retrieve the (mandatory) system partition */
216  SystemPartition = GetArgumentValue(Argc, Argv, "SystemPartition");
218  {
219  ERR("No 'SystemPartition' specified, aborting!\n");
220  return EINVAL;
221  }
222 
223  UiDrawStatusText("Setup is loading...");
224 
225  UiDrawBackdrop();
226  UiDrawProgressBarCenter(1, 100, "Loading ReactOS Setup...");
227 
228  /* Retrieve the system path */
229  *BootPath = ANSI_NULL;
230  ArgValue = GetArgumentValue(Argc, Argv, "SystemPath");
231  if (ArgValue)
232  {
233  RtlStringCbCopyA(BootPath, sizeof(BootPath), ArgValue);
234  }
235  else
236  {
237  /*
238  * IMPROVE: I don't want to use the SystemPartition here as a
239  * default choice because I can do it after (see few lines below).
240  * Instead I reset BootPath here so that we can build the full path
241  * using the general code from below.
242  */
243  // RtlStringCbCopyA(BootPath, sizeof(BootPath), SystemPartition);
244  *BootPath = ANSI_NULL;
245  }
246 
247  /*
248  * Check whether BootPath is a full path
249  * and if not, create a full boot path.
250  *
251  * See FsOpenFile for the technique used.
252  */
253  if (strrchr(BootPath, ')') == NULL)
254  {
255  /* Temporarily save the boot path */
256  RtlStringCbCopyA(FileName, sizeof(FileName), BootPath);
257 
258  /* This is not a full path: prepend the SystemPartition */
259  RtlStringCbCopyA(BootPath, sizeof(BootPath), SystemPartition);
260 
261  /* Append a path separator if needed */
262  if (*FileName != '\\' && *FileName != '/')
263  RtlStringCbCatA(BootPath, sizeof(BootPath), "\\");
264 
265  /* Append the remaining path */
266  RtlStringCbCatA(BootPath, sizeof(BootPath), FileName);
267  }
268 
269  /* Append a path separator if needed */
270  if (!*BootPath || BootPath[strlen(BootPath) - 1] != '\\')
271  RtlStringCbCatA(BootPath, sizeof(BootPath), "\\");
272 
273  TRACE("BootPath: '%s'\n", BootPath);
274 
275  /* Retrieve the boot options */
276  *BootOptions2 = ANSI_NULL;
277  ArgValue = GetArgumentValue(Argc, Argv, "Options");
278  if (ArgValue && *ArgValue)
279  RtlStringCbCopyA(BootOptions2, sizeof(BootOptions2), ArgValue);
280 
281  TRACE("BootOptions: '%s'\n", BootOptions2);
282 
283  /* Check if a ramdisk file was given */
284  File = strstr(BootOptions2, "/RDPATH=");
285  if (File)
286  {
287  /* Load the ramdisk */
288  Status = RamDiskInitialize(FALSE, BootOptions2, SystemPartition);
289  if (Status != ESUCCESS)
290  {
291  File += 8;
292  UiMessageBox("Failed to load RAM disk file '%.*s'",
293  strcspn(File, " \t"), File);
294  return Status;
295  }
296  }
297 
298  /* Check if we booted from floppy */
299  BootFromFloppy = strstr(BootPath, "fdisk") != NULL;
300 
301  /* Open 'txtsetup.sif' from any of source paths */
302  File = BootPath + strlen(BootPath);
303  for (i = BootFromFloppy ? 0 : 1; ; i++)
304  {
305  SystemPath = SourcePaths[i];
306  if (!SystemPath)
307  {
308  UiMessageBox("Failed to open txtsetup.sif");
309  return ENOENT;
310  }
311  RtlStringCbCopyA(File, sizeof(BootPath) - (File - BootPath)*sizeof(CHAR), SystemPath);
312  RtlStringCbCopyA(FileName, sizeof(FileName), BootPath);
313  RtlStringCbCatA(FileName, sizeof(FileName), "txtsetup.sif");
314  if (InfOpenFile(&InfHandle, FileName, &ErrorLine))
315  {
316  break;
317  }
318  }
319 
320  TRACE("BootPath: '%s', SystemPath: '%s'\n", BootPath, SystemPath);
321 
322  /* Get load options - debug and non-debug */
323  if (!InfFindFirstLine(InfHandle, "SetupData", "OsLoadOptions", &InfContext))
324  {
325  ERR("Failed to find 'SetupData/OsLoadOptions'\n");
326  return EINVAL;
327  }
328 
329  if (!InfGetDataField(&InfContext, 1, &LoadOptions))
330  {
331  ERR("Failed to get load options\n");
332  return EINVAL;
333  }
334 
335 #if DBG
336  /* Get debug load options and use them */
337  if (InfFindFirstLine(InfHandle, "SetupData", "DbgOsLoadOptions", &InfContext))
338  {
339  PCSTR DbgLoadOptions;
340 
341  if (InfGetDataField(&InfContext, 1, &DbgLoadOptions))
342  LoadOptions = DbgLoadOptions;
343  }
344 #endif
345 
346  /* Copy LoadOptions (original string will be freed) */
347  BootOptions = FrLdrTempAlloc(strlen(LoadOptions) + 1, TAG_BOOT_OPTIONS);
349  strcpy(BootOptions, LoadOptions);
350 
351  TRACE("BootOptions: '%s'\n", BootOptions);
352 
353  /* Allocate and minimally-initialize the Loader Parameter Block */
354  AllocateAndInitLPB(_WIN32_WINNT_WS03, &LoaderBlock);
355 
356  /* Allocate and initialize setup loader block */
357  SetupBlock = &WinLdrSystemBlock->SetupBlock;
358  LoaderBlock->SetupLdrBlock = SetupBlock;
359 
360  /* Set textmode setup flag */
361  SetupBlock->Flags = SETUPLDR_TEXT_MODE;
362 
363  /* Load the system hive "setupreg.hiv" for setup */
364  UiDrawBackdrop();
365  UiDrawProgressBarCenter(15, 100, "Loading setup system hive...");
366  Success = WinLdrInitSystemHive(LoaderBlock, BootPath, TRUE);
367  TRACE("Setup SYSTEM hive %s\n", (Success ? "loaded" : "not loaded"));
368  /* Bail out if failure */
369  if (!Success)
370  return ENOEXEC;
371 
372  /* Load NLS data, they are in the System32 directory of the installation medium */
373  RtlStringCbCopyA(FileName, sizeof(FileName), BootPath);
374  RtlStringCbCatA(FileName, sizeof(FileName), "system32\\");
375  SetupLdrLoadNlsData(LoaderBlock, InfHandle, FileName);
376 
377  /* Load the Firmware Errata file from the installation medium */
378  Success = SetupLdrInitErrataInf(LoaderBlock, InfHandle, BootPath);
379  TRACE("Firmware Errata file %s\n", (Success ? "loaded" : "not loaded"));
380  /* Not necessarily fatal if not found - carry on going */
381 
382  // UiDrawStatusText("Press F6 if you need to install a 3rd-party SCSI or RAID driver...");
383 
384  /* Get a list of boot drivers */
385  SetupLdrScanBootDrivers(&LoaderBlock->BootDriverListHead, InfHandle, BootPath);
386 
387  /* Close the inf file */
388  InfCloseFile(InfHandle);
389 
390  UiDrawStatusText("The Setup program is starting...");
391 
392  /* Load ReactOS Setup */
394  LoaderBlock,
395  BootOptions,
396  BootPath,
397  TRUE);
398 }
signed char * PCHAR
Definition: retypes.h:7
ARC_STATUS RamDiskInitialize(IN BOOLEAN InitRamDisk, IN PCSTR LoadOptions OPTIONAL, IN PCSTR DefaultPath OPTIONAL)
Definition: ramdisk.c:204
#define TRUE
Definition: types.h:120
#define _WIN32_WINNT_WS03
Definition: sdkddkver.h:23
Definition: arc.h:32
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
static VOID SetupLdrScanBootDrivers(PLIST_ENTRY BootDriverListHead, HINF InfHandle, PCSTR SearchPath)
Definition: setupldr.c:125
char * strstr(char *String1, char *String2)
Definition: utclib.c:653
_Check_return_ _CRTIMP size_t __cdecl strcspn(_In_z_ const char *_Str, _In_z_ const char *_Control)
Definition: arc.h:39
static VOID SetupLdrLoadNlsData(PLOADER_PARAMETER_BLOCK LoaderBlock, HINF InfHandle, PCSTR SearchPath)
Definition: setupldr.c:26
char CHAR
Definition: xmlstorage.h:175
ULONG ARC_STATUS
Definition: arc.h:4
_Check_return_ _CRTIMP _CONST_RETURN char *__cdecl strrchr(_In_z_ const char *_Str, _In_ int _Ch)
BOOLEAN InfGetDataField(PINFCONTEXT Context, ULONG FieldIndex, PWCHAR *Data)
Definition: infrosget.c:127
NTSTRSAFEAPI RtlStringCbCopyA(_Out_writes_bytes_(cbDest) _Always_(_Post_z_) NTSTRSAFE_PSTR pszDest, _In_ size_t cbDest, _In_ NTSTRSAFE_PCSTR pszSrc)
Definition: ntstrsafe.h:156
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
struct _SETUP_LOADER_BLOCK * SetupLdrBlock
Definition: arc.h:511
#define ANSI_NULL
_In_opt_ PVOID _In_ PCSTR File
Definition: iofuncs.h:615
VOID UiMessageBox(PCSTR Format,...)
Definition: ui.c:320
FORCEINLINE PVOID FrLdrTempAlloc(_In_ SIZE_T Size, _In_ ULONG Tag)
Definition: mm.h:177
unsigned char BOOLEAN
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define MAX_PATH
Definition: compat.h:26
LIST_ENTRY BootDriverListHead
Definition: arc.h:495
static PPARTENTRY SystemPartition
Definition: usetup.c:61
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
VOID UiDrawStatusText(PCSTR StatusText)
Definition: ui.c:249
VOID InfCloseFile(HINF InfHandle)
Definition: inffile.c:1028
VOID UiDrawBackdrop(VOID)
Definition: ui.c:214
Status
Definition: gdiplustypes.h:24
SETUP_LOADER_BLOCK SetupBlock
Definition: winldr.h:50
#define ERR(fmt,...)
Definition: debug.h:109
#define TAG_BOOT_OPTIONS
Definition: setupldr.c:17
#define SETUPLDR_TEXT_MODE
Definition: setupblk.h:7
signed char * PSTR
Definition: retypes.h:7
ARC_STATUS LoadAndBootWindowsCommon(USHORT OperatingSystemVersion, PLOADER_PARAMETER_BLOCK LoaderBlock, PCSTR BootOptions, PCSTR BootPath, BOOLEAN Setup)
Definition: winldr.c:908
Definition: arc.h:46
static BOOLEAN SetupLdrInitErrataInf(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock, IN HINF InfHandle, IN PCSTR SystemRoot)
Definition: setupldr.c:84
char * strcpy(char *DstString, const char *SrcString)
Definition: utclib.c:388
VOID AllocateAndInitLPB(IN USHORT VersionToBoot, OUT PLOADER_PARAMETER_BLOCK *OutLoaderBlock)
Definition: winldr.c:34
BOOLEAN InfFindFirstLine(HINF InfHandle, PCSTR Section, PCSTR Key, PINFCONTEXT Context)
Definition: inffile.c:1050
unsigned int ULONG
Definition: retypes.h:1
Definition: arc.h:47
const char * PCSTR
Definition: typedefs.h:51
Definition: File.h:15
PCHAR GetArgumentValue(IN ULONG Argc, IN PCHAR Argv[], IN PCHAR ArgumentName)
Definition: arcsupp.c:41
BOOLEAN WinLdrInitSystemHive(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock, IN PCSTR SystemRoot, IN BOOLEAN Setup)
Definition: wlregistry.c:123
BOOLEAN InfOpenFile(PHINF InfHandle, PCSTR FileName, PULONG ErrorLine)
Definition: inffile.c:918
VOID UiDrawProgressBarCenter(ULONG Position, ULONG Range, PCHAR ProgressText)
Definition: ui.c:346
PLOADER_SYSTEM_BLOCK WinLdrSystemBlock
Definition: winldr.c:27
NTSTRSAFEAPI RtlStringCbCatA(_Inout_updates_bytes_(cbDest) _Always_(_Post_z_) NTSTRSAFE_PSTR pszDest, _In_ size_t cbDest, _In_ NTSTRSAFE_PCSTR pszSrc)
Definition: ntstrsafe.h:625

◆ PaToVa()

◆ VaToPa()