19 0xAC, 0xC1, 0xF3, 0x2B, 0x34, 0x4D, 0x47, 0x95);
51 ULONG ElementSize, ElementCount,
i, OptionsSize;
109 for (
i = 0;
i < ElementCount;
i++)
126 PreviousOption =
NULL;
128 for (
i = 0;
i < ElementCount;
i++)
180 PreviousOption = Option;
235 PWCHAR ApplicationPath, PathCopy;
238 ApplicationDirectoryPath->Length = 0;
239 ApplicationDirectoryPath->MaximumLength = 0;
240 ApplicationDirectoryPath->Buffer = 0;
243 ApplicationPath =
NULL;
250 for (
i =
wcslen(ApplicationPath) - 1;
i > 0;
i--)
260 Status = RtlSIZETAdd(
i, 1, &AppPathLength);
264 Status = RtlSIZETMult(AppPathLength,
sizeof(
WCHAR), &AppPathLength);
333 BcdDirectory = BcdPath.
Buffer;
422 *ErrorResourceId = 9017;
426 *ErrorResourceId = 9018;
429 *ErrorResourceId = 9016;
432 *ErrorResourceId = 9019;
436 *ErrorResourceId = 9013;
509 ULONG ErrorResourceId, ErrorHelpId;
547 L"\nAn error occurred (%08x) while attempting " 548 L"to read the boot configuration data file %s\n",
553 ErrorResourceId = 9002;
566 L"\nNo valid entries found in the boot configuration data file %s\n",
570 ErrorResourceId = 9007;
583 L"\nThe boot configuration file %s is invalid (%08x).\n",
588 ErrorResourceId = 9015;
598 L"\nThe boot manager experienced an error (%08x).\n",
602 ErrorResourceId = 9005;
654 Status = RtlSIZETAdd(BootDirLength, 1, &BootDirLength);
717 PWCHAR BcdPath, FullPath, PathBuffer;
762 EfiPrintf(
L"Custom BCD Not handled: %s\r\n", BcdPath);
781 PathBuffer = BcdPath;
786 PathBuffer = FullPath;
833 BcdString.
Length = FullSize;
835 BcdString.
Buffer = FinalBuffer;
861 if ((PathBuffer) && (HavePath))
1019 if ((
Flags) && (BsdPath))
1035 AddressRange.
Maximum = 0xFFFFF;
1050 BlStatusPrint(
L"BmFwMemoryInitialize: Failed to allocate a page below 1MB. Status: 0x%08x\r\n",
1144 AttemptResume =
FALSE;
1182 EfiPrintf(
L"Bad page list persistence not implemented\r\n");
1256 ULONG BootIndex,
i, OptionSize;
1261 BOOLEAN HavePath, IsWinPe, SoftReboot;
1270 for (
i = 0;
i < *SequenceCount;
i++)
1302 BootSequence[BootIndex] = BootEntry;
1306 BootEntry->
Guid = *SequenceList;
1330 switch (
ObjectType.Application.ApplicationCode)
1355 LoaderPath = IsWinPe ?
1356 L"\\Windows\\System32\\boot\\winload.efi" :
1357 L"\\Windows\\System32\\winload.efi";
1439 BootSequence[BootIndex] =
NULL;
1500 *BootSequence = Sequence;
1501 *SequenceCount =
Count;
1516 ULONG BootIndex, BootIniCount, BootEntryCount, BcdCount;
1526 UseDisplayList =
TRUE;
1540 UseDisplayList =
FALSE;
1542 DisplayOrder = &DefaultObject;
1547 *BootSequence =
NULL;
1550 DisplayOrder =
NULL;
1565 BootEntryCount = BootIniCount + BcdCount;
1574 RtlZeroMemory(Sequence, BootEntryCount *
sizeof(*Sequence));
1601 *BootSequence = Sequence;
1602 *SequenceCount = BootIniCount + BcdCount;
1606 if ((UseDisplayList) && (DisplayOrder))
1616 while (BootIndex < BootEntryCount)
1619 if (Sequence[BootIndex])
1650 *DefaultEntry = *Sequence;
1669 for (BootIndex = 0; BootIndex <
Count; BootIndex++)
1677 *DefaultEntry = Sequence[BootIndex];
1678 *DefaultIndex = BootIndex;
1745 return BootMenuPolicy;
1758 MenuStatus->AsULong = 0;
1760 MenuStatus->BootIndex = -1;
1769 EfiPrintf(
L"Custom actions not yet handled\r\n");
1783 *ExitBootManager =
FALSE;
1793 if (MenuStatus.
Exit)
1796 *ExitBootManager =
TRUE;
1799 else if (MenuStatus.
OemKey)
1832 SelectedEntry =
NULL;
1866 EfiPrintf(
L"Hard-coded boot override mode not supported\r\n");
1890 SelectedEntry = *Sequence;
1903 *SelectedBootEntry = SelectedEntry;
1921 for (SelectedIndex = 0; SelectedIndex <
Count; SelectedIndex++)
1924 while (!(Sequence[SelectedIndex]) ||
1928 SelectedEntry = Sequence[SelectedIndex];
1960 *SelectedBootEntry = SelectedEntry;
1972 EfiPrintf(
L"Tool selection not yet implemented\r\n");
1974 *SelectedBootEntry =
NULL;
1981 while (BootIndex <
Count)
1984 Entry = Sequence[BootIndex];
1992 else if (
Entry == SelectedEntry)
1995 *EntryIndex = BootIndex;
2019 PGUID RecoverySequence;
2026 RecoverySequence =
NULL;
2070 if (LaunchCode == 2 || LaunchCode == 5)
2078 else if (LaunchCode == 3)
2100 for (RecoveryIndex = 0; RecoveryIndex <
Count; RecoveryIndex++)
2103 RecoveryEntry = Sequence[RecoveryIndex];
2116 if (RecoverySequence)
2165 EfiPrintf(
L"Error menu not yet implemented\r\n");
2174 ULONG NextOffset, DataOffset, ListOffset;
2221 EfiPrintf(
L"Unspecified devices not yet supported: %p\r\n", ListOption);
2223 }
while (NextOffset != 0);
2258 Status = BlNetSoftReboot(BootEntry);
2351 #if BL_BITLOCKER_SUPPORT 2353 BlFveSecureBootCheckpointAppReturn(BootEntry, &ReturnArgs);
2363 }
while (
Status != 0xC0000453);
2369 if (ReturnArgs.
Flags & 1)
2386 else if (ReturnArgs.
Flags & 4)
2391 else if (ReturnArgs.
Flags & 8)
2396 else if (ReturnArgs.
Flags & 0x10)
2401 else if (ReturnArgs.
Flags & 0x20)
2436 BOOLEAN DoRecovery, AutoRecovery, DoSequence, RestartOnFailure;
2438 BOOLEAN AdvancedOneTime, EditOneTime;
2453 ObjectId = BootEntry->Guid;
2471 ObjectId = BootEntry->Guid;
2512 if (AdvancedOneTime)
2584 if ((LaunchCode == 3) || (LaunchCode == 5) || (LaunchCode == 6))
2592 DoRecovery = AutoRecovery;
2603 RestartOnFailure =
FALSE;
2609 DoSequence = RestartOnFailure ?
FALSE : DoRecovery;
2618 #if BL_BITLOCKER_SUPPORT 2620 BlFveRegisterBootEntryForTrustedWimBoot(BootEntry,
TRUE);
2630 #if BL_BITLOCKER_SUPPORT 2632 BlFveRegisterBootEntryForTrustedWimBoot(BootEntry,
FALSE);
2636 AutoRecovery =
FALSE;
2743 PGUID AppIdentifier;
2744 HANDLE BcdHandle, ResumeBcdHandle;
2747 BOOLEAN XmlLoaded, DisableIntegrity, TestSigning, PersistBootSequence;
2748 BOOLEAN RebootOnError, CustomActions;
2752 ULONG SequenceListCount;
2758 ULONG SequenceCount;
2760 EfiPrintf(
L"ReactOS UEFI Boot Manager Initializing...\r\n");
2763 RebootOnError =
FALSE;
2766 #if defined(_M_IX86) || defined(_M_X64) 2769 EfiPrintf(
L"No time source defined for this platform\r\n");
2801 AppIdentifier = (
PGUID)&GUID_WINDOWS_BOOTMGR;
2834 Status = BmSecureBootInitializeMachinePolicy();
2844 sizeof(LibraryParameters));
2893 FveDisplayScreen = BmFveDisplayScreen;
2900 if (!DisableIntegrity)
2913 EfiPrintf(
L"Performing memory allocator tests...\r\n");
2996 #ifdef BL_NET_SUPPORT 2998 BlUtlRegisterMulticastRoutine();
3009 &PersistBootSequence);
3013 PersistBootSequence =
TRUE;
3034 SequenceList =
NULL;
3035 BootSequence =
NULL;
3044 if (!(BootSequence) && !(GetEntry))
3050 &SequenceListCount);
3067 if (PersistBootSequence)
3089 BootSequence =
NULL;
3094 if ((BootSequence) && ((GetEntry) || (SequenceId < SequenceCount)))
3097 BootEntry = BootSequence[SequenceId];
3098 BootSequence[SequenceId] =
NULL;
3104 if (SequenceId == SequenceCount)
3108 BootSequence =
NULL;
3114 ExitBootManager =
FALSE;
3223 if ((RebootOnError) ||
3233 ReturnArguments = (
PVOID)((
ULONG_PTR)BootParameters + BootParameters->ReturnArgumentsOffset);
#define BL_APPLICATION_ENTRY_REBOOT_ON_ERROR
#define BL_APPLICATION_FLAG_CONVERTED_FROM_EFI
#define BCD_APPLICATION_TYPE_SETUPLDR
BL_MENU_POLICY BmGetBootMenuPolicy(_In_ PBL_LOADED_APPLICATION_ENTRY BootEntry)
NTSTATUS NTAPI BmMain(_In_ PBOOT_APPLICATION_PARAMETER_BLOCK BootParameters)
PBL_DEVICE_DESCRIPTOR BlpBootDevice
NTSTATUS BmGetBootSequence(_In_ HANDLE BcdHandle, _In_ PGUID SequenceList, _In_ ULONG SequenceListCount, _In_ ULONG Flags, _Out_ PBL_LOADED_APPLICATION_ENTRY **BootSequence, _Out_ PULONG SequenceCount)
#define STATUS_INVALID_IMAGE_WIN_64
VOID BiCloseKey(_In_ HANDLE KeyHandle)
BL_LIBRARY_PARAMETERS BlpLibraryParameters
return STATUS_NOT_SUPPORTED
BL_BOOT_ERROR BmpErrorBuffer
BL_BSD_LOG_OBJECT BsdpLogObject
#define BL_LIBRARY_FLAG_REINITIALIZE
#define BL_APPLICATION_ENTRY_DISPLAY_ORDER
ULONG BlGetBootOptionListSize(_In_ PBL_BCD_OPTION BcdOption)
NTSTATUS BmpFwGetApplicationDirectoryPath(_In_ PUNICODE_STRING ApplicationDirectoryPath)
_In_ NDIS_ERROR_CODE ErrorCode
NTSTATUS BlFileOpen(_In_ ULONG DeviceId, _In_ PWCHAR FileName, _In_ ULONG Flags, _Out_ PULONG FileId)
_Inout_ PUSB_DEVICE_HANDLE DeviceHandle
NTSTATUS BlDeviceClose(_In_ ULONG DeviceId)
NTSTATUS BmResumeFromHibernate(_Out_ PHANDLE BcdResumeHandle)
NTSTATUS BmPurgeOption(_In_ HANDLE BcdHandle, _In_ PGUID ObjectId, _In_ ULONG Type)
struct _BL_BCD_OPTION * PBL_BCD_OPTION
VOID BlDestroyLibrary(VOID)
DEFINE_GUID(GUID_WINDOWS_BOOTMGR, 0x9DEA862C, 0x5CDD, 0x4E70, 0xAC, 0xC1, 0xF3, 0x2B, 0x34, 0x4D, 0x47, 0x95)
NTSTATUS BlGetBootOptionGuid(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PGUID Value)
NTSTATUS BlGetBootOptionGuidList(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PGUID *Value, _In_ PULONG Count)
NTSTATUS EfiStall(_In_ ULONG StallTime)
ULONGLONG ApplicationStartTime
NTSTATUS BmpFwGetFullPath(_In_ PWCHAR FileName, _Out_ PWCHAR *FullPath)
#define BL_DEVICE_WRITE_ACCESS
NTSTATUS BmFwVerifySelfIntegrity(VOID)
IN BOOLEAN OUT PSTR Buffer
ULONG BmpFatalErrorMessageFilter(_In_ NTSTATUS ErrorStatus, _Out_ PULONG ErrorResourceId)
#define STATUS_INVALID_PARAMETER
NTSTATUS BmpBgDisplayClearScreen(_In_ ULONG Color)
#define BL_APPLICATION_ENTRY_NTLDR
#define BL_FATAL_ERROR_BCD_READ
#define BL_FATAL_ERROR_APP_LOAD
NTSTATUS BcdOpenStoreFromFile(_In_ PUNICODE_STRING FileName, _In_ PHANDLE StoreHandle)
NTSTATUS BmpLaunchBootEntry(_In_ PBL_LOADED_APPLICATION_ENTRY BootEntry, _Out_ PULONG EntryIndex, _In_ ULONG LaunchCode, _In_ BOOLEAN LaunchWinRe)
NTSTATUS BlPdQueryData(_In_ const GUID *DataGuid, _In_ PVOID Unknown, _Inout_ PBL_PD_DATA_BLOB DataBlob)
#define STATUS_INVALID_PARAMETER_9
#define BL_APPLICATION_ENTRY_BOOTSECTOR
NTSTATUS BlDisplayClearScreen(VOID)
VOID BlRemoveBootOption(_In_ PBL_BCD_OPTION List, _In_ ULONG Type)
PPC_QUAL unsigned long long __rdtsc(void)
#define BL_FATAL_ERROR_GENERIC
NTSTATUS BlMmAllocatePhysicalPages(_Inout_ PPHYSICAL_ADDRESS Address, _In_ BL_MEMORY_TYPE MemoryType, _In_ ULONGLONG PageCount, _In_ ULONG Attributes, _In_ ULONG Alignment)
NTSTATUS BlXmiInitialize(_In_ PWCHAR Stylesheet)
VOID BlStatusError(_In_ ULONG ErrorCode, _In_ ULONG Parameter1, _In_ ULONG_PTR Parameter2, _In_ ULONG_PTR Parameter3, _In_ ULONG_PTR Parameter4)
NTSTATUS BcdOpenObject(_In_ HANDLE BcdHandle, _In_ PGUID ObjectId, _Out_ PHANDLE ObjectHandle)
NTSTATUS BlMmFreePhysicalPages(_In_ PHYSICAL_ADDRESS Address)
static const WCHAR Description[]
#define STATUS_FILE_INVALID
NTSTATUS BmpPopulateBootEntryList(_In_ HANDLE BcdHandle, _In_ PGUID SequenceList, _In_ ULONG Flags, _Out_ PBL_LOADED_APPLICATION_ENTRY *BootSequence, _Out_ PULONG SequenceCount)
DWORD FormatString(DWORD dwFlags, HINSTANCE hInstance, DWORD dwStringId, DWORD dwLanguageId, LPWSTR lpBuffer, DWORD nSize, va_list *Arguments)
#define BL_APPLICATION_ENTRY_SETUPLDR
BOOLEAN BsdpLogObjectInitialized
NTSTATUS BlMmFreeHeap(_In_ PVOID Buffer)
NTSTATUS BlGetBootOptionInteger(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PULONGLONG Value)
NTSTATUS BlFwEnumerateDevice(_In_ PBL_DEVICE_DESCRIPTOR Device)
#define STATUS_BUFFER_TOO_SMALL
BL_PACKED_BOOT_ERROR BmpPackedBootError
NTSTATUS BmLaunchRecoverySequence(_In_ PBL_LOADED_APPLICATION_ENTRY BootEntry, _In_ ULONG LaunchCode)
BL_LOADED_APPLICATION_ENTRY BlpApplicationEntry
NTSTATUS BcdEnumerateAndUnpackElements(_In_ HANDLE BcdHandle, _In_ HANDLE ObjectHandle, _Out_opt_ PBCD_ELEMENT Elements, _Inout_ PULONG ElementSize, _Out_ PULONG ElementCount)
return STATUS_NOT_IMPLEMENTED
GUID BmApplicationIdentifier
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
NTSTATUS BlDisplaySetCursorType(_In_ ULONG Type)
#define BCD_IMAGE_TYPE_REAL_MODE
#define BCD_OBJECT_TYPE_APPLICATION
#define OBJ_NAME_PATH_SEPARATOR
#define BL_APPLICATION_ENTRY_WINRESUME
enum _BL_MENU_POLICY BL_MENU_POLICY
VOID BmpInitializeBootStatusDataLog(VOID)
NTSTATUS BmpCreateDevices(_In_ PBL_LOADED_APPLICATION_ENTRY BootEntry)
NTSTATUS BmFwInitializeBootDirectoryPath(VOID)
NTSTATUS MmPapAllocatePhysicalPagesInRange(_Inout_ PPHYSICAL_ADDRESS BaseAddress, _In_ BL_MEMORY_TYPE MemoryType, _In_ ULONGLONG Pages, _In_ ULONG Attributes, _In_ ULONG Alignment, _In_ PBL_MEMORY_DESCRIPTOR_LIST NewList, _In_opt_ PBL_ADDRESS_RANGE Range, _In_ ULONG RangeType)
BOOLEAN BlDisplayValidOemBitmap(VOID)
NTSTATUS BmGetOptionList(_In_ HANDLE BcdHandle, _In_ PGUID ObjectId, _In_ PBL_BCD_OPTION *OptionList)
#define BL_APPLICATION_ENTRY_FIXED_SEQUENCE
NTSTATUS BlGetBootOptionBoolean(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PBOOLEAN Value)
VOID BlBsdInitializeLog(_In_ PBL_DEVICE_DESCRIPTOR LogDevice, _In_ PWCHAR LogPath, _In_ ULONG Flags)
#define BL_APPLICATION_ENTRY_RECOVERY
PVOID BlMmAllocateHeap(_In_ SIZE_T Size)
NTSTATUS BlImgStartBootApplication(_In_ ULONG AppHandle, _Inout_ PBL_RETURN_ARGUMENTS ReturnArguments)
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
PBL_LOADED_APPLICATION_ENTRY BmpSelectedBootEntry
NTSTATUS BmGetEntryDescription(_In_ HANDLE BcdHandle, _In_ PGUID ObjectId, _Out_ PBCD_OBJECT_DESCRIPTION Description)
BL_DEVICE_DESCRIPTOR DeviceDescriptor
PWCHAR BlResourceFindMessage(_In_ ULONG MsgId)
PBCD_ELEMENT_HEADER Header
NTSTATUS BlSecureBootIsEnabled(_Out_ PBOOLEAN SecureBootEnabled)
BOOLEAN BmBootEntryOverridePresent
static PCWSTR OptionList[]
#define STATUS_IMAGE_CHECKSUM_MISMATCH
VOID BmFwMemoryInitialize(VOID)
VOID BmpGetDefaultBootEntry(_In_ PBL_LOADED_APPLICATION_ENTRY *Sequence, _In_ ULONG Count, _Out_ PBL_LOADED_APPLICATION_ENTRY *DefaultEntry, _Out_ PULONG DefaultIndex)
VOID BmpErrorLog(_In_ ULONG ErrorCode, _In_ NTSTATUS ErrorStatus, _In_ ULONG ErrorMsgId, _In_ PWCHAR FileName, _In_ ULONG HelpMsgId)
PBL_BCD_OPTION MiscGetBootOption(_In_ PBL_BCD_OPTION List, _In_ ULONG Type)
VOID BlDestroyBootEntry(_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry)
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
#define BL_FILE_WRITE_ACCESS
_Must_inspect_result_ _In_ ULONG Flags
NTSTATUS BlReplaceBootOptions(_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry, _In_ PBL_BCD_OPTION NewOptions)
NTSYSAPI ULONG NTAPI RtlEqualMemory(CONST VOID *Source1, CONST VOID *Source2, ULONG Length)
#define BL_APPLICATION_ENTRY_STARTUP
#define NT_SUCCESS(StatCode)
NTSTATUS BiGetObjectDescription(_In_ HANDLE ObjectHandle, _Out_ PBCD_OBJECT_DESCRIPTION Description)
NTSTATUS BlCopyBootOptions(_In_ PBL_BCD_OPTION OptionList, _Out_ PBL_BCD_OPTION *CopiedOptions)
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID * Guid
ULONG BmDisplayDumpError(_In_ PBL_LOADED_APPLICATION_ENTRY BootEntry, _In_ ULONG LaunchCode)
NTSTATUS BlSecureBootCheckForFactoryReset(VOID)
NTSTATUS BlInitializeLibrary(_In_ PBOOT_APPLICATION_PARAMETER_BLOCK BootAppParameters, _In_ PBL_LIBRARY_PARAMETERS LibraryParameters)
NTSTATUS BmpProcessBadMemory(VOID)
NTSTATUS BlImgUnloadBootApplication(_In_ ULONG AppHandle)
VOID BmpProcessBootEntry(_In_ HANDLE BcdHandle, _In_ PBL_LOADED_APPLICATION_ENTRY BootEntry, _Out_ PBOOLEAN ExitBootManager)
FORCEINLINE VOID BlSetupDefaultParameters(_Out_ PBL_LIBRARY_PARAMETERS LibraryParameters)
BL_LOCAL_DEVICE_TYPE Type
NTSTATUS BlAppendBootOptions(_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry, _In_ PBL_BCD_OPTION Options)
PGUID BlGetApplicationIdentifier(VOID)
struct _BL_BCD_OPTION BL_BCD_OPTION
#define STATUS_UNSUCCESSFUL
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
VOID BmCloseDataStore(_In_ HANDLE Handle)
NTSTATUS BmOpenBootIni(VOID)
NTSTATUS BlGetBootOptionString(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PWCHAR *Value)
#define BL_FATAL_ERROR_BCD_ENTRIES
NTSTATUS BmOpenDataStore(_Out_ PHANDLE Handle)
#define BL_FATAL_ERROR_BCD_PARSE
NTSTATUS BmProcessCustomAction(_In_ HANDLE BcdHandle, _In_ PWCHAR ActionKey)
int _cdecl swprintf(const WCHAR *,...)
_CRTIMP wchar_t *__cdecl wcsncat(wchar_t *_Dest, const wchar_t *_Source, size_t _Count)
PBL_LOADED_APPLICATION_ENTRY * BmpFailedBootEntries
#define BCD_APPLICATION_TYPE_RESUME
NTSTATUS BlAppendBootOptionString(_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry, _In_ ULONG OptionId, _In_ PWCHAR OptionString)
VOID BlImgQueryCodeIntegrityBootOptions(_In_ PBL_LOADED_APPLICATION_ENTRY ApplicationEntry, _Out_ PBOOLEAN IntegrityChecksDisabled, _Out_ PBOOLEAN TestSigning)
ULONG BlpApplicationFlags
NTSTATUS BlFileClose(_In_ ULONG FileId)
#define BL_DEVICE_READ_ACCESS
NTSTATUS BlGetBootOptionDevice(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PBL_DEVICE_DESCRIPTOR *Value, _In_opt_ PBL_BCD_OPTION *ExtraOptions)
#define BCD_APPLICATION_TYPE_STARTUPCOM
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE FileHandle
struct _FileName FileName
NTSTATUS BmpUpdateApplicationOptions(_In_ HANDLE BcdHandle)
WCHAR BmpFileNameBuffer[128]
ULONG BlGetBootOptionSize(_In_ PBL_BCD_OPTION BcdOption)
_CRTIMP wchar_t *__cdecl wcsncpy(wchar_t *_Dest, const wchar_t *_Source, size_t _Count)
#define BL_FILE_READ_ACCESS
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
#define BCD_APPLICATION_TYPE_BOOTMGR
#define BCD_APPLICATION_TYPE_BOOTSECTOR
NTSTATUS BcdDeleteElement(_In_ HANDLE ObjectHandle, _In_ ULONG Type)
VOID BiDereferenceHive(_In_ HANDLE KeyHandle)
#define BL_FATAL_ERROR_NO_PAE
NTSTATUS BlUtlRegisterProgressRoutine(VOID)
NTSTATUS BmEnumerateBootEntries(_In_ HANDLE BcdHandle, _Out_ PBL_LOADED_APPLICATION_ENTRY **BootSequence, _Out_ PULONG SequenceCount)
VOID EfiPrintf(_In_ PWCHAR Format,...)
#define BL_LIBRARY_FLAG_REINITIALIZE_ALL
#define BL_MM_REQUEST_DEFAULT_TYPE
VOID BmFatalErrorEx(_In_ ULONG ErrorCode, _In_ ULONG_PTR Parameter1, _In_ ULONG_PTR Parameter2, _In_ ULONG_PTR Parameter3, _In_ ULONG_PTR Parameter4)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define BL_RETURN_ARGUMENTS_NO_PAE_FLAG
struct _BCD_DEVICE_OPTION * PBCD_DEVICE_OPTION
#define STATUS_UNEXPECTED_IO_ERROR
NTSTATUS BlImgLoadBootApplication(_In_ PBL_LOADED_APPLICATION_ENTRY BootEntry, _Out_ PULONG AppHandle)
VOID BlStatusPrint(_In_ PCWCH Format,...)
NTSTATUS BmFwRegisterRevocationList(VOID)
ULONG MinimumAllocationCount
BL_MEMORY_DESCRIPTOR_LIST MmMdlUnmappedAllocated
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define RtlZeroMemory(Destination, Length)
VOID BmDisplayGetBootMenuStatus(_Out_ PL_MENU_STATUS MenuStatus)
#define BCD_APPLICATION_TYPE_OSLOADER
#define RtlCopyMemory(Destination, Source, Length)
#define BL_RETURN_ARGUMENTS_VERSION
NTSTATUS BlpDeviceOpen(_In_ PBL_DEVICE_DESCRIPTOR Device, _In_ ULONG Flags, _In_ ULONG Unknown, _Out_ PULONG DeviceId)
struct _BL_BSD_LOG_OBJECT * PBL_BSD_LOG_OBJECT
BOOLEAN BmDisplayStateCached
PBL_BOOT_ERROR BmpInternalBootError
PWCHAR BlResourceFindHtml(VOID)
NTSTATUS BlAppendBootOptionInteger(_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry, _In_ ULONG OptionId, _In_ ULONGLONG Value)
base of all file and directory entries
NTSTATUS BmpTransferExecution(_In_ PBL_LOADED_APPLICATION_ENTRY BootEntry, _Out_ PULONG LaunchCode, _Out_ PBOOLEAN Recover)
#define BL_APPLICATION_ENTRY_WINLOAD
NTSTATUS BlAppendBootOptionBoolean(_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry, _In_ ULONG OptionId, _In_ BOOLEAN Value)
#define STATUS_FVE_LOCKED_VOLUME
NTSTATUS BlXmiWrite(_In_ PWCHAR XmlTag)
BOOLEAN BmpDisplayBootMenu
struct _BL_BSD_LOG_OBJECT BL_BSD_LOG_OBJECT
NTSTATUS BmpGetSelectedBootEntry(_In_ HANDLE BcdHandle, _Out_ PBL_LOADED_APPLICATION_ENTRY *SelectedBootEntry, _Out_ PULONG EntryIndex, _Out_ PBOOLEAN ExitBootManager)
#define BCD_APPLICATION_TYPE_NTLDR