357{
359 PCSTR* OperatingSystemDisplayNames;
360 ULONG OperatingSystemCount;
361 ULONG DefaultOperatingSystem;
362 ULONG SelectedOperatingSystem;
364
366 {
368 return;
369 }
370
371#ifdef _M_IX86
372#ifndef UEFIBOOT
373
375 {
377 }
378#endif
379#endif
380
381
383 {
385 return;
386 }
388#if 0
390 {
392 return;
393 }
394#endif
395
396
398
399
401 {
403 return;
404 }
405
407 &DefaultOperatingSystem);
408 if (!OperatingSystemList)
409 {
410 UiMessageBox(
"Unable to read operating systems section in freeldr.ini.\nPress ENTER to reboot.");
412 }
413 if (OperatingSystemCount == 0)
414 {
415 UiMessageBox(
"There were no operating systems listed in freeldr.ini.\nPress ENTER to reboot.");
417 }
418
419
420 OperatingSystemDisplayNames =
FrLdrTempAlloc(
sizeof(
PCSTR) * OperatingSystemCount,
'mNSO');
421 if (!OperatingSystemDisplayNames)
423
424 for (
i = 0;
i < OperatingSystemCount;
i++)
425 {
427 }
428
429
431
432 for (;;)
433 {
434
436
437
438 if (!
UiDisplayMenu(
"Please select the operating system to start:",
439 "For troubleshooting and advanced startup options for "
440 "ReactOS, press F8.",
442 OperatingSystemDisplayNames,
443 OperatingSystemCount,
444 DefaultOperatingSystem,
446 &SelectedOperatingSystem,
449 OperatingSystemList))
450 {
453 }
454
455
457
459
460
461
462#ifndef _M_ARM
464#endif
466 }
467
471 return;
472}
ULONG LoadBootDeviceDriver(VOID)
#define DebugInit(DebugString)
#define MachInitializeBootDevices()
FORCEINLINE PVOID FrLdrTempAlloc(_In_ SIZE_T Size, _In_ ULONG Tag)
BOOLEAN UiDisplayMenu(IN PCSTR MenuHeader, IN PCSTR MenuFooter OPTIONAL, IN BOOLEAN ShowBootOptions, IN PCSTR MenuItemList[], IN ULONG MenuItemCount, IN ULONG DefaultMenuItem, IN LONG MenuTimeOut, OUT PULONG SelectedMenuItem, IN BOOLEAN CanEscape, IN UiMenuKeyPressFilterCallback KeyPressFilter OPTIONAL, IN PVOID Context OPTIONAL)
VOID UiShowMessageBoxesInSection(IN ULONG_PTR SectionId)
VOID UiMessageBoxCritical(_In_ PCSTR MessageText)
VOID UiUnInitialize(PCSTR BootText)
VOID UiDrawBackdrop(VOID)
BOOLEAN UiInitialize(BOOLEAN ShowUi)
VOID LoadOperatingSystem(_In_ OperatingSystemItem *OperatingSystem)
BOOLEAN MainBootMenuKeyPressFilter(IN ULONG KeyPress, IN ULONG SelectedMenuItem, IN PVOID Context OPTIONAL)
BOOLEAN IniFileInitialize(VOID)
OperatingSystemItem * InitOperatingSystemList(_Out_ PULONG OperatingSystemCount, _Out_ PULONG DefaultOperatingSystem)
VOID(* UnInitialize)(VOID)