359{
361 PCSTR* OperatingSystemDisplayNames;
362 ULONG OperatingSystemCount;
363 ULONG DefaultOperatingSystem;
364 ULONG SelectedOperatingSystem;
366
367#ifdef _M_IX86
368#ifndef UEFIBOOT
369
371 {
373 }
374#endif
375#endif
376
377
379 {
381 return;
382 }
384#if 0
386 {
388 return;
389 }
390#endif
391
392
394
395
397 {
399 return;
400 }
401
403 &DefaultOperatingSystem);
404 if (!OperatingSystemList)
405 {
406 UiMessageBox(
"Unable to read operating systems section in freeldr.ini.\nPress ENTER to reboot.");
408 }
409 if (OperatingSystemCount == 0)
410 {
411 UiMessageBox(
"There were no operating systems listed in freeldr.ini.\nPress ENTER to reboot.");
413 }
414
415
416 OperatingSystemDisplayNames =
FrLdrTempAlloc(
sizeof(
PCSTR) * OperatingSystemCount,
'mNSO');
417 if (!OperatingSystemDisplayNames)
419
420 for (
i = 0;
i < OperatingSystemCount;
i++)
421 {
423 }
424
425
427
428 for (;;)
429 {
430
432
433
434 if (!
UiDisplayMenu(
"Please select the operating system to start:",
435 "For troubleshooting and advanced startup options for "
436 "ReactOS, press F8.",
437 OperatingSystemDisplayNames,
438 OperatingSystemCount,
439 DefaultOperatingSystem,
441 &SelectedOperatingSystem,
444 OperatingSystemList))
445 {
448 }
449
450
452
454
455
456
457#ifndef _M_ARM
459#endif
461 }
462
466 return;
467}
ULONG LoadBootDeviceDriver(VOID)
#define DebugInit(DebugString)
PVOID FrLdrTempAlloc(_In_ SIZE_T Size, _In_ ULONG Tag)
VOID UiShowMessageBoxesInSection(IN ULONG_PTR SectionId)
VOID UiMessageBoxCritical(_In_ PCSTR MessageText)
VOID UiUnInitialize(PCSTR BootText)
VOID UiDrawBackdrop(VOID)
BOOLEAN UiDisplayMenu(IN PCSTR MenuHeader, IN PCSTR MenuFooter OPTIONAL, 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)
BOOLEAN UiInitialize(BOOLEAN ShowUi)
static CCHAR DebugString[256]
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)