BCD Elements

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. However, Windows 7 enumerates them when also given the /v switch (for verbose mode).

Defined Elements

The following tables list the BCD elements that are yet known in any of several senses. Each 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 (which is sometimes not straightforward).

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 for the original Windows Vista but is omitted from the BCD Reference in the Windows Vista SDK dated January 2007. Updating for later versions may be attempted some time. The history is complicated on two counts. First is that many of the elements have no WMI symbol until some later version. 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. Again, this indication of documentation status dates from Windows Vista. Bringing it up to date is not trivial: some elements make it to the help text in some versions but not in all.

Global Elements

The following apply to all object types.

Library Elements

Until Windows 10, all the elements that can be in any object type 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 from Windows Vista 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
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
0x12000044 (file path for boot status data log)   string 6.0 and higher
BcdLibraryString_BsdLogPath     6.2 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 from Windows Vista 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 from Windows Vista 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
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

The symbol BcdLibraryBoolean_AttemptNonBcdStart is defined in BCDSRV versions before Windows 8 but its numerical datatype (0x16000031) is unknown to BCDEDIT.

The elements 0x11000043, 0x12000044 and 0x16000045 were at first known only from their meaningfulness to BOOTMGR. The type library in BCDSRV from Windows 8 introduced symbolic names for these elements, but 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 0x16000045 a friendly name. 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 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.

Application Elements

The BCDEDIT from Windows 10 allows some application elements in any 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

Template Elements

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. Earlier versions have it as 0x41000001.

Application-Specific Elements

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.

FWBOOTMGR and BOOTMGR Elements

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
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
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
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

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.

OSLOADER Elements

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 from Windows Vista SP1 to 6.2
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 from Windows 7 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 from Windows 7 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
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 from Windows Vista SP1, and higher
0x220000F1 BcdOSLoaderString_HypervisorPath
BCDE_OSLOADER_TYPE_HYPERVISOR_PATH
hypervisorpath string 6.0 from Windows Vista SP1 to 6.1
0x260000F2 BcdOSLoaderBoolean_HypervisorDebuggerEnabled
BCDE_OSLOADER_TYPE_HYPERVISOR_DEBUGGER_ENABLED
hypervisordebug boolean 6.0 from Windows Vista SP1, and higher
0x250000F3 BcdOSLoaderInteger_HypervisorDebuggerType
BCDE_OSLOADER_TYPE_HYPERVISOR_DEBUGGER_TYPE
hypervisordebugtype 0 = Serial
1 = 1394
6.0 from Windows Vista 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 from Windows Vista SP1, and higher
0x250000F5 BcdOSLoaderInteger_HypervisorDebuggerBaudrate
BCDE_OSLOADER_TYPE_HYPERVISOR_DEBUGGER_BAUDRATE
hypervisorbaudrate integer 6.0 from Windows Vista SP1, and higher
0x250000F6 BcdOSLoaderInteger_HypervisorDebugger1394Channel
BCDE_OSLOADER_TYPE_HYPERVISOR_DEBUGGER_1394_CHANNEL
hypervisorchannel integer 6.0 from Windows Vista 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 from Windows 7 SP1, and higher
BcdOSLoaderInteger_HypervisorUseLargeVTlb     6.1 from Windows 7 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
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
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
0x21000150 BCDE_OSLOADER_TYPE_SYSTEM_DATA_DEVICE systemdatadevice device 10.0 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 genuinely wonder why 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.

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 WINLOAD, 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 get removed from BCDEDIT, the element is given a WMI symbol for programmatic access.

RESUME Elements

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 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.

MEMDIAG Elements

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.

NTLDR and SETUPLDR Elements

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

STARTUP Elements

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

Device Elements

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 from Windows Vista SP1, and higher
BcdDeviceInteger_TftpWindowSize     6.0 from Windows Vista 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

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. (Against this is that the first of the problems concerned a WMI constant that Microsoft anyway did not document.)

Specifically, 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.