Geoff Chappell - Software Analyst
Each BCD element is its own subkey. The name of the subkey is a representation in hexadecimal digits of a dword that the BCDEDIT help text refers to as a datatype.
The datatype is interpreted as bit fields:
Mask | Interpretation | Values |
---|---|---|
0xF0000000 | class | 1 = library 2 = application 3 = device 4 = template |
0x0F000000 | format | 1 = device 2 = string 3 = GUID 4 = GUID list 5 = integer 6 = boolean 7 = integer list |
Elements whose class is 4 are hidden in the sense that the bcdedit /enum command in the original Windows Vista does not reveal them. Starting with Windows 7, they are enumerated by this command when also given the /v switch (for verbose mode).
The following tables list the BCD elements that are yet known in any of several senses. There are several hundred of them by now.
Each BCD element is shown first by the numeric constant that represents it in binary code, i.e., where it must be correct if it’s to be recognised by the loader and properly interpreted. A second column gives either or both of the symbolic names by which the element seems to be known in source code. The third and fourth columns attend particularly to how the element is worked with through the BCDEDIT tool. A final column attempts to summarise the history, both of the element and of its programmatic support. That the latter, especially, is sometimes not straightforward is a great complication to the presentation! As always, if you are unhappy with my presentation or if you seek more detail, try getting it from Microsoft or from academics whose study of Windows is paid research.
The symbolic name in mixed case, always beginning with “Bcd”, is from the type library in BCDSRV.DLL. It is the name to use for programmatic access to the element through the Windows Management Instrumentation (WMI) interface. This symbol is highlighted yellow if it is defined in the type library from the Windows 10 BCDSRV but is omitted from the various BCD WMI Provider Enumerations that look to be Microsoft’s only surviving attempt at formal documentation. For those few elements that have been discontinued, the symbol is highlighted yellow if it is defined in the type library from a contemporaneous BCDSRV but is omitted from some similarly contemporaneous documentation such as the BCD Reference in the Windows Vista SDK dated January 2007. Tracking the history of these names for WMI programming is complicated on two counts. First is that many of the elements did not start with a corresponding WMI symbol but got one eventually, and more than a few have different WMI symbols in different versions. Second is the astonishing lack of care: these are the symbols that Microsoft passes off as its support for programming BCD elements, yet some are misleadingly named in some versions and some even evaluate to the wrong numbers!
The symbolic names that are in all capitals and start with “BCDE” are extracted from tables in BCDEDIT.EXE. No use of these names is made by BCDEDIT. Perhaps they were included in BCDEDIT’s tables of elements as an aid during development, such that their persistence in the retail release may be inadvertent (as might happen easily enough if the tables are constructed in the source code by using macros). None of these names are known to be documented.
The friendly name is the one to use with BCDEDIT. It is highlighted yellow if it is not described by any bcdedit /? command. Curiously, a few of these are described in BCDEDIT string resources that are not used for help text. Some elements have descriptions that make it to the help text in some versions but not in all. I don’t try to track which.
A BCD element can have no support, used or not, for being described by any bcdedit /? command yet still be documented somewhere. A notable class of examples is known within the BCDEDIT tool. Some elements that are not listed in and of themselves are documented indirectly through command-line switches such as /dbgsettings. A notable page of documentation online from Microsoft is BCD settings and Bitlocker. Like this page, Microsoft’s page is little more than a list—but it is by far Microsoft’s largest published list of BCD settings. It ought not to be remarkable, but Microsoft’s list does indeed look to be complete, given its stated caveats, for Windows 8.
The following apply to all object types.
Before Windows 10, all the elements that can be in all types of object are Library elements.
Constant | Symbolic Names | Friendly Name | Format or Value | Versions |
---|---|---|---|---|
0x11000001 | BcdLibraryDevice_ApplicationDevice BCDE_LIBRARY_TYPE_APPLICATION_DEVICE |
device | device | 6.0 and higher |
0x12000002 | BcdLibraryString_ApplicationPath BCDE_LIBRARY_TYPE_APPLICATION_PATH |
path | string | 6.0 and higher |
0x12000004 | BcdLibraryString_Description BCDE_LIBRARY_TYPE_DESCRIPTION |
description | string | 6.0 and higher |
0x12000005 | BcdLibraryString_PreferredLocale BCDE_LIBRARY_TYPE_PREFERRED_LOCALE |
locale | string | 6.0 and higher |
0x14000006 | BcdLibraryObjectList_InheritedObjects
BCDE_LIBRARY_TYPE_INHERIT |
inherit | GUID list | 6.0 and higher |
0x15000007 | BcdLibraryInteger_TruncatePhysicalMemory
BCDE_LIBRARY_TYPE_TRUNCATE_PHYSICAL_MEMORY |
truncatememory | integer | 6.0 and higher |
0x14000008 | BcdLibraryObjectList_RecoverySequence
BCDE_LIBRARY_TYPE_RECOVERY_SEQUENCE |
recoverysequence | GUID list | 6.0 and higher |
0x16000009 | BcdLibraryBoolean_AutoRecoveryEnabled
BCDE_LIBRARY_TYPE_AUTO_RECOVERY_ENABLED |
recoveryenabled | boolean | 6.0 and higher |
0x1700000A | BcdLibraryIntegerList_BadMemoryList
BCDE_LIBRARY_TYPE_BAD_MEMORY_LIST |
badmemorylist | integer list | 6.0 and higher |
0x1600000B | BcdLibraryBoolean_AllowBadMemoryAccess
BCDE_LIBRARY_TYPE_ALLOW_BAD_MEMORY_ACCESS |
badmemoryaccess | boolean | 6.0 and higher |
0x1500000C | BcdLibraryInteger_FirstMegabytePolicy
BCDE_LIBRARY_TYPE_FIRST_MEGABYTE_POLICY |
firstmegabytepolicy | 0 = UseNone 1 = UseAll 2 = UsePrivate |
6.0 and higher |
0x1500000D | BcdLibraryInteger_RelocatePhysicalMemory
BCDE_LIBRARY_TYPE_RELOCATE_PHYSICAL_MEMORY |
relocatephysical | integer | 6.0 SP1 and higher |
0x1500000E | BCDE_LIBRARY_TYPE_AVOID_LOW_PHYSICAL_MEMORY | avoidlowmemory | integer | 6.1 and higher |
BcdLibraryInteger_AvoidLowPhysicalMemory | 6.2 and higher | |||
0x1600000F | BCDE_LIBRARY_TYPE_TRADITIONAL_KSEG_MAPPINGS | traditionalkseg | boolean | 6.1 and higher |
BcdLibraryBoolean_TraditionalKsegMappings | 6.2 and higher | |||
0x16000010 | BcdLibraryBoolean_DebuggerEnabled BCDE_LIBRARY_TYPE_DEBUGGER_ENABLED |
bootdebug | boolean | 6.0 and higher |
0x15000011 | BcdLibraryInteger_DebuggerType
BCDE_LIBRARY_TYPE_DEBUGGER_TYPE |
debugtype | 0 = Serial 1 = 1394 2 = USB |
6.0 and higher |
3 = NET 4 = Local |
6.2 and higher | |||
0x15000012 | BcdLibraryInteger_SerialDebuggerPortAddress
BCDE_LIBRARY_TYPE_DEBUGGER_PORT_ADDRESS |
debugaddress | integer | 6.0 and higher |
0x15000013 | BcdLibraryInteger_SerialDebuggerPort
BCDE_LIBRARY_TYPE_DEBUGGER_PORT_NUMBER |
debugport | integer | 6.0 and higher |
0x15000014 | BcdLibraryInteger_SerialDebuggerBaudRate
BCDE_LIBRARY_TYPE_DEBUGGER_BAUDRATE |
baudrate | integer | 6.0 and higher |
0x15000015 | BcdLibraryInteger_1394DebuggerChannel
BCDE_LIBRARY_TYPE_DEBUGGER_1394_CHANNEL |
channel | integer | 6.0 and higher |
0x12000016 | BcdLibraryString_UsbDebuggerTargetName
BCDE_LIBRARY_TYPE_DEBUGGER_USB_TARGETNAME |
targetname | string | 6.0 and higher |
0x16000017 | BcdLibraryBoolean_DebuggerIgnoreUsermodeExceptions
BCDE_LIBRARY_TYPE_DEBUGGER_IGNORE_USERMODE_EXCEPTIONS |
noumex | boolean | 6.0 and higher |
0x15000018 | BcdLibraryInteger_DebuggerStartPolicy
BCDE_LIBRARY_TYPE_DEBUGGER_START_POLICY |
debugstart | 0 = Active 1 = AutoEnable 2 = Disable |
6.0 and higher |
0x12000019 | BCDE_LIBRARY_TYPE_DEBUGGER_BUS_PARAMETERS | busparams | string | 6.1 and higher |
BcdLibraryString_DebuggerBusParameters | 6.2 and higher | |||
0x1500001A | BcdLibraryInteger_DebuggerNetHostIP
BCDE_LIBRARY_TYPE_DEBUGGER_NET_HOST_IP |
hostip | integer | 6.2 and higher |
0x1500001B | BcdLibraryInteger_DebuggerNetPort BCDE_LIBRARY_TYPE_DEBUGGER_NET_PORT |
port | integer | 6.2 and higher |
0x1600001C | BcdLibraryBoolean_DebuggerNetDhcp BCDE_LIBRARY_TYPE_DEBUGGER_NET_DHCP |
dhcp | boolean | 6.2 and higher |
0x1200001D | BcdLibraryString_DebuggerNetKey BCDE_LIBRARY_TYPE_DEBUGGER_NET_KEY |
key | string | 6.2 and higher |
0x1600001E | BCDE_LIBRARY_TYPE_DEBUGGER_NET_VM | vm | boolean | 6.2 and higher |
0x1200001F | BCDE_LIBRARY_TYPE_DEBUGGER_NET_HOST_IPV6 | hostipv6 | string | 1809 and higher |
0x16000020 | BcdLibraryBoolean_EmsEnabled BCDE_LIBRARY_TYPE_EMS_ENABLED |
bootems | boolean | 6.0 and higher |
0x15000022 | BcdLibraryInteger_EmsPort BCDE_LIBRARY_TYPE_EMS_PORT_NUMBER |
emsport | integer | 6.0 and higher |
0x15000023 | BcdLibraryInteger_EmsBaudRate BCDE_LIBRARY_TYPE_EMS_BAUDRATE |
emsbaudrate | integer | 6.0 and higher |
0x12000030 | BcdLibraryString_LoadOptionsString BCDE_LIBRARY_TYPE_LOAD_OPTIONS_STRING |
loadoptions | string | 6.0 and higher |
0x16000031 | BcdLibraryBoolean_AttemptNonBcdStart | boolean | 6.0 to 6.1 | |
0x16000040 | BcdLibraryBoolean_DisplayAdvancedOptions
BCDE_LIBRARY_TYPE_DISPLAY_ADVANCED_OPTIONS |
advancedoptions | boolean | 6.0 and higher |
0x16000041 | BcdLibraryBoolean_DisplayOptionsEdit
BCDE_LIBRARY_TYPE_DISPLAY_OPTIONS_EDIT |
optionsedit | boolean | 6.0 and higher |
0x15000042 | BcdLibraryInteger_FVEKeyRingAddress
BCDE_LIBRARY_TYPE_FVE_KEYRING_ADDRESS |
keyringaddress | integer | 6.0 and higher |
0x11000043 | device for boot status data log | device | 6.0 and higher | |
BcdLibraryDevice_BsdLogDevice | 6.2 and higher | |||
BCDE_LIBRARY_TYPE_BSD_LOG_DEVICE | bootstatdevice | 1803 and higher | ||
0x12000044 | file path for boot status data log | string | 6.0 and higher | |
BcdLibraryString_BsdLogPath | 6.2 and higher | |||
BCDE_LIBRARY_TYPE_BSD_LOG_PATH | bootstatfilepath | 1803 and higher | ||
0x16000045 | append to boot status data log | boolean | 6.0 and higher | |
BcdLibraryBoolean_BsdPreserveLog
|
6.2 and higher | |||
BCDE_LIBRARY_TYPE_BSD_PRESERVE_LOG | preservebootstat | 10.0 and higher | ||
0x16000046 | BcdLibraryBoolean_GraphicsModeDisabled
BCDE_LIBRARY_TYPE_GRAPHICS_MODE_DISABLED |
graphicsmodedisabled | boolean | 6.0 and higher |
0x15000047 | BcdLibraryInteger_ConfigAccessPolicy
BCDE_LIBRARY_TYPE_CONFIG_ACCESS_POLICY |
configaccesspolicy | 0 = Default 1 = DisallowMmConfig |
6.0 and higher |
0x16000048 | BcdLibraryBoolean_DisableIntegrityChecks
BCDE_LIBRARY_TYPE_DISABLE_INTEGRITY_CHECKS |
nointegritychecks | boolean | 6.0 and higher |
0x16000049 | BcdLibraryBoolean_AllowPrereleaseSignatures
BCDE_LIBRARY_TYPE_ALLOW_PRERELEASE_SIGNATURES |
testsigning | boolean | 6.0 and higher |
0x1200004A | BCDE_LIBRARY_TYPE_FONT_PATH | fontpath | string | 6.0 SP1 and higher |
BcdLibraryString_FontPath | 6.2 and higher | |||
0x1500004B | BcdLibraryInteger_SiPolicy BCDE_LIBRARY_TYPE_SI_POLICY |
integrityservices | 0 = Default 1 = Enable 2 = Disable |
6.1 and higher |
0x1500004C | BcdLibraryInteger_FveBandId BCDE_LIBRARY_TYPE_FVE_BAND_ID |
volumebandid | integer | 6.2 and higher |
0x16000050 | BCDE_LIBRARY_TYPE_CONSOLE_EXTENDED_INPUT | extendedinput | boolean | 6.0 and higher |
BcdLibraryBoolean_ConsoleExtendedInput | 6.2 and higher | |||
0x15000051 | BCDE_LIBRARY_TYPE_INITIAL_CONSOLE_INPUT | initialconsoleinput | integer | 6.0 and higher |
BcdLibraryInteger_InitialConsoleInput | 6.2 and higher | |||
0x15000052 | BCDE_LIBRARY_TYPE_GRAPHICS_RESOLUTION | graphicsresolution | 0 = 1024x768 1 = 800x600 |
6.0 SP1 and higher |
2 = 1024x600 | 6.2 and higher | |||
BcdLibraryInteger_GraphicsResolution | 6.2 and higher | |||
0x16000053 | BcdLibraryBoolean_RestartOnFailure BCDE_LIBRARY_TYPE_RESTART_ON_FAILURE |
restartonfailure | boolean | 6.2 and higher |
0x16000054 | BcdLibraryBoolean_GraphicsForceHighestMode
BCDE_LIBRARY_TYPE_GRAPHICS_FORCE_HIGHEST_MODE |
highestmode | boolean | 6.2 and higher |
0x16000060 | BcdLibraryBoolean_IsolatedExecutionContext
BCDE_LIBRARY_TYPE_ISOLATED_EXECUTION_CONTEXT |
isolatedcontext | boolean | 6.2 and higher |
0x15000065 | BcdLibraryInteger_BootUxDisplayMessage
BCDE_LIBRARY_TYPE_BOOTUX_DISPLAY_MESSAGE |
displaymessage | 0 = Default 1 = Resume 2 = HyperV 3 = Recovery 4 = StartupRepair 5 = SystemImageRecovery 6 = CommandPrompt 7 = SystemRestore 8 = PushButtonReset |
6.2 and higher |
0x15000066 | BcdLibraryInteger_BootUxDisplayMessageOverride
BCDE_LIBRARY_TYPE_BOOTUX_DISPLAY_MESSAGE_OVERRIDE |
displaymessageoverride | 0 = Default 1 = Resume 2 = HyperV 3 = Recovery 4 = StartupRepair 5 = SystemImageRecovery 6 = CommandPrompt 7 = SystemRestore 8 = PushButtonReset |
6.2 and higher |
0x16000067 | BcdLibraryBoolean_BootUxLogoDisable | boolean | 6.2 and higher | |
0x16000068 | BcdLibraryBoolean_BootUxTextDisable | boolean | 6.2 and higher | |
BCDE_LIBRARY_TYPE_BOOTUX_TEXT_DISABLE | nobootuxtext | 10.0 and higher | ||
0x16000069 | BcdLibraryBoolean_BootUxProgressDisable | boolean | 6.2 and higher | |
BCDE_LIBRARY_TYPE_BOOTUX_PROGRESS_DISABLE | nobootuxprogress | 10.0 and higher | ||
0x1600006A | BcdLibraryBoolean_BootUxFadeDisable | boolean | 6.2 and higher | |
BCDE_LIBRARY_TYPE_BOOTUX_FADE_DISABLE | nobootuxfade | 10.0 and higher | ||
0x1600006B | BcdLibraryBoolean_BootUxReservePoolDebug | boolean | 6.2 and higher | |
0x1600006C | BcdLibraryBoolean_BootUxDisable BCDE_LIBRARY_TYPE_BOOTUX_DISABLE |
bootuxdisabled | boolean | 6.2 and higher |
0x1500006D | BcdLibraryInteger_BootUxFadeFrames | integer | 6.2 and higher | |
0x1600006E | BcdLibraryBoolean_BootUxDumpStats | boolean | 6.2 and higher | |
0x1600006F | BcdLibraryBoolean_BootUxShowStats | boolean | 6.2 and higher | |
0x16000071 | BcdLibraryBoolean_MultiBootSystem | boolean | 6.2 and higher | |
0x16000072 | BcdLibraryBoolean_ForceNoKeyboard
BCDE_LIBRARY_TYPE_FORCE_NO_KEYBOARD |
nokeyboard | boolean | 6.2 and higher |
0x15000073 | BcdLibraryInteger_AliasWindowsKey | integer | 6.2 and higher | |
0x16000074 | BcdLibraryBoolean_BootShutdownDisabled
BCDE_LIBRARY_TYPE_BOOT_SHUTDOWN_DISABLED |
bootshutdowndisabled | boolean | 6.2 and higher |
0x15000075 | BcdLibraryInteger_PerformanceFrequency | integer | 6.2 and higher | |
0x15000076 | BcdLibraryInteger_SecurebootRawPolicy | integer | 6.2 and higher | |
0x17000077 | BcdLibraryIntegerList_AllowedInMemorySettings
BCDE_LIBRARY_TYPE_ALLOWED_IN_MEMORY_SETTINGS |
allowedinmemorysettings | integer list | 6.2 and higher |
0x16000078 | boolean | 10.0 and higher | ||
0x15000079 | BCDE_LIBRARY_TYPE_BOOTUX_BITMAP_TRANSITION_TIME | bootuxtransitiontime | integer | 10.0 and higher |
0x1600007A | BCDE_LIBRARY_TYPE_TWO_BOOT_IMAGES | mobilegraphics | boolean | 10.0 and higher |
0x1600007B | BcdLibraryBoolean_ForceFipsCrypto
BCDE_LIBRARY_TYPE_FORCE_FIPS_CRYPTO |
forcefipscrypto | boolean | 6.2 and higher |
0x1500007D | BcdLibraryInteger_BootErrorUx
BCDE_LIBRARY_TYPE_BOOT_ERROR_UX |
booterrorux | 0 = Legacy 1 = Standard 2 = Simple |
6.3 and higher |
0x1600007E | BcdLibraryBoolean_AllowFlightSignatures
BCDE_LIBRARY_TYPE_ALLOW_FLIGHT_SIGNATURES |
flightsigning | boolean | 10.0 and higher |
0x1500007F | BcdLibraryInteger_BootMeasurementLogFormat
BCDE_LIBRARY_TYPE_BOOT_LOG_FORMAT |
measuredbootlogformat | 0 = Default 1 = Sha1 |
10.0 and higher |
0x15000080 | BCDE_LIBRARY_TYPE_DISPLAY_ROTATION | displayrotation | 0 = 0 1 = 90 2 = 180 3 = 270 |
1607 and higher |
0x15000081 | BCDE_LIBRARY_TYPE_LOG_CONTROL | logcontrol | integer | 1703 and higher |
0x16000082 | BCDE_LIBRARY_TYPE_NO_FIRMWARE_SYNC | nofirmwaresync | boolean | 1709 and higher |
0x11000083 | device | 1709 and higher | ||
0x11000084 | BCDE_LIBRARY_TYPE_WINDOWS_SYSTEM_DEVICE | windowssyspart | device | 1803 and higher |
0x16000085 | boolean | 1803 and higher | ||
0x15000086 | integer | 1809 and higher (x64 only) | ||
0x16000087 | BCDE_LIBRARY_TYPE_NUM_LOCK_ON | numlock | boolean | 1803 and higher |
0x12000088 | BcdLibraryBoolean_AdditionalCiPolicy
BCDE_LIBRARY_TYPE_ADDITIONAL_CIPOLICY |
additionalcipolicy | string | 1809 and higher |
0x15000088 | BCDE_LIBRARY_TYPE_LINEAR_ADDRESS_57_POLICY | linearaddress57 | 0 = default 1 = optout 2 = optin |
1809 and higher |
The symbol BcdLibraryBoolean_AttemptNonBcdStart is defined in BCDSRV versions before Windows 8 but its numerical datatype (0x16000031) is unknown to BCDEDIT in any version.
The elements 0x11000043, 0x12000044 and 0x16000045 were at first known only from their meaningfulness to the boot manager. Even after the type library in BCDSRV from Windows 8 introduced symbolic names for these elements, they could be worked with through BCDEDIT only as custom types, e.g., with custom:11000043 where a friendly name might otherwise be used. The BCDEDIT from Windows 10, however, gives a friendly name to 0x16000045 and the other two finally get friendly names with the 1803 release. This slow disclosure is specially remarkable because the boot status data log that is affected by these BCD options has arguably substantive forensic value when what is now supported as preservebootstat is enabled.
Interpretation by BCDEDIT of integer values for displaymessage and displaymessageoverride may be incomplete. The type library continues to 9 and 10 as if to suggest that BCDEDIT’s interpretation misses FactoryReset and FveRecovery.
The symbols BcdLibraryBoolean_BootUxLogoDisable and BcdLibraryBoolean_BootUxReservePoolDebug are defined in the BCDSRV from Windows 8 but their numerical datatypes (0x16000067 and 0x1600006B) are unknown to BCDEDIT. This was true of the three elements in between, but they get friendly names from BCDEDIT in Windows 10. Of these and others that are defined in the type library but do not have support from BCDEDIT, some are known to the loader and some not.
The elements 0x16000078, 0x11000083, 0x16000085 and 0x15000086 are known only from their meaningfulness to the boot manager.
The BCDEDIT from Windows 10 allows some application elements in all types of object.
Constant | Symbolic Names | Friendly Name | Format or Value | Versions |
---|---|---|---|---|
0x26000202 | BCDE_FFULOADER_TYPE_ONESHOTSKIP_FFU_UPDATE | skipffumode | boolean | 10.0 and higher |
0x26000203 | BCDE_FFULOADER_TYPE_FORCE_FFU | forceffumode | boolean | 10.0 and higher |
0x25000510 | BCDE_CHARGING_TYPE_BOOT_THRESHOLD | chargethreshold | integer | 10.0 and higher |
0x26000512 | BCDE_CHARGING_TYPE_OFF_MODE_CHARGING | offmodecharging | boolean | 10.0 and higher |
0x25000AAA | BCDE_GLOBAL_TYPE_BOOTFLOW | bootflow | integer | 10.0 and higher |
The type library in BCDSRV.DLL has long named some template elements that appear to be otherwise undocumented. Except that the BCDEDIT from Windows 10 adds one that it permits in any object, these template elements are unknown to BCDEDIT. They have no friendly name and early versions exempt them from enumeration by any bcdedit /enum command.
Constant | Symbolic Name | Friendly Name | Format | Versions |
---|---|---|---|---|
0x45000001 | BcdSetupInteger_DeviceType | integer | 6.0 and higher | |
0x42000002 | BcdSetupString_ApplicationRelativePath | string | 6.0 and higher | |
0x42000003 | BcdSetupString_RamdiskDeviceRelativePath | string | 6.0 and higher | |
0x46000004 | BcdSetupBoolean_OmitOsLoaderElements | boolean | 6.0 and higher | |
0x47000006 | BCDE_TEMPLATE_TYPE_ELEMENTS_TO_MIGRATE_LIST | elementstomigrate | integer list | 10.0 and higher |
0x46000010 | BcdSetupBoolean_RecoveryOs | boolean | 6.0 and higher |
Not until the type library in BCDSRV.DLL from Windows 7 does BcdSetupInteger_DeviceType actually evaluate to a datatype for an integer. All builds for Windows Vista have it as 0x41000001.
For most elements, interpretation depends on the containing object. Note especially that two elements may have the same numerical type but completely different interpretations because they are meant for use with different types of object.
The following elements are known for object types 1XX00001, 1XX00002, 2X200001 and 2X200002. The first two types can be created through BCDEDIT as {fwbootmgr} or {bootmgr}, respectively. For the last two, add the /inherit switch.
Constant | Symbolic Name | Friendly Name | Format | Versions |
---|---|---|---|---|
0x24000001 | BcdBootMgrObjectList_DisplayOrder BCDE_BOOTMGR_TYPE_DISPLAY_ORDER |
displayorder | GUID list | 6.0 and higher |
0x24000002 | BcdBootMgrObjectList_BootSequence BCDE_BOOTMGR_TYPE_BOOT_SEQUENCE |
bootsequence | GUID list | 6.0 and higher |
0x23000003 | BcdBootMgrObject_DefaultObject BCDE_BOOTMGR_TYPE_DEFAULT_OBJECT |
default | GUID | 6.0 and higher |
0x25000004 | BcdBootMgrInteger_Timeout BCDE_BOOTMGR_TYPE_TIMEOUT |
timeout | integer | 6.0 and higher |
0x26000005 | BcdBootMgrBoolean_AttemptResume BCDE_BOOTMGR_TYPE_ATTEMPT_RESUME |
resume | boolean | 6.0 and higher |
0x23000006 | BcdBootMgrObject_ResumeObject BCDE_BOOTMGR_TYPE_RESUME_OBJECT |
resumeobject | GUID | 6.0 and higher |
0x24000007 | BCDE_BOOTMGR_TYPE_STARTUP_SEQUENCE | startupsequence | GUID list | 1607 and higher |
0x24000010 | BcdBootMgrObjectList_ToolsDisplayOrder
BCDE_BOOTMGR_TYPE_TOOLS_DISPLAY_ORDER |
toolsdisplayorder | GUID list | 6.0 and higher |
0x26000020 | BCDE_BOOTMGR_TYPE_DISPLAY_BOOT_MENU | displaybootmenu | boolean | 6.0 and higher |
BcdBootMgrBoolean_DisplayBootMenu | 6.2 and higher | |||
0x26000021 | BcdBootMgrBoolean_NoErrorDisplay BCDE_BOOTMGR_TYPE_NO_ERROR_DISPLAY |
noerrordisplay | boolean | 6.0 and higher |
0x21000022 | BcdBootMgrDevice_BcdDevice BCDE_BOOTMGR_TYPE_BCD_DEVICE |
bcddevice | device | 6.0 and higher |
0x22000023 | BcdBootMgrString_BcdFilePath BCDE_BOOTMGR_TYPE_BCD_FILEPATH |
bcdfilepath | string | 6.0 and higher |
0x26000024 | BcdBootMgr_HormEnabled | boolean | 6.2 and higher | |
0x26000025 | BcdBootMgrBoolean_HiberRoot
BCDE_BOOTMGR_TYPE_HIBERBOOT |
hiberboot | boolean | 6.2 and higher |
0x22000026 | BcdBootMgrString_PasswordOverride | string | 6.2 and higher | |
0x22000027 | BcdBootMgrString_PinpassPhraseOverride | string | 6.2 and higher | |
0x26000028 | BcdBootMgrBoolean_ProcessCustomActionsFirst
BCDE_BOOTMGR_TYPE_PROCESS_CUSTOM_ACTIONS_FIRST |
processcustomactionsfirst | boolean | 6.2 and higher |
0x2600002A | boolean | 1809 and higher | ||
0x27000030 | BcdBootMgrIntegerList_CustomActionsList
BCDE_BOOTMGR_TYPE_CUSTOM_ACTIONS_LIST |
customactions | integer list | 6.0 and higher |
0x26000031 | BcdBootMgrBoolean_PersistBootSequence
BCDE_BOOTMGR_TYPE_PERSIST_BOOT_SEQUENCE |
persistbootsequence | boolean | 6.2 and higher |
0x26000032 | BCDE_BOOTMGR_TYPE_SKIP_STARTUP_SEQUENCE | skipstartupsequence | boolean | 1607 and higher |
0x22000040 | BcdBootMgrString_FveRecoveryUrl
BCDE_BOOTMGR_TYPE_FVE_RECOVERY_URL |
fverecoveryurl | string | 10.0 and higher |
0x22000041 | BcdBootMgrString_FveRecoveryMessage
BCDE_BOOTMGR_TYPE_FVE_RECOVERY_MESSAGE |
fverecoverymessage | string | 10.0 and higher |
0x26000042 | BCDE_BOOTMGR_TYPE_BOOT_FLIGHT_BOOTMGR | flightedbootmgr | boolean | 1809 and higher |
0x25000043 | FVE unlock retry count for IPv4 | integer | 1903 and higher | |
0x25000044 | FVE unlock retry count for IPv6 | integer | 1903 and higher | |
0x22000045 | FVE server address for IPv4 | string | 1903 and higher | |
0x22000046 | FVE server address for IPv6 | string | 1903 and higher | |
0x22000047 | FVE station address for IPv4 | string | 1903 and higher | |
0x22000048 | FVE station address for IPv6 | string | 1903 and higher | |
0x22000049 | FVE station address subnet mask for IPv4 | string | 1903 and higher | |
0x2200004A | FVE station address prefix for IPv6 | string | 1903 and higher | |
0x2200004B | FVE gateway for IPv4 | string | 1903 and higher | |
0x2200004C | FVE gateway for IPv6 | string | 1903 and higher | |
0x2500004D | FVE network timeout | integer | 1903 and higher | |
0x2500004E | FVE remote port for IPv4 | integer | 1903 and higher | |
0x2500004F | FVE remote port for IPv6 | integer | 1903 and higher | |
0x25000050 | FVE station port for IPv4 | integer | 1903 and higher | |
0x25000051 | FVE station port for IPv6 | integer | 1903 and higher |
Note the several WMI symbols that are defined in the BCDSRV type library for Windows 8 but which are unknown to BCDEDIT.
The symbol BcdBootMgrBoolean_HiberRoot is reproduced correctly, viz., with Root, not Boot.
The element 0x2600002A and the fifteen additions for Full Volume Encryption (FVE) in the 1903 release are presently known only from their meaningfulness to the boot manager.
The following elements are known for object types 1XX00003 and 2X200003. The first type can be created through BCDEDIT with the switch /application osloader, the second type either with the /inherit osloader switch or as the built-in {bootloadersettings} object.
Constant | Symbolic Name | Friendly Name | Format or Value | Applicable Versions |
---|---|---|---|---|
0x21000001 | BcdOSLoaderDevice_OSDevice BCDE_OSLOADER_TYPE_OS_DEVICE |
osdevice | device | 6.0 and higher |
0x22000002 | BcdOSLoaderString_SystemRoot BCDE_OSLOADER_TYPE_SYSTEM_ROOT |
systemroot | string | 6.0 and higher |
0x23000003 | BcdOSLoaderObject_AssociatedResumeObject
BCDE_OSLOADER_TYPE_ASSOCIATED_RESUME_OBJECT |
resumeobject | GUID | 6.0 and higher |
0x26000004 | BcdOSLoaderBoolean_StampDisks
BCDE_OSLOADER_TYPE_STAMP_RAW_DISKS |
stampdisks | boolean | 6.0 SP1 to 6.2 |
0x21000005 | device | 1809 and higher | ||
0x25000008 | integer | 1809 and higher | ||
0x26000010 | BcdOSLoaderBoolean_DetectKernelAndHal
BCDE_OSLOADER_TYPE_DETECT_KERNEL_AND_HAL |
detecthal | boolean | 6.0 and higher |
0x22000011 | BcdOSLoaderString_KernelPath BCDE_OSLOADER_TYPE_KERNEL_PATH |
kernel | string | 6.0 and higher |
0x22000012 | BcdOSLoaderString_HalPath BCDE_OSLOADER_TYPE_HAL_PATH |
hal | string | 6.0 and higher |
0x22000013 | BcdOSLoaderString_DbgTransportPath BCDE_OSLOADER_TYPE_DBG_TRANSPORT_PATH |
dbgtransport | string | 6.0 and higher |
0x25000020 | BcdOSLoaderInteger_NxPolicy BCDE_OSLOADER_TYPE_NX_POLICY |
nx | 0 = OptIn 1 = OptOut 2 = AlwaysOff 3 = AlwaysOn |
6.0 and higher |
0x25000021 | BcdOSLoaderInteger_PAEPolicy BCDE_OSLOADER_TYPE_PAE_POLICY |
pae | 0 = Default 1 = ForceEnable 2 = ForceDisable |
6.0 and higher |
0x26000022 | BcdOSLoaderBoolean_WinPEMode BCDE_OSLOADER_TYPE_WINPE |
winpe | boolean | 6.0 and higher |
0x26000024 | BcdOSLoaderBoolean_DisableCrashAutoReboot
BCDE_OSLOADER_TYPE_DISABLE_CRASH_AUTOREBOOT |
nocrashautoreboot | boolean | 6.0 and higher |
0x26000025 | BcdOSLoaderBoolean_UseLastGoodSettings
BCDE_OSLOADER_TYPE_LAST_GOOD_SETTINGS |
lastknowngood | boolean | 6.0 and higher |
0x26000026 | BCDE_OSLOADER_TYPE_DISABLE_INTEGRITY_CHECKS | oslnointegritychecks | boolean | 6.0 only |
BcdOSLoaderBoolean_DisableCodeIntegrityChecks | 6.0 to 6.1 | |||
0x26000027 | BCDE_OSLOADER_TYPE_ALLOW_PRERELEASE_SIGNATURES | osltestsigning | boolean | 6.0 only |
BcdOSLoaderBoolean_AllowPrereleaseSignatures | 6.0 to 6.1 | |||
0x26000030 | BcdOSLoaderBoolean_NoLowMemory BCDE_OSLOADER_TYPE_NO_LOW_MEMORY |
nolowmem | boolean | 6.0 and higher |
0x25000031 | BcdOSLoaderInteger_RemoveMemory BCDE_OSLOADER_TYPE_REMOVE_MEMORY |
removememory | integer | 6.0 and higher |
0x25000032 | BcdOSLoaderInteger_IncreaseUserVa BCDE_OSLOADER_TYPE_INCREASE_USER_VA |
increaseuserva | integer | 6.0 and higher |
0x25000033 | BcdOSLoaderInteger_PerformaceDataMemory
BCDE_OSLOADER_TYPE_PERFORMANCE_DATA_MEMORY |
perfmem | integer | 6.0 and higher |
0x26000040 | BcdOSLoaderBoolean_UseVgaDriver BCDE_OSLOADER_TYPE_USE_VGA_DRIVER |
vga | boolean | 6.0 and higher |
0x26000041 | BcdOSLoaderBoolean_DisableBootDisplay
BCDE_OSLOADER_TYPE_DISABLE_BOOT_DISPLAY |
quietboot | boolean | 6.0 and higher |
0x26000042 | BcdOSLoaderBoolean_DisableVesaBios BCDE_OSLOADER_TYPE_DISABLE_VESA_BIOS |
novesa | boolean | 6.0 and higher |
0x26000043 | BcdOSLoaderBoolean_DisableVgaMode BCDE_OSLOADER_TYPE_DISABLE_VGA_MODE |
novga | boolean | 6.2 and higher |
0x25000050 | BcdOSLoaderInteger_ClusterModeAddressing
BCDE_OSLOADER_TYPE_CLUSTERMODE_ADDRESSING |
clustermodeaddressing | integer | 6.0 and higher |
0x26000051 | BcdOSLoaderBoolean_UsePhysicalDestination
BCDE_OSLOADER_TYPE_USE_PHYSICAL_DESTINATION |
usephysicaldestination | boolean | 6.0 and higher |
0x25000052 | BcdOSLoaderInteger_RestrictApicCluster
BCDE_OSLOADER_TYPE_RESTRICT_APIC_CLUSTER |
restrictapiccluster | integer | 6.0 and higher |
0x22000053 | BCDE_OSLOADER_TYPE_EVSTORE | evstore | string | 6.1 and higher |
BcdOSLoaderString_OSLoaderTypeEVStore | 6.1 SP1 and higher | |||
0x26000054 | BcdOSLoaderBoolean_UseLegacyApicMode
BCDE_OSLOADER_TYPE_USE_LEGACY_APIC_MODE |
uselegacyapicmode | boolean | 6.1 and higher |
0x25000055 | BcdOSLoaderInteger_X2ApicPolicy BCDE_OSLOADER_TYPE_X2APIC_POLICY |
x2apicpolicy | 0 = Default 1 = Disable 2 = Enable |
6.1 SP1 and higher |
0x26000060 | BcdOSLoaderBoolean_UseBootProcessorOnly
BCDE_OSLOADER_TYPE_BOOT_PROCESSOR_ONLY |
onecpu | boolean | 6.0 and higher |
0x25000061 | BcdOSLoaderInteger_NumberOfProcessors
BCDE_OSLOADER_TYPE_NUMBER_OF_PROCESSORS |
numproc | integer | 6.0 and higher |
0x26000062 | BcdOSLoaderBoolean_ForceMaximumProcessors
BCDE_OSLOADER_TYPE_MAXIMUM_PROCESSORS |
maxproc | boolean | 6.0 and higher |
0x25000063 | BcdOSLoaderBoolean_ProcessorConfigurationFlags
BCDE_OSLOADER_TYPE_PROCESSOR_CONFIGURATION_FLAGS |
configflags | integer | 6.0 and higher |
0x26000064 | BcdOSLoaderBoolean_MaximizeGroupsCreated
BCDE_OSLOADER_TYPE_MAXIMIZE_GROUPS_CREATED |
maxgroup | boolean | 6.1 and higher |
0x26000065 | BcdOSLoaderBoolean_ForceGroupAwareness
BCDE_OSLOADER_TYPE_FORCE_GROUP_AWARENESS |
groupaware | boolean | 6.1 and higher |
0x25000066 | BCDE_OSLOADER_TYPE_GROUP_SIZE | groupsize | integer | 6.1 and higher |
BcdOSLoaderBoolean_GroupSize | 6.1 only | |||
BcdOSLoaderInteger_GroupSize | 6.2 and higher | |||
0x26000070 | BCDE_OSLOADER_TYPE_USE_FIRMWARE_PCI_SETTINGS | usefirmwarepcisettings | boolean | 6.0 and higher |
BcdOSLoaderInteger_UseFirmwarePciSettings | 6.0 to 6.1 | |||
BcdOSLoaderBoolean_UseFirmwarePciSettings | 6.2 and higher | |||
0x25000071 | BCDE_OSLOADER_TYPE_MSI_POLICY | msi | 0 = Default 1 = ForceDisable |
6.0 and higher |
BcdOSLoaderInteger_MsiPolicy | 6.2 and higher | |||
0x25000072 | BCDE_OSLOADER_TYPE_PCI_EXPRESS_POLICY | pciexpress | 0 = Default 1 = ForceDisable |
6.0 and higher |
BcdOSLoaderInteger_PciExpressPolicy | 6.2 and higher | |||
0x25000080 | BcdOSLoaderInteger_SafeBoot BCDE_OSLOADER_TYPE_SAFEBOOT |
safeboot | 0 = Minimal 1 = Network 2 = DsRepair |
6.0 and higher |
0x26000081 | BcdOSLoaderBoolean_SafeBootAlternateShell
BCDE_OSLOADER_TYPE_SAFEBOOT_ALTERNATE_SHELL |
safebootalternateshell | boolean | 6.0 and higher |
0x26000090 | BcdOSLoaderBoolean_BootLogInitialization
BCDE_OSLOADER_TYPE_LOG_INITIALIZATION |
bootlog | boolean | 6.0 and higher |
0x26000091 | BcdOSLoaderBoolean_VerboseObjectLoadMode
BCDE_OSLOADER_TYPE_SOS |
sos | boolean | 6.0 and higher |
0x260000A0 | BcdOSLoaderBoolean_KernelDebuggerEnabled
BCDE_OSLOADER_TYPE_KERNEL_DEBUGGER_ENABLED |
debug | boolean | 6.0 and higher |
0x260000A1 | BcdOSLoaderBoolean_DebuggerHalBreakpoint
BCDE_OSLOADER_TYPE_DEBUGGER_HAL_BREAKPOINT |
halbreakpoint | boolean | 6.0 and higher |
0x260000A2 | BcdOSLoaderBoolean_UsePlatformClock
BCDE_OSLOADER_TYPE_USE_PLATFORM_CLOCK |
useplatformclock | boolean | 6.1 and higher |
0x260000A3 | BcdOSLoaderBoolean_ForceLegacyPlatform
BCDE_OSLOADER_TYPE_FORCE_LEGACY_PLATFORM |
forcelegacyplatform | boolean | 6.2 and higher |
0x260000A4 | BcdOSLoaderBoolean_UsePlatformTick
BCDE_OSLOADER_TYPE_USE_PLATFORM_TICK |
useplatformtick | boolean | 6.2 and higher |
0x260000A5 | BcdOSLoaderBoolean_DisableDynamicTick
BCDE_OSLOADER_TYPE_DISABLE_DYNAMIC_TICK |
disabledynamictick | boolean | 6.2 and higher |
0x250000A6 | BcdOSLoaderInteger_TscSyncPolicy BCDE_OSLOADER_TYPE_TSC_SYNC_POLICY |
tscsyncpolicy | 0 = Default 1 = Legacy 2 = Enhanced |
6.2 and higher |
0x260000B0 | BcdOSLoaderBoolean_EmsEnabled BCDE_OSLOADER_TYPE_KERNEL_EMS_ENABLED |
ems | boolean | 6.0 and higher |
0x250000C0 | force fatal error during loader initialisation | integer | 6.0 and higher | |
BcdOSLoaderInteger_ForceFailure | 6.2 and higher | |||
0x250000C1 | BcdOSLoaderInteger_DriverLoadFailurePolicy
BCDE_OSLOADER_TYPE_DRIVER_LOAD_FAILURE_POLICY |
driverloadfailurepolicy | 0 = Fatal 1 = UseErrorControl |
6.0 and higher |
0x250000C2 | BcdOSLoaderInteger_BootMenuPolicy BCDE_OSLOADER_TYPE_BOOT_MENU_POLICY |
bootmenupolicy | 0 = Legacy 1 = Standard |
6.2 and higher |
0x260000C3 | BcdOSLoaderBoolean_AdvancedOptionsOneTime
BCDE_OSLOADER_TYPE_ADVANCED_OPTIONS_ONE_TIME |
onetimeadvancedoptions | boolean | 6.2 and higher |
0x260000C4 | BcdOSLoaderBoolean_EditOptionsOneTime
BCDE_OSLOADER_TYPE_OPTIONS_EDIT_ONE_TIME |
onetimeoptionsedit | boolean | 6.2 and higher |
0x250000E0 | BcdOSLoaderInteger_BootStatusPolicy
BCDE_OSLOADER_TYPE_BOOT_STATUS_POLICY |
bootstatuspolicy | 0 = DisplayAllFailures 1 = IgnoreAllFailures 2 = IgnoreShutdownFailures 3 = IgnoreBootFailures |
6.0 and higher |
4 = IgnoreCheckpointFailures 5 = DisplayShutdownFailures 6 = DisplayBootFailures 7 = DisplayCheckpointFailures |
6.2 and higher | |||
8 = AlwaysDisplayStartupFailures | 1809 and higher | |||
0x260000E1 | BcdOSLoaderBoolean_DisableElamDrivers
BCDE_OSLOADER_TYPE_DISABLE_ELAM_DRIVERS |
disableelamdrivers | boolean | 6.2 and higher |
0x250000F0 | BcdOSLoaderInteger_HypervisorLaunchType
BCDE_OSLOADER_TYPE_HYPERVISOR_LAUNCH_TYPE |
hypervisorlaunchtype | 0 = Off 1 = Auto |
6.0 SP1 and higher |
0x220000F1 | BcdOSLoaderString_HypervisorPath
BCDE_OSLOADER_TYPE_HYPERVISOR_PATH |
hypervisorpath | string | 6.0 SP1 to 6.1 |
0x260000F2 | BcdOSLoaderBoolean_HypervisorDebuggerEnabled
BCDE_OSLOADER_TYPE_HYPERVISOR_DEBUGGER_ENABLED |
hypervisordebug | boolean | 6.0 SP1 and higher |
0x250000F3 | BcdOSLoaderInteger_HypervisorDebuggerType
BCDE_OSLOADER_TYPE_HYPERVISOR_DEBUGGER_TYPE |
hypervisordebugtype | 0 = Serial 1 = 1394 |
6.0 SP1 and higher |
2 = None 3 = Net |
6.2 and higher | |||
0x250000F4 | BcdOSLoaderInteger_HypervisorDebuggerPortNumber
BCDE_OSLOADER_TYPE_HYPERVISOR_DEBUGGER_PORT_NUMBER |
hypervisordebugport | integer | 6.0 SP1 and higher |
0x250000F5 | BcdOSLoaderInteger_HypervisorDebuggerBaudrate
BCDE_OSLOADER_TYPE_HYPERVISOR_DEBUGGER_BAUDRATE |
hypervisorbaudrate | integer | 6.0 SP1 and higher |
0x250000F6 | BcdOSLoaderInteger_HypervisorDebugger1394Channel
BCDE_OSLOADER_TYPE_HYPERVISOR_DEBUGGER_1394_CHANNEL |
hypervisorchannel | integer | 6.0 SP1 and higher |
0x250000F7 | BcdOsLoaderInteger_BootUxPolicy | integer | 6.1 and higher | |
BCDE_OSLOADER_TYPE_BOOTUX_POLICY | bootux | 0 = Disabled 1 = Basic 2 = Standard |
10.0 and higher | |
0x260000F8 | BCDE_OSLOADER_TYPE_HYPERVISOR_SLAT_DISABLED | hypervisordisableslat | boolean | 6.1 and higher |
BcdOSLoaderInteger_HypervisorSlatDisabled | 6.1 only | |||
BcdOsLoaderBoolean_HypervisorSlatDisabled | 6.2 and higher | |||
0x220000F9 | BcdOSLoaderString_HypervisorDebuggerBusParams
BCDE_OSLOADER_TYPE_HYPERVISOR_DEBUGGER_BUSPARAMS |
hypervisorbusparams | string | 6.2 and higher |
0x250000FA | BcdOSLoaderInteger_HypervisorNumProc
BCDE_OSLOADER_TYPE_HYPERVISOR_NUM_PROC |
hypervisornumproc | integer | 6.2 and higher |
0x250000FB | BcdOSLoaderInteger_HypervisorRootProcPerNode
BCDE_OSLOADER_TYPE_HYPERVISOR_ROOT_PROC_PER_NODE |
hypervisorrootprocpernode | integer | 6.2 and higher |
0x260000FC | BCDE_OSLOADER_TYPE_HYPERVISOR_USE_LARGE_VTLB |
hypervisoruselargevtlb | boolean | 6.1 SP1 and higher |
BcdOSLoaderInteger_HypervisorUseLargeVTlb | 6.1 SP1 only | |||
BcdOSLoaderBoolean_HypervisorUseLargeVTlb | 6.2 and higher | |||
0x250000FD | BcdOSLoaderInteger_HypervisorDebuggerNetHostIp
BCDE_OSLOADER_TYPE_HYPERVISOR_DEBUGGER_NET_HOST_IP |
hypervisorhostip | integer | 6.2 and higher |
0x250000FE | BcdOSLoaderInteger_HypervisorDebuggerNetHostPort
BCDE_OSLOADER_TYPE_HYPERVISOR_DEBUGGER_NET_HOST_PORT |
hypervisorhostport | integer | 6.2 and higher |
0x250000FF | BcdOSLoaderInteger_HypervisorDebuggerPages | integer | 6.2 and higher | |
BCDE_OSLOADER_TYPE_HYPERVISOR_DEBUGGER_PAGES | hypervisordebugpages | 1703 and higher | ||
0x25000100 | BcdOSLoaderInteger_TpmBootEntropyPolicy
BCDE_OSLOADER_TYPE_TPM_BOOT_ENTROPY_POLICY |
tpmbootentropy | 0 = Default 1 = ForceDisable 2 = ForceEnable |
6.1 and higher |
0x22000110 | BcdOSLoaderString_HypervisorDebuggerNetKey
BCDE_OSLOADER_TYPE_HYPERVISOR_DEBUGGER_NET_KEY |
hypervisorusekey | string | 6.2 and higher |
0x22000112 | BcdOSLoaderString_HypervisorProductSkuType | string | 6.2 and higher | |
0x25000113 | BcdOSLoaderInteger_HypervisorRootProc
BCDE_OSLOADER_TYPE_HYPERVISOR_ROOT_PROC |
hypervisorrootproc | integer | 6.2 and higher |
0x26000114 | BcdOSLoaderBoolean_HypervisorDebuggerNetDhcp
BCDE_OSLOADER_TYPE_HYPERVISOR_DEBUGGER_NET_DHCP |
hypervisordhcp | boolean | 6.2 and higher |
0x25000115 | BcdOSLoaderInteger_HypervisorIommuPolicy
BCDE_OSLOADER_TYPE_HYPERVISOR_IOMMU_POLICY |
hypervisoriommupolicy | 0 = Default 1 = Enable 2 = Disable |
6.2 and higher |
0x26000116 | BcdOSLoaderBoolean_HypervisorUseVApic
BCDE_OSLOADER_TYPE_HYPERVISOR_USE_VAPIC |
hypervisorusevapic | boolean | 6.2 and higher |
0x22000117 | BcdOSLoaderString_HypervisorLoadOptions
BCDE_OSLOADER_TYPE_HYPERVISOR_LOAD_OPTIONS |
hypervisorloadoptions | string | 6.3 and higher |
0x25000118 | BCDE_OSLOADER_TYPE_HYPERVISOR_MSR_FILTER_POLICY | hypervisormsrfilterpolicy | 0 = Disable 1 = Enable |
10.0 and higher |
0x25000119 | BCDE_OSLOADER_TYPE_HYPERVISOR_MMIO_NX_POLICY | hypervisormmionxpolicy | 0 = Disable 1 = Enable |
10.0 and higher |
0x2500011A | BCDE_OSLOADER_TYPE_HYPERVISOR_SCHEDULER_TYPE | hypervisorschedulertype | 0 = Classic 1 = Core 2 = Root |
1803 and higher |
0x2200011B | BCDE_OSLOADER_TYPE_HYPERVISOR_ROOT_PROC_NUMA_NODES | hypervisorrootprocnumanodes | 1809 and higher | |
0x2500011C | BCDE_OSLOADER_TYPE_HYPERVISOR_PERFMON | hypervisorperfmon | 0 = System 1 = Hypervisor |
1809 and higher |
0x2500011D | BCDE_OSLOADER_TYPE_HYPERVISOR_ROOT_PROC_PER_CORE | hypervisorrootprocpercore | 1809 and higher | |
0x2200011E | BCDE_OSLOADER_TYPE_HYPERVISOR_ROOT_PROC_NUMA_NODE_LPS | hypervisorrootprocnumanodelps | 2004 and higher | |
0x25000120 | BCDE_OSLOADER_TYPE_XSAVEPOLICY | xsavepolicy | integer | 6.1 and higher |
BcdOSLoaderInteger_XSavePolicy | 6.2 and higher | |||
0x25000121 | BCDE_OSLOADER_TYPE_XSAVEADDFEATURE0 | xsaveaddfeature0 | integer | 6.1 and higher |
BcdOSLoaderInteger_XSaveAddFeature0 | 6.2 and higher | |||
0x25000122 | BCDE_OSLOADER_TYPE_XSAVEADDFEATURE1 | xsaveaddfeature1 | integer | 6.1 and higher |
BcdOSLoaderInteger_XSaveAddFeature1 | 6.2 and higher | |||
0x25000123 | BCDE_OSLOADER_TYPE_XSAVEADDFEATURE2 | xsaveaddfeature2 | integer | 6.1 and higher |
BcdOSLoaderInteger_XSaveAddFeature2 | 6.2 and higher | |||
0x25000124 | BCDE_OSLOADER_TYPE_XSAVEADDFEATURE3 | xsaveaddfeature3 | integer | 6.1 and higher |
BcdOSLoaderInteger_XSaveAddFeature3 | 6.2 and higher | |||
0x25000125 | BCDE_OSLOADER_TYPE_XSAVEADDFEATURE4 | xsaveaddfeature4 | integer | 6.1 and higher |
BcdOSLoaderInteger_XSaveAddFeature4 | 6.2 and higher | |||
0x25000126 | BCDE_OSLOADER_TYPE_XSAVEADDFEATURE5 | xsaveaddfeature5 | integer | 6.1 and higher |
BcdOSLoaderInteger_XSaveAddFeature5 | 6.2 and higher | |||
0x25000127 | BCDE_OSLOADER_TYPE_XSAVEADDFEATURE6 | xsaveaddfeature6 | integer | 6.1 and higher |
BcdOSLoaderInteger_XSaveAddFeature6 | 6.2 and higher | |||
0x25000128 | BCDE_OSLOADER_TYPE_XSAVEADDFEATURE7 | xsaveaddfeature7 | integer | 6.1 and higher |
BcdOSLoaderInteger_XSaveAddFeature7 | 6.2 and higher | |||
0x25000129 | BCDE_OSLOADER_TYPE_XSAVEREMOVEFEATURE | xsaveremovefeature | integer | 6.1 and higher |
BcdOSLoaderInteger_XSaveRemoveFeature | 6.2 and higher | |||
0x2500012A | BCDE_OSLOADER_TYPE_XSAVEPROCESSORSMASK | xsaveprocessorsmask | integer | 6.1 and higher |
BcdOSLoaderInteger_XSaveProcessorsMask | 6.2 and higher | |||
0x2500012B | BCDE_OSLOADER_TYPE_XSAVEDISABLE | xsavedisable | integer | 6.1 and higher |
BcdOSLoaderInteger_XSaveDisable | 6.2 and higher | |||
0x2500012C | BCDE_OSLOADER_TYPE_KERNEL_DEBUGGER_TYPE | kerneldebugtype | 0 = Serial 1 = 1394 2 = USB 3 = NET |
6.3 and higher |
0x2200012D | BCDE_OSLOADER_TYPE_KERNEL_DEBUGGER_BUS_PARAMETERS | kernelbusparams | string | 6.3 and higher |
0x2500012E | BCDE_OSLOADER_TYPE_KERNEL_DEBUGGER_PORT_ADDRESS | kerneldebugaddress | integer | 6.3 and higher |
0x2500012F | BCDE_OSLOADER_TYPE_KERNEL_DEBUGGER_PORT_NUMBER | kerneldebugport | integer | 6.3 and higher |
0x25000130 | BCDE_OSLOADER_TYPE_FVE_CLAIMED_DEVICE_LOCK_COUNTER | claimedtpmcounter | integer | 6.2 and higher |
0x25000131 | BCDE_OSLOADER_TYPE_KERNEL_DEBUGGER_1394_CHANNEL | kernelchannel | integer | 6.3 and higher |
0x22000132 | BCDE_OSLOADER_TYPE_KERNEL_DEBUGGER_USB_TARGETNAME | kerneltargetname | string | 6.3 and higher |
0x25000133 | BCDE_OSLOADER_TYPE_KERNEL_DEBUGGER_NET_HOST_IP | kernelhostip | integer | 6.3 and higher |
0x25000134 | BCDE_OSLOADER_TYPE_KERNEL_DEBUGGER_NET_HOST_PORT | kernelport | integer | 6.3 and higher |
0x26000135 | BCDE_OSLOADER_TYPE_KERNEL_DEBUGGER_NET_DHCP | kerneldhcp | boolean | 6.3 and higher |
0x22000136 | BCDE_OSLOADER_TYPE_KERNEL_DEBUGGER_NET_KEY | kernelkey | string | 6.3 and higher |
0x22000137 | BcdOSLoaderString_IMCHiveName
BCDE_OSLOADER_TYPE_IMC_HIVE_NAME |
imchivename | string | 6.3 and higher |
0x21000138 | BcdOSLoaderDevice_IMCDevice
BCDE_OSLOADER_TYPE_IMC_DEVICE |
imcdevice | device | 6.3 and higher |
0x25000139 | BCDE_OSLOADER_TYPE_KERNEL_DEBUGGER_BAUDRATE | kernelbaudrate | integer | 6.3 and higher |
0x22000140 | BCDE_OSLOADER_TYPE_MANUFACTURING_MODE | mfgmode | string | 10.0 and higher |
0x26000141 | BCDE_OSLOADER_TYPE_EVENT_LOGGING_ENABLED | event | boolean | 10.0 and higher |
0x25000142 | BcdOSLoaderInteger_VsmLaunchType
BCDE_OSLOADER_TYPE_VSM_LAUNCH_TYPE |
vsmlaunchtype | 0 = Off 1 = Auto |
10.0 and higher |
0x25000144 | BCDE_OSLOADER_TYPE_HYPERVISOR_ENFORCED_CODE_INTEGRITY | hypervisorenforcedcodeintegrity | 0 = Disable 1 = Enable 2 = Strict |
10.0 and higher |
0x26000145 | BCDE_OSLOADER_TYPE_DTRACE_ENABLED | dtrace | 1809 and higher | |
0x21000150 | BCDE_OSLOADER_TYPE_SYSTEM_DATA_DEVICE | systemdatadevice | device | 10.0 and higher |
0x21000151 | BCDE_OSLOADER_TYPE_OS_ARC_DEVICE | osarcdevice | device | 1511 and higher |
0x21000152 | device | 1607 and higher | ||
0x21000153 | BCDE_OSLOADER_TYPE_OS_DATA_DEVICE | osdatadevice | device | 1803 and higher |
0x21000154 | BCDE_OSLOADER_TYPE_BSP_DEVICE | bspdevice | device | 1803 and higher |
0x21000155 | BCDE_OSLOADER_TYPE_BSP_FILEPATH | bspfilepath | string | 1803 and higher |
0x22000156 | BCDE_OSLOADER_TYPE_KERNEL_DEBUGGER_NET_HOST_IPV6 | kernelhostipv6 | 1809 and higher | |
0x22000161 | BCDE_OSLOADER_TYPE_HYPERVISOR_DEBUGGER_NET_HOST_IPV6 | hypervisorhostipv6 | 1809 and higher |
The mis-spelling of BcdOSLoaderInteger_PerformaceDataMemory is Microsoft’s.
The WMI symbols for configflags and groupsize are correctly reproduced: their names suggest boolean types but the elements actually are integers. Conversely, the WMI constants for usefirmwarepcisettings, hypervisordisableslat and hypervisoruselargevtlb suggest integers for types that actually are boolean. Does nobody take care? Does nobody ever check? The type library for Windows 7 shows that someone does check, just not well. Where the WMI symbol for usefirmwarepcisettings had been misnamed, someone instead “corrected” the numerical definition, to 0x25000070, which then got corrected for Windows 8—along with changes of names for four but not all five. Somewhere at Microsoft are managers who are genuinely mystified that some programmers in the big wide world don’t follow Microsoft’s interfaces but instead go their own way with that they think they observe and deduce: those managers are either overworked or overpaid.
Though evstore was introduced for Windows 7, it did not get a WMI symbol until the first service pack. Perhaps the reason is that its spot at index 0x53 was taken by the BcdOSLoaderBoolean_UseLegacyApicMode which had been defined incorrectly as 0x26000053 instead of 0x26000054.
The BcdOSLoaderInteger_MsiPolicy symbol is documented in the Windows Vista SDK even though the BCDSRV type library does not define it (the documentation and implementation presumably having got out of sync).
The element 0x250000C0 seems not to be documented anywhere. It is known only from its meaningfulness to the Windows loader, which expects an integer value between 0 and 3 to select from different reasons that can be presented in the user interface when simulating an initialisation failure. Because the element has no friendly name it can be worked with through BCDEDIT only as custom:250000C0 where a friendly name might otherwise be used. Curiously, versions of BCDEDIT up to and including Windows 8 have suitable names 0 = Load, 1 = Hive, 2 = Acpi and 3 = General for the permitted values, and an array of pointers to those names, but no reference to the array. Then, just as these all were removed from BCDEDIT, the element was given a WMI symbol for programmatic access.
The element 0x21000152 is also known only from the Windows loader. It can be worked with through BCDEDIT only as custom:21000152. It applies only when the EFI Configuration Table has a capsule dump for the loader to save to the paging file. If the loader cannot access the usual pagefile.sys, it falls back to tmpgfile.sys on whatever device is specified by the 0x21000152 element.
The following elements are known for object types 1XX00004 and 2X200004. The first type can be created through BCDEDIT with the switch /application resume, the second type either with the /inherit resume switch or as the built-in {resumeloadersettings} object.
Constant | Symbolic Name | Friendly Name | Format | Versions |
---|---|---|---|---|
0x21000001 | BcdResumeDevice_HiberFileDevice
BCDE_RESUME_LOADER_TYPE_HIBERFILE_DEVICE |
filedevice | device | 6.0 and higher |
0x22000002 | BcdResumeString_HiberFilePath
BCDE_RESUME_LOADER_TYPE_HIBERFILE_PATH |
filepath | string | 6.0 and higher |
0x26000003 | BcdResumeBoolean_UseCustomSettings BCDE_RESUME_LOADER_TYPE_USE_CUSTOM_SETTINGS |
customsettings | boolean | 6.0 and higher |
0x26000004 | BcdResumeBoolean_x86PaeMode
BCDE_RESUME_LOADER_TYPE_X86_PAE_MODE |
pae | boolean | 6.0 and higher |
0x21000005 | BcdResumeDevice_AssociatedOsDevice BCDE_RESUME_LOADER_TYPE_ASSOCIATED_OS_DEVICE |
associatedosdevice | device | 6.0 and higher |
0x26000006 | BCDE_RESUME_LOADER_TYPE_DEBUG_OPTION_ENABLED | debugoptionenabled | boolean | 6.0 and higher |
BcdResumeBoolean_DebugOptionEnabled | 6.2 and higher | |||
0x25000007 | BCDE_RESUME_LOADER_TYPE_BOOTUX_POLICY | bootux | 0 = Disabled 1 = Basic 2 = Standard |
6.1 and higher |
BcdResumeInteger_BootUxPolicy | 6.2 and higher | |||
0x25000008 | BcdResumeInteger_BootMenuPolicy BCDE_RESUME_LOADER_TYPE_BOOT_MENU_POLICY |
bootmenupolicy | 0 = Legacy 1 = Standard |
6.2 and higher |
0x26000024 | BcdResumeBoolean_HormEnabled | 6.2 and higher |
Where the Windows Vista BCDEDIT lists the pae option among the “entries for the resume loader”, it erroneously describes the option as taking integer values, specifically those of the OSLOADER element to which BCDEDIT gives the same friendly name.
The following elements are known for object types 1XX00005 and 2X200005. The first type can be created through BCDEDIT as the built-in {memdiag} object. For the second, use the /inherit memdiag switch.
Constant | Symbolic Name | Friendly Name | Format or Value | Applicable Versions |
---|---|---|---|---|
0x25000001 | BcdMemDiagInteger_PassCount BCDE_MEMTEST_TYPE_PASS_COUNT |
passcount | integer | 6.0 and higher |
0x25000002 | BcdMemDiagInteger_TestMix
BCDE_MEMTEST_TYPE_TESTMIX |
testmix | 0 = Basic 1 = Extended |
6.0 and higher |
0x25000003 | BcdMemDiagInteger_FailureCount BCDE_MEMTEST_TYPE_FAILURE_COUNT |
failurecount | integer | 6.0 to 6.1 |
0x26000003 | BcdMemDiagBoolean_CacheEnabled BCDE_MEMTEST_TYPE_CACHE_ENABLE |
cacheenable | boolean | 6.2 and higher |
0x25000004 | BcdMemDiagInteger_TestToFail
BCDE_MEMTEST_TYPE_TEST_TO_FAIL |
testtofail | 0 = Stride 1 = Mats 2 = InverseCoupling 3 = RandomPattern 4 = Checkerboard |
6.0 to 6.1 |
0x26000004 | BcdMemDiagBoolean_FailuresEnabled
BCDE_MEMTEST_TYPE_FAILURES_ENABLED |
failuresenabled | boolean | 6.2 and higher |
0x26000005 | BCDE_MEMTEST_TYPE_CACHE_ENABLE | cacheenable | boolean | 6.1 only |
0x25000005 | BcdMemDiagInteger_StrideFailureCount
BCDE_MEMTEST_TYPE_STRIDE_FAILURE_COUNT |
stridefailcount | integer | 6.2 and higher |
0x25000006 | BcdMemDiagInteger_InvcFailureCount
BCDE_MEMTEST_TYPE_INVC_FAILURE_COUNT |
invcfailcount | integer | 6.2 and higher |
0x25000007 | BcdMemDiagInteger_MatsFailureCount
BCDE_MEMTEST_TYPE_MATS_FAILURE_COUNT |
matsfailcount | integer | 6.2 and higher |
0x25000008 | BcdMemDiagInteger_RandFailureCount
BCDE_MEMTEST_TYPE_RAND_FAILURE_COUNT |
randfailcount | integer | 6.2 and higher |
0x25000009 | BcdMemDiagInteger_ChckrFailureCount
BCDE_MEMTEST_TYPE_CHCKR_FAILURE_COUNT |
chckrfailcount | integer | 6.2 and higher |
The reworking in Windows 8 so that the various tests each have their own counts of failure produces the first case of an element being redefined numerically. Deletion of 0x25000003 and 0x25000004 let cacheenable slip from 0x26000005 to 0x26000003 and only then were new elements added.
The following elements are known for object types 1XX00006, 1XX00007, 2X200006 and 2X200007. The first type can be created through BCDEDIT as either {legacy} or {ntldr}. The second cannot be created with BCDEDIT. For the last two, use the /inherit ntldr and /inherit setupldr switches, respectively.
Constant | Symbolic Name | Friendly Name | Format | Versions |
---|---|---|---|---|
0x22000001 | BCDE_LEGACY_LOADER_TYPE_BPB_STRING | bpbstring | string | 6.0 and higher |
The following elements are known for object types 1XX00009 and 2X200009. These types can be created through BCDEDIT with the /application startup and /inherit startup switches, respectively.
Constant | Symbolic Name | Friendly Name | Format | Versions |
---|---|---|---|---|
0x26000001 | BCDE_STARTUP_TYPE_PXE_SOFT_REBOOT | pxesoftreboot | boolean | 6.0 and higher |
0x22000002 | BCDE_STARTUP_TYPE_PXE_APPLICATION_NAME | applicationname | string | 6.0 and higher |
The following elements are known for object types 1XX0000A and 2X20000A. The first type can be created through BCDEDIT with the /create /application bootapp switch. The second cannot be created with BCDEDIT.
Constant | Symbolic Name | Friendly Name | Format | Versions |
---|---|---|---|---|
0x26000145 | BCDE_MOBILESTARTUP_TYPE_ENABLE_BOOT_DEBUG_POLICY | enablebootdebugpolicy | boolean | 1607 and higher |
0x26000146 | BCDE_MOBILESTARTUP_TYPE_ENABLE_BOOT_ORDER_CLEAN | enablebootorderclean | boolean | 1607 and higher |
0x26000147 | BCDE_MOBILESTARTUP_TYPE_ENABLE_DEVICE_ID | enabledeviceid | boolean | 1607 and higher |
0x26000148 | BCDE_MOBILESTARTUP_TYPE_ENABLE_FFU_LOADER | enableffuloader | boolean | 1607 and higher |
0x26000149 | BCDE_MOBILESTARTUP_TYPE_ENABLE_IU_LOADER | enableiuloader | boolean | 1607 and higher |
0x2600014A | BCDE_MOBILESTARTUP_TYPE_ENABLE_MASS_STORAGE | enablemassstorage | boolean | 1607 and higher |
0x2600014B | BCDE_MOBILESTARTUP_TYPE_ENABLE_RPMB_PROVISIONING | enablerpmbprovisioning | boolean | 1607 and higher |
0x2600014C | BCDE_MOBILESTARTUP_TYPE_ENABLE_SECURE_BOOT_POLICY | enablesecurebootpolicy | boolean | 1607 and higher |
0x2600014D | BCDE_MOBILESTARTUP_TYPE_ENABLE_START_CHARGE | enablestartcharge | boolean | 1607 and higher |
0x2600014E | BCDE_MOBILESTARTUP_TYPE_ENABLE_RESET_TPM | enableresettpm | boolean | 1703 and higher |
The following elements are known for object types 2X3XXXXX and 3XXXXXXX. To create the first type with BCDEDIT, use the /inherit device switch. The second type can be created through BCDEDIT either as the built-in object {ramdiskoptions} or with the /device switch.
Constant | Symbolic Name | Friendly Name | Format | Versions |
---|---|---|---|---|
0x35000001 | BcdDeviceInteger_RamdiskImageOffset
BCDE_DEVICE_TYPE_RAMDISK_IMAGE_OFFSET |
ramdiskimageoffset | integer | 6.0 and higher |
0x35000002 | BcdDeviceInteger_TftpClientPort BCDE_DEVICE_TYPE_RAMDISK_TFTP_CLIENT_PORT |
ramdisktftpclientport | integer | 6.0 and higher |
0x31000003 | BcdDeviceDevice_SdiDevice BCDE_DEVICE_TYPE_RAMDISK_SDI_DEVICE |
ramdisksdidevice | device | 6.0 and higher |
0x32000004 | BcdDeviceString_SdiPath BCDE_DEVICE_TYPE_RAMDISK_SDI_PATH |
ramdisksdipath | string | 6.0 and higher |
0x35000005 | BcdDeviceInteger_RamdiskImageLength
BCDE_DEVICE_TYPE_RAMDISK_IMAGE_LENGTH |
ramdiskimagelength | integer | 6.0 and higher |
0x36000006 | BCDE_DEVICE_TYPE_RAMDISK_EXPORT_AS_CD | exportascd | boolean | 6.0 and higher |
BcdDeviceBoolean_ExportAsCdRamdiskImageOffset | 6.0 to 6.1 | |||
BcdDeviceBoolean_RamdiskExportAsCd | 6.2 and higher | |||
0x35000007 | BCDE_DEVICE_TYPE_RAMDISK_TFTP_BLOCK_SIZE | ramdisktftpblocksize | integer | 6.0 and higher |
BcdDeviceInteger_TftpBlockSize | 6.0 to 6.1 | |||
BcdDeviceInteger_RamdiskTftpBlockSize | 6.2 and higher | |||
0x35000008 | BCDE_DEVICE_TYPE_RAMDISK_TFTP_WINDOW_SIZE | ramdisktftpwindowsize | integer | 6.0 SP1 and higher |
BcdDeviceInteger_TftpWindowSize | 6.0 SP1 to 6.1 | |||
BcdDeviceInteger_RamdiskTftpWindowSize | 6.2 and higher | |||
0x36000009 | BCDE_DEVICE_TYPE_RAMDISK_MULTICAST_ENABLED | ramdiskmcenabled | boolean | 6.1 and higher |
BcdDeviceInteger_MulticastEnabled | 6.1 only | |||
BcdDeviceBoolean_RamdiskMulticastEnabled | 6.2 and higher | |||
0x3600000A | BCDE_DEVICE_TYPE_RAMDISK_MULTICAST_TFTP_FALLBACK | ramdiskmctftpfallback | boolean | 6.1 and higher |
BcdDeviceInteger_MulticastTftpFallback | 6.1 only | |||
BcdDeviceInteger_RamdiskMulticastTftpFallback | 6.2 and higher | |||
0x3600000B | BcdDeviceBoolean_RamdiskTftpVarWindow
BCDE_DEVICE_TYPE_RAMDISK_TFTP_VAR_WINDOW |
ramdisktftpvarwindow | boolean | 6.2 and higher |
0x3600000C | BCDE_DEVICE_TYPE_VHD_RAMDISK_BOOT | vhdramdiskboot | boolean | 1809 and higher |
0x3500000D | integer | 1903 and higher |
Microsoft seems to have had recurring trouble with the WMI symbols for device elements. Not only do some names in some versions of the BCDSRV type library suggest the wrong type of data but some others have incorrect numerical definitions. Programmers can ignore the former as a quirk but incorrect numerical evaluation makes the symbol useless for the programming it’s intended for. It’s only some sort of excuse that most programmers won’t have been affected to begin with since the first of the problems concerned a WMI constant that Microsoft anyway did not document. That won’t have applied as the discrepancies increased. The type library from the original Windows Vista has BcdDeviceInteger_TftpBlockSize evaluate as 0x36000007 instead of 0x35000007. This was compounded for the addition of BcdDeviceInteger_TftpWindowsSize in Windows Vista SP1, as 0x36000008 instead of 0x35000008. Both were corrected for the type library in Windows 7, but it introduced a new type of editing mistake: the WMI constants for ramdiskmcenabled and ramdiskmctftpfallback are named as if to suggest integer types, but they actually are boolean—which finally got accounted for in a renaming of multiple elements for Windows 8.
The ramdisktftpblocksize element was omitted from the bcdedit /? types devobject documentation in the original Windows Vista. The oversight was perhaps not noticed until ramdiskftpwindowsize was added for the first service pack.