393 Size =
sizeof(LastBootShutdown);
404 Size =
sizeof(LastBootGood);
415 Size =
sizeof(LastBootCheckpoint);
426 Size =
sizeof(BootAttemptCount);
458 BOOLEAN localBootShutdown, localBootGood;
468 Size =
sizeof(*LastBootId);
487 Size =
sizeof(localBootShutdown);
498 *BootShutdown = localBootShutdown;
501 Size =
sizeof(localBootGood);
512 *BootGood = localBootGood;
540 SIZE_T RootLength, RootLengthWithSep;
545 ULONG OsDeviceHandle;
546 BOOLEAN LastBootGood, LastBootShutdown, LastBootCheckpoint;
548 BOOLEAN BootGood, BootShutdown;
612 TraceLoggingRegister(&TlgOslBootProviderProv);
716 LastBootShutdown =
TRUE;
717 LastBootCheckpoint =
TRUE;
734 BsdSize =
sizeof(PowerTransitionData);
737 &PowerTransitionData,
742 PowerBuffer = &PowerTransitionData;
754 if (!(LastBootGood) &&
774 if (!(LastBootCheckpoint) &&
778 *ReturnFlags |= 0x10;
797 *ReturnFlags |= 0x10;
842 EfiPrintf(
L"Delta: %lld\r\n", EndPerf - StartPerf);
845#if BL_BITLOCKER_SUPPORT
847 SymCryptRngAesUninstantiate();
885#if defined(_MSC_VER) && !defined(__clang__) && !defined(_M_ARM)
993 if (!(CpuInfo.
Edx & 0x10000))
1031 MiscMsr.
HighPart |= ~MSR_XD_ENABLE_MASK;
1068 BootParameters->ReturnArgumentsOffset);
1073 BootParameters->AppEntryOffset);
1091 if (CpuInfo.
Edx & 0x40)
1093 EfiPrintf(
L"PAE Supported, but won't be used\r\n");
#define OBJ_NAME_PATH_SEPARATOR
@ BcdOSLoaderDevice_OSDevice
@ BcdOSLoaderInteger_BootStatusPolicy
@ BcdOSLoaderBoolean_DisableElamDrivers
@ BcdOSLoaderString_SystemRoot
@ BcdOSLoaderBoolean_DisableVgaMode
@ BcdOSLoaderInteger_ForceFailure
#define BCD_IMAGE_TYPE_BOOT_APP
#define BCD_OBJECT_TYPE_APPLICATION
#define BCD_APPLICATION_TYPE_OSLOADER
@ BcdLibraryString_LoadOptionsString
@ BcdLibraryBoolean_DisableIntegrityChecks
BOOLEAN BlDeviceIsVirtualPartitionDevice(_In_ PBL_DEVICE_DESCRIPTOR InputDevice, _Outptr_ PBL_DEVICE_DESCRIPTOR *VirtualDevice)
#define BL_DEVICE_READ_ACCESS
NTSTATUS BlInitializeLibrary(_In_ PBOOT_APPLICATION_PARAMETER_BLOCK BootAppParameters, _In_ PBL_LIBRARY_PARAMETERS LibraryParameters)
VOID BlArchCpuId(_In_ ULONG Function, _In_ ULONG SubFunction, _Out_ PCPU_INFO Result)
VOID EfiPrintf(_In_ PWCHAR Format,...)
#define BL_DEVICE_WRITE_ACCESS
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)
struct _BL_RETURN_ARGUMENTS * PBL_RETURN_ARGUMENTS
struct _BL_APPLICATION_ENTRY * PBL_APPLICATION_ENTRY
NTSTATUS BlpDeviceOpen(_In_ PBL_DEVICE_DESCRIPTOR Device, _In_ ULONG Flags, _In_ ULONG Unknown, _Out_ PULONG DeviceId)
BOOLEAN BlArchIsCpuIdFunctionSupported(_In_ ULONG Function)
PBL_DEVICE_DESCRIPTOR BlpBootDevice
PBL_MM_RELOCATE_SELF_MAP BlMmRelocateSelfMap
PBL_MM_MOVE_VIRTUAL_ADDRESS_RANGE BlMmMoveVirtualAddressRange
CPU_VENDORS BlArchGetCpuVendor(VOID)
VOID BlRemoveBootOption(_In_ PBL_BCD_OPTION List, _In_ ULONG Type)
PGUID BlGetApplicationIdentifier(VOID)
FORCEINLINE VOID BlSetupDefaultParameters(_Out_ PBL_LIBRARY_PARAMETERS LibraryParameters)
ULONGLONG BlArchGetPerformanceCounter(VOID)
PBL_STATUS_ERROR_HANDLER BlpStatusErrorHandler
VOID BlDestroyLibrary(VOID)
#define BL_LIBRARY_FLAG_REINITIALIZE_ALL
#define BL_APP_ENTRY_SIGNATURE
PBL_MM_ZERO_VIRTUAL_ADDRESS_RANGE BlMmZeroVirtualAddressRange
NTSTATUS BlAppendBootOptionString(_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry, _In_ ULONG OptionId, _In_ PWCHAR OptionString)
NTSTATUS BlGetBootOptionString(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PWCHAR *Value)
BL_LOADED_APPLICATION_ENTRY BlpApplicationEntry
#define BL_LIBRARY_FLAG_ZERO_HEAP_ALLOCATIONS_ON_FREE
NTSTATUS BlMmFreeHeap(_In_ PVOID Buffer)
VOID BlStatusPrint(_In_ PCWCH Format,...)
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)
#define BL_RETURN_ARGUMENTS_VERSION
#define STATUS_NOT_IMPLEMENTED
#define NT_SUCCESS(StatCode)
static const WCHAR SystemRoot[]
#define InitializeListHead(ListHead)
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
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
PPC_QUAL void __writemsr(const unsigned long Value)
PPC_QUAL unsigned long long __readmsr()
__INTRIN_INLINE unsigned long __readcr4(void)
__INTRIN_INLINE void __writecr4(unsigned int Data)
#define RtlEqualMemory(dst, src, len)
_In_ NDIS_ERROR_CODE ErrorCode
#define MSR_XD_ENABLE_MASK
#define MSR_IA32_MISC_ENABLE
enum _RTL_BSD_ITEM_TYPE RTL_BSD_ITEM_TYPE
@ RtlBsdItemBootCheckpoint
@ RtlBsdItemBootAttemptCount
#define DBG_UNREFERENCED_LOCAL_VARIABLE(L)
_In_ ULONG _In_ ULONG Offset
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define STATUS_INVALID_PARAMETER_9
#define STATUS_REVISION_MISMATCH
PBL_DEVICE_DESCRIPTOR OslLoadDevice
ULONG OslFreeMemoryDesctiptorsListSize
VOID OslpInitializeBootStatusDataLog(VOID)
LIST_ENTRY OslFreeMemoryDesctiptorsList
OSL_BSD_ITEM_TABLE_ENTRY OslpBootStatusFields[RtlBsdItemMax]
ULONG_PTR OslMachineHiveHandle
BOOLEAN OslImcProcessingValid
NTSTATUS OslGetBootStatusData(_Out_ PBOOLEAN LastBootGood, _Out_ PBOOLEAN LastBootShutdown, _Out_ PBOOLEAN LastBootCheckpoint, _Out_ PULONG LastBootId, _Out_ PBOOLEAN BootGood, _Out_ PBOOLEAN BootShutdown)
NTSTATUS OslArchKernelSetup(_In_ ULONG Phase, _In_ PLOADER_PARAMETER_BLOCK LoaderBlock)
ULONG_PTR OslSystemHiveHandle
NTSTATUS OslExecuteTransition(VOID)
NTSTATUS NTAPI OslMain(_In_ PBOOT_APPLICATION_PARAMETER_BLOCK BootParameters)
VOID OslpSanitizeLoadOptionsString(_In_ PWCHAR OptionString, _In_ PWCHAR SanitizeString)
PLOADER_PARAMETER_BLOCK OslLoaderBlock
LIST_ENTRY OslCoreExtensionSubGroups[2]
NTSTATUS OslSetBootStatusData(_In_ BOOLEAN LastBootGood, _In_ BOOLEAN LastBootShutdown, _In_ BOOLEAN LastBootCheckpoint, _In_ ULONG UpdateIncrement, _In_ ULONG BootAttemptCount)
PRTL_BSD_DATA BsdBootStatusData
BOOLEAN OslpAdvancedOptionsRequested(VOID)
VOID OslpSanitizeStringOptions(_In_ PBL_BCD_OPTION BcdOptions)
NTSTATUS OslpRemoveInternalApplicationOptions(VOID)
GUID OslApplicationIdentifier
NTSTATUS OslArchpKernelSetupPhase0(_In_ PLOADER_PARAMETER_BLOCK LoaderBlock)
ULONG OslBootCountUpdateRequestForAbort
ULONG_PTR OslElamHiveHandle
PVOID OslMemoryDescriptorBuffer
NTSTATUS OslArchTransferToKernel(_In_ PLOADER_PARAMETER_BLOCK LoaderBlock, _In_ PVOID KernelEntrypoint)
BcdObjectType BlpSbdiCurrentApplicationType
NTSTATUS OslpCheckForcedFailure(VOID)
NTSTATUS OslBlStatusErrorHandler(_In_ ULONG ErrorCode, _In_ ULONG Parameter1, _In_ ULONG_PTR Parameter2, _In_ ULONG_PTR Parameter3, _In_ ULONG_PTR Parameter4)
BOOLEAN OslCurrentBootCheckpoint
VOID ArchRestoreProcessorFeatures(VOID)
ULONGLONG ArchXCr0BitsToClear
ULONG OslBootCountUpdateIncrement
BOOLEAN OslCurrentBootShutdown
NTSTATUS OslPrepareTarget(_Out_ PULONG ReturnFlags, _Out_ PBOOLEAN Jump)
BL_BUFFER_DESCRIPTOR OslFinalMemoryMapDescriptorsBuffer
VOID OslAbortBoot(_In_ NTSTATUS Status)
BOOLEAN OslCurrentBootSucceeded
BOOLEAN BdDebugAfterExitBootServices
NTSTATUS OslFwpKernelSetupPhase1(_In_ PLOADER_PARAMETER_BLOCK LoaderBlock)
ULONG OslBootAttemptCount
VOID OslFatalErrorEx(_In_ ULONG ErrorCode, _In_ ULONG Parameter1, _In_ ULONG_PTR Parameter2, _In_ ULONG_PTR Parameter3)
ULONG_PTR OslImcHiveHandle
NTSTATUS OslpMain(_Out_ PULONG ReturnFlags)
ULONGLONG ArchCr4BitsToClear
LIST_ENTRY OslFinalMemoryMap
ULONG OslBootAttemptMaximum
LIST_ENTRY OslLoadedFirmwareDriverList
NTSTATUS OslpReadWriteBootStatusData(_In_ BOOLEAN WriteAccess)
NTSTATUS OslpGetSetBootStatusData(_In_ BOOLEAN Read, _In_ RTL_BSD_ITEM_TYPE DataClass, _Out_ PVOID Buffer, _Inout_ PULONG Size)
VOID NTAPI OslDrawLogo(VOID)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
_CRTIMP wchar_t *__cdecl _wcsupr(_Inout_z_ wchar_t *_String)
_CRTIMP wchar_t *__cdecl wcscat(_Inout_updates_z_(_String_length_(_Dest)+_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
#define KI_USER_SHARED_DATA
#define STATUS_BUFFER_TOO_SMALL
struct BcdObjectType::@106::@108::@110 Application
ULONG HeapAllocationAttributes
ULONG MinimumAllocationCount
RTL_BSD_POWER_BUTTON_PRESS_INFO PowerButtonPressInfo
ULONG LastSuccessfulShutdownBootId
RTL_BSD_DATA_ERROR_INFO ErrorInfo
BOOLEAN LastBootSucceeded
ULONG LastReportedAbnormalShutdownBootId
RTL_BSD_DATA_POWER_TRANSITION PowerTransition
#define FIELD_OFFSET(t, f)
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define STATUS_INVALID_PARAMETER
#define STATUS_UNSUCCESSFUL
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
_Must_inspect_result_ _In_ ULONG Flags