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 OBJ_NAME_PATH_SEPARATOR
NTSTATUS BcdDeleteElement(_In_ HANDLE ObjectHandle, _In_ ULONG Type)
@ BcdOSLoaderBoolean_WinPEMode
@ BcdOSLoaderInteger_BootMenuPolicy
@ BcdOSLoaderBoolean_DisableCrashAutoReboot
@ BcdOSLoaderBoolean_OptionsEditOneTime
@ BcdOSLoaderBoolean_EmsEnabled
@ BcdOSLoaderBoolean_AdvancedOptionsOneTime
#define BCD_IMAGE_TYPE_REAL_MODE
#define BCD_APPLICATION_TYPE_NTLDR
#define BCD_APPLICATION_TYPE_BOOTSECTOR
@ BcdBootMgrBoolean_ProcessCustomActionsFirst
@ BcdBootMgrBoolean_NoErrorDisplay
@ BcdBootMgrBoolean_AttemptResume
@ BcdBootMgrObjectList_DisplayOrder
@ BcdBootMgrBoolean_PersistBootSequence
@ BcdBootMgrString_BcdFilePath
@ BcdBootMgrBoolean_DisplayBootMenu
@ BcdBootMgrObject_DefaultObject
@ BcdBootMgrInteger_Timeout
@ BcdBootMgrObjectList_BootSequence
@ BcdBootMgrDevice_BcdDevice
#define BCD_APPLICATION_TYPE_RESUME
struct _BCD_DEVICE_OPTION * PBCD_DEVICE_OPTION
#define BCD_APPLICATION_TYPE_BOOTMGR
@ BcdResumeInteger_BootMenuPolicy
#define BCD_OBJECT_TYPE_APPLICATION
#define BCD_APPLICATION_TYPE_OSLOADER
NTSTATUS BcdOpenObject(_In_ HANDLE BcdHandle, _In_ PGUID ObjectId, _Out_ PHANDLE ObjectHandle)
#define BCD_APPLICATION_TYPE_STARTUPCOM
#define BCD_APPLICATION_TYPE_SETUPLDR
NTSTATUS BcdOpenStoreFromFile(_In_ PUNICODE_STRING FileName, _In_ PHANDLE StoreHandle)
NTSTATUS BiGetObjectDescription(_In_ HANDLE ObjectHandle, _Out_ PBCD_OBJECT_DESCRIPTION Description)
@ BcdLibraryBoolean_AutoRecoveryEnabled
@ BcdLibraryBoolean_PreserveBsdLog
@ BcdLibraryString_Description
@ BcdLibraryDevice_ApplicationDevice
@ BcdLibraryBoolean_DisplayOptionsEdit
@ BcdLibraryObjectList_RecoverySequence
@ BcdLibraryDevice_BsdLogDevice
@ BcdLibraryString_BsdLogPath
@ BcdLibraryBoolean_DisplayAdvancedOptions
@ BcdLibraryInteger_DisplayMessageOverride
@ BcdLibraryString_ApplicationPath
@ BcdLibraryBoolean_RestartOnFailure
@ BcdStartupBoolean_PxeSoftReboot
NTSTATUS BcdEnumerateAndUnpackElements(_In_ HANDLE BcdHandle, _In_ HANDLE ObjectHandle, _Out_opt_ PBCD_ELEMENT Elements, _Inout_ PULONG ElementSize, _Out_ PULONG ElementCount)
NTSTATUS BlDisplaySetCursorType(_In_ ULONG Type)
NTSTATUS BlSecureBootIsEnabled(_Out_ PBOOLEAN SecureBootEnabled)
struct _BL_BCD_OPTION * PBL_BCD_OPTION
#define BL_APPLICATION_FLAG_CONVERTED_FROM_EFI
NTSTATUS BlGetBootOptionBoolean(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PBOOLEAN Value)
#define BL_APPLICATION_ENTRY_FIXED_SEQUENCE
PWCHAR BlResourceFindMessage(_In_ ULONG MsgId)
#define BL_DEVICE_READ_ACCESS
NTSTATUS BlMmAllocatePhysicalPages(_Inout_ PPHYSICAL_ADDRESS Address, _In_ BL_MEMORY_TYPE MemoryType, _In_ ULONGLONG PageCount, _In_ ULONG Attributes, _In_ ULONG Alignment)
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)
NTSTATUS BlFileOpen(_In_ ULONG DeviceId, _In_ PWCHAR FileName, _In_ ULONG Flags, _Out_ PULONG FileId)
VOID BlImgQueryCodeIntegrityBootOptions(_In_ PBL_LOADED_APPLICATION_ENTRY ApplicationEntry, _Out_ PBOOLEAN IntegrityChecksDisabled, _Out_ PBOOLEAN TestSigning)
VOID BlDestroyBootEntry(_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry)
NTSTATUS BlInitializeLibrary(_In_ PBOOT_APPLICATION_PARAMETER_BLOCK BootAppParameters, _In_ PBL_LIBRARY_PARAMETERS LibraryParameters)
VOID EfiPrintf(_In_ PWCHAR Format,...)
NTSTATUS BlUtlRegisterProgressRoutine(VOID)
#define BL_FILE_WRITE_ACCESS
NTSTATUS BlGetBootOptionGuidList(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PGUID *Value, _In_ PULONG Count)
#define BL_DEVICE_WRITE_ACCESS
#define BL_APPLICATION_ENTRY_DISPLAY_ORDER
VOID BiDereferenceHive(_In_ HANDLE KeyHandle)
#define BL_APPLICATION_ENTRY_RECOVERY
NTSTATUS BlGetBootOptionDevice(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PBL_DEVICE_DESCRIPTOR *Value, _In_opt_ PBL_BCD_OPTION *ExtraOptions)
PVOID BlMmAllocateHeap(_In_ SIZE_T Size)
NTSTATUS BlpDeviceOpen(_In_ PBL_DEVICE_DESCRIPTOR Device, _In_ ULONG Flags, _In_ ULONG Unknown, _Out_ PULONG DeviceId)
NTSTATUS BlDeviceClose(_In_ ULONG DeviceId)
NTSTATUS BlReplaceBootOptions(_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry, _In_ PBL_BCD_OPTION NewOptions)
#define BL_RETURN_ARGUMENTS_NO_PAE_FLAG
NTSTATUS BlMmFreePhysicalPages(_In_ PHYSICAL_ADDRESS Address)
BL_MEMORY_DESCRIPTOR_LIST MmMdlUnmappedAllocated
PBL_DEVICE_DESCRIPTOR BlpBootDevice
ULONG BlGetBootOptionSize(_In_ PBL_BCD_OPTION BcdOption)
#define BL_LIBRARY_FLAG_REINITIALIZE
#define BL_MM_REQUEST_DEFAULT_TYPE
#define BL_APPLICATION_ENTRY_SETUPLDR
PWCHAR BlResourceFindHtml(VOID)
VOID BiCloseKey(_In_ HANDLE KeyHandle)
ULONG BlpApplicationFlags
NTSTATUS BlSecureBootCheckForFactoryReset(VOID)
NTSTATUS BlAppendBootOptionInteger(_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry, _In_ ULONG OptionId, _In_ ULONGLONG Value)
NTSTATUS BlGetBootOptionGuid(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PGUID Value)
NTSTATUS BlFwEnumerateDevice(_In_ PBL_DEVICE_DESCRIPTOR Device)
NTSTATUS BlAppendBootOptions(_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry, _In_ PBL_BCD_OPTION Options)
#define BL_APPLICATION_ENTRY_BOOTSECTOR
NTSTATUS BlPdQueryData(_In_ const GUID *DataGuid, _In_ PVOID Unknown, _Inout_ PBL_PD_DATA_BLOB DataBlob)
NTSTATUS EfiStall(_In_ ULONG StallTime)
#define BL_APPLICATION_ENTRY_NTLDR
VOID BlRemoveBootOption(_In_ PBL_BCD_OPTION List, _In_ ULONG Type)
PGUID BlGetApplicationIdentifier(VOID)
FORCEINLINE VOID BlSetupDefaultParameters(_Out_ PBL_LIBRARY_PARAMETERS LibraryParameters)
BL_LIBRARY_PARAMETERS BlpLibraryParameters
VOID BlDestroyLibrary(VOID)
BOOLEAN BlDisplayValidOemBitmap(VOID)
#define BL_LIBRARY_FLAG_REINITIALIZE_ALL
NTSTATUS BlImgLoadBootApplication(_In_ PBL_LOADED_APPLICATION_ENTRY BootEntry, _Out_ PULONG AppHandle)
NTSTATUS BlCopyBootOptions(_In_ PBL_BCD_OPTION OptionList, _Out_ PBL_BCD_OPTION *CopiedOptions)
NTSTATUS BlAppendBootOptionString(_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry, _In_ ULONG OptionId, _In_ PWCHAR OptionString)
#define BL_FILE_READ_ACCESS
NTSTATUS BlGetBootOptionString(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PWCHAR *Value)
#define BL_APPLICATION_ENTRY_WINRESUME
BL_LOADED_APPLICATION_ENTRY BlpApplicationEntry
NTSTATUS BlFileClose(_In_ ULONG FileId)
#define BL_APPLICATION_ENTRY_STARTUP
PBL_BCD_OPTION MiscGetBootOption(_In_ PBL_BCD_OPTION List, _In_ ULONG Type)
struct _BL_BCD_OPTION BL_BCD_OPTION
NTSTATUS BlMmFreeHeap(_In_ PVOID Buffer)
#define BL_APPLICATION_ENTRY_WINLOAD
VOID BlStatusPrint(_In_ PCWCH Format,...)
enum _BL_MENU_POLICY BL_MENU_POLICY
NTSTATUS BlImgUnloadBootApplication(_In_ ULONG AppHandle)
NTSTATUS BlImgStartBootApplication(_In_ ULONG AppHandle, _Inout_ PBL_RETURN_ARGUMENTS ReturnArguments)
VOID BlStatusError(_In_ ULONG ErrorCode, _In_ ULONG Parameter1, _In_ ULONG_PTR Parameter2, _In_ ULONG_PTR Parameter3, _In_ ULONG_PTR Parameter4)
NTSTATUS BlAppendBootOptionBoolean(_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry, _In_ ULONG OptionId, _In_ BOOLEAN Value)
NTSTATUS BlGetBootOptionInteger(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PULONGLONG Value)
NTSTATUS BlDisplayClearScreen(VOID)
ULONG BlGetBootOptionListSize(_In_ PBL_BCD_OPTION BcdOption)
#define BL_RETURN_ARGUMENTS_VERSION
#define BL_APPLICATION_ENTRY_REBOOT_ON_ERROR
#define BL_FATAL_ERROR_NO_PAE
#define BL_FATAL_ERROR_BCD_READ
#define BL_FATAL_ERROR_GENERIC
#define BL_FATAL_ERROR_BCD_PARSE
#define BL_FATAL_ERROR_BCD_ENTRIES
#define BL_FATAL_ERROR_APP_LOAD
#define NT_SUCCESS(StatCode)
static const WCHAR Description[]
VOID BmpInitializeBootStatusDataLog(VOID)
NTSTATUS BmpProcessBadMemory(VOID)
VOID BmpProcessBootEntry(_In_ HANDLE BcdHandle, _In_ PBL_LOADED_APPLICATION_ENTRY BootEntry, _Out_ PBOOLEAN ExitBootManager)
NTSTATUS BmpBgDisplayClearScreen(_In_ ULONG Color)
NTSTATUS NTAPI BmMain(_In_ PBOOT_APPLICATION_PARAMETER_BLOCK BootParameters)
BL_BSD_LOG_OBJECT BsdpLogObject
NTSTATUS BlXmiWrite(_In_ PWCHAR XmlTag)
NTSTATUS BmGetBootSequence(_In_ HANDLE BcdHandle, _In_ PGUID SequenceList, _In_ ULONG SequenceListCount, _In_ ULONG Flags, _Out_ PBL_LOADED_APPLICATION_ENTRY **BootSequence, _Out_ PULONG SequenceCount)
NTSTATUS BmpFwGetFullPath(_In_ PWCHAR FileName, _Out_ PWCHAR *FullPath)
struct _BL_BSD_LOG_OBJECT BL_BSD_LOG_OBJECT
NTSTATUS BmpCreateDevices(_In_ PBL_LOADED_APPLICATION_ENTRY BootEntry)
NTSTATUS BmFwVerifySelfIntegrity(VOID)
BL_BOOT_ERROR BmpErrorBuffer
NTSTATUS BmFwInitializeBootDirectoryPath(VOID)
VOID BmCloseDataStore(_In_ HANDLE Handle)
BL_MENU_POLICY BmGetBootMenuPolicy(_In_ PBL_LOADED_APPLICATION_ENTRY BootEntry)
BL_PACKED_BOOT_ERROR BmpPackedBootError
PBL_LOADED_APPLICATION_ENTRY * BmpFailedBootEntries
NTSTATUS BlXmiInitialize(_In_ PWCHAR Stylesheet)
VOID BmFatalErrorEx(_In_ ULONG ErrorCode, _In_ ULONG_PTR Parameter1, _In_ ULONG_PTR Parameter2, _In_ ULONG_PTR Parameter3, _In_ ULONG_PTR Parameter4)
VOID BmDisplayGetBootMenuStatus(_Out_ PL_MENU_STATUS MenuStatus)
PBL_LOADED_APPLICATION_ENTRY BmpSelectedBootEntry
NTSTATUS BmpLaunchBootEntry(_In_ PBL_LOADED_APPLICATION_ENTRY BootEntry, _Out_ PULONG EntryIndex, _In_ ULONG LaunchCode, _In_ BOOLEAN LaunchWinRe)
NTSTATUS BmOpenDataStore(_Out_ PHANDLE Handle)
NTSTATUS BmFwRegisterRevocationList(VOID)
NTSTATUS BmEnumerateBootEntries(_In_ HANDLE BcdHandle, _Out_ PBL_LOADED_APPLICATION_ENTRY **BootSequence, _Out_ PULONG SequenceCount)
NTSTATUS BmOpenBootIni(VOID)
NTSTATUS BmGetOptionList(_In_ HANDLE BcdHandle, _In_ PGUID ObjectId, _In_ PBL_BCD_OPTION *OptionList)
ULONG BmpFatalErrorMessageFilter(_In_ NTSTATUS ErrorStatus, _Out_ PULONG ErrorResourceId)
VOID BmpGetDefaultBootEntry(_In_ PBL_LOADED_APPLICATION_ENTRY *Sequence, _In_ ULONG Count, _Out_ PBL_LOADED_APPLICATION_ENTRY *DefaultEntry, _Out_ PULONG DefaultIndex)
NTSTATUS BmpPopulateBootEntryList(_In_ HANDLE BcdHandle, _In_ PGUID SequenceList, _In_ ULONG Flags, _Out_ PBL_LOADED_APPLICATION_ENTRY *BootSequence, _Out_ PULONG SequenceCount)
BOOLEAN BmpDisplayBootMenu
BOOLEAN BmDisplayStateCached
NTSTATUS BmpTransferExecution(_In_ PBL_LOADED_APPLICATION_ENTRY BootEntry, _Out_ PULONG LaunchCode, _Out_ PBOOLEAN Recover)
ULONG BmDisplayDumpError(_In_ PBL_LOADED_APPLICATION_ENTRY BootEntry, _In_ ULONG LaunchCode)
NTSTATUS BmPurgeOption(_In_ HANDLE BcdHandle, _In_ PGUID ObjectId, _In_ ULONG Type)
ULONGLONG ApplicationStartTime
struct _BL_BSD_LOG_OBJECT * PBL_BSD_LOG_OBJECT
NTSTATUS BmpUpdateApplicationOptions(_In_ HANDLE BcdHandle)
NTSTATUS BmProcessCustomAction(_In_ HANDLE BcdHandle, _In_ PWCHAR ActionKey)
NTSTATUS BmpFwGetApplicationDirectoryPath(_In_ PUNICODE_STRING ApplicationDirectoryPath)
BOOLEAN BmBootEntryOverridePresent
VOID BlBsdInitializeLog(_In_ PBL_DEVICE_DESCRIPTOR LogDevice, _In_ PWCHAR LogPath, _In_ ULONG Flags)
NTSTATUS BmResumeFromHibernate(_Out_ PHANDLE BcdResumeHandle)
BOOLEAN BsdpLogObjectInitialized
GUID BmApplicationIdentifier
VOID BmFwMemoryInitialize(VOID)
VOID BmpErrorLog(_In_ ULONG ErrorCode, _In_ NTSTATUS ErrorStatus, _In_ ULONG ErrorMsgId, _In_ PWCHAR FileName, _In_ ULONG HelpMsgId)
NTSTATUS BmLaunchRecoverySequence(_In_ PBL_LOADED_APPLICATION_ENTRY BootEntry, _In_ ULONG LaunchCode)
NTSTATUS BmGetEntryDescription(_In_ HANDLE BcdHandle, _In_ PGUID ObjectId, _Out_ PBCD_OBJECT_DESCRIPTION Description)
NTSTATUS BmpGetSelectedBootEntry(_In_ HANDLE BcdHandle, _Out_ PBL_LOADED_APPLICATION_ENTRY *SelectedBootEntry, _Out_ PULONG EntryIndex, _Out_ PBOOLEAN ExitBootManager)
WCHAR BmpFileNameBuffer[128]
PBL_BOOT_ERROR BmpInternalBootError
struct _FileName FileName
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE FileHandle
DWORD FormatString(DWORD dwFlags, HINSTANCE hInstance, DWORD dwStringId, DWORD dwLanguageId, LPWSTR lpBuffer, DWORD nSize, va_list *Arguments)
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
_Inout_ PUSB_DEVICE_HANDLE DeviceHandle
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
PPC_QUAL unsigned long long __rdtsc(void)
#define RtlEqualMemory(dst, src, len)
_In_ NDIS_ERROR_CODE ErrorCode
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define STATUS_INVALID_IMAGE_WIN_64
#define STATUS_FVE_LOCKED_VOLUME
#define STATUS_IMAGE_CHECKSUM_MISMATCH
#define STATUS_INVALID_PARAMETER_9
#define STATUS_NOT_SUPPORTED
#define STATUS_FILE_INVALID
#define STATUS_NOT_IMPLEMENTED
#define STATUS_UNEXPECTED_IO_ERROR
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
_CRTIMP wchar_t *__cdecl wcsncat(wchar_t *_Dest, const wchar_t *_Source, size_t _Count)
_CRTIMP wchar_t *__cdecl wcsncpy(wchar_t *_Dest, const wchar_t *_Source, size_t _Count)
#define STATUS_BUFFER_TOO_SMALL
base of all file and directory entries
BL_DEVICE_DESCRIPTOR DeviceDescriptor
PBCD_ELEMENT_HEADER Header
ULONG MinimumAllocationCount
BL_LOCAL_DEVICE_TYPE Type
static PCWSTR OptionList[]
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define STATUS_INVALID_PARAMETER
#define STATUS_UNSUCCESSFUL
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID * Guid
_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
_Must_inspect_result_ _In_ ULONG Flags
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress