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. Starting with Windows 7, they are enumerated by this command 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. 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.

Global Elements

The following apply to all object types.

Library Elements

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
device device 6.0 and higher
0x12000002 BcdLibraryString_ApplicationPath
path string 6.0 and higher
0x12000004 BcdLibraryString_Description
description string 6.0 and higher
0x12000005 BcdLibraryString_PreferredLocale
locale string 6.0 and higher
0x14000006 BcdLibraryObjectList_InheritedObjects
inherit GUID list 6.0 and higher
0x15000007 BcdLibraryInteger_TruncatePhysicalMemory
truncatememory integer 6.0 and higher
0x14000008 BcdLibraryObjectList_RecoverySequence
recoverysequence GUID list 6.0 and higher
0x16000009 BcdLibraryBoolean_AutoRecoveryEnabled
recoveryenabled boolean 6.0 and higher
0x1700000A BcdLibraryIntegerList_BadMemoryList
badmemorylist integer list 6.0 and higher
0x1600000B BcdLibraryBoolean_AllowBadMemoryAccess
badmemoryaccess boolean 6.0 and higher
0x1500000C BcdLibraryInteger_FirstMegabytePolicy
firstmegabytepolicy 0 = UseNone
1 = UseAll
2 = UsePrivate
6.0 and higher
0x1500000D BcdLibraryInteger_RelocatePhysicalMemory
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
bootdebug boolean 6.0 and higher
0x15000011 BcdLibraryInteger_DebuggerType
debugtype 0 = Serial
1 = 1394
2 = USB
6.0 and higher
3 = NET
4 = Local
6.2 and higher
0x15000012 BcdLibraryInteger_SerialDebuggerPortAddress
debugaddress integer 6.0 and higher
0x15000013 BcdLibraryInteger_SerialDebuggerPort
debugport integer 6.0 and higher
0x15000014 BcdLibraryInteger_SerialDebuggerBaudRate
baudrate integer 6.0 and higher
0x15000015 BcdLibraryInteger_1394DebuggerChannel
channel integer 6.0 and higher
0x12000016 BcdLibraryString_UsbDebuggerTargetName
targetname string 6.0 and higher
0x16000017 BcdLibraryBoolean_DebuggerIgnoreUsermodeExceptions
noumex boolean 6.0 and higher
0x15000018 BcdLibraryInteger_DebuggerStartPolicy
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
hostip integer 6.2 and higher
0x1500001B BcdLibraryInteger_DebuggerNetPort
port integer 6.2 and higher
0x1600001C BcdLibraryBoolean_DebuggerNetDhcp
dhcp boolean 6.2 and higher
0x1200001D BcdLibraryString_DebuggerNetKey
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
bootems boolean 6.0 and higher
0x15000022 BcdLibraryInteger_EmsPort
emsport integer 6.0 and higher
0x15000023 BcdLibraryInteger_EmsBaudRate
emsbaudrate integer 6.0 and higher
0x12000030 BcdLibraryString_LoadOptionsString
loadoptions string 6.0 and higher
0x16000031 BcdLibraryBoolean_AttemptNonBcdStart   boolean 6.0 to 6.1
0x16000040 BcdLibraryBoolean_DisplayAdvancedOptions
advancedoptions boolean 6.0 and higher
0x16000041 BcdLibraryBoolean_DisplayOptionsEdit
optionsedit boolean 6.0 and higher
0x15000042 BcdLibraryInteger_FVEKeyRingAddress
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
    6.2 and higher
BCDE_LIBRARY_TYPE_BSD_PRESERVE_LOG preservebootstat   10.0 and higher
0x16000046 BcdLibraryBoolean_GraphicsModeDisabled
graphicsmodedisabled boolean 6.0 and higher
0x15000047 BcdLibraryInteger_ConfigAccessPolicy
configaccesspolicy 0 = Default
1 = DisallowMmConfig
6.0 and higher
0x16000048 BcdLibraryBoolean_DisableIntegrityChecks
nointegritychecks boolean 6.0 and higher
0x16000049 BcdLibraryBoolean_AllowPrereleaseSignatures
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
integrityservices 0 = Default
1 = Enable
2 = Disable
6.1 and higher
0x1500004C BcdLibraryInteger_FveBandId
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
restartonfailure boolean 6.2 and higher
0x16000054 BcdLibraryBoolean_GraphicsForceHighestMode
highestmode boolean 6.2 and higher
0x16000060 BcdLibraryBoolean_IsolatedExecutionContext
isolatedcontext boolean 6.2 and higher
0x15000065 BcdLibraryInteger_BootUxDisplayMessage
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
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
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
nokeyboard boolean 6.2 and higher
0x15000073 BcdLibraryInteger_AliasWindowsKey   integer 6.2 and higher
0x16000074 BcdLibraryBoolean_BootShutdownDisabled
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
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
forcefipscrypto boolean 6.2 and higher
0x1500007D BcdLibraryInteger_BootErrorUx
booterrorux 0 = Legacy
1 = Standard
2 = Simple
6.3 and higher
0x1600007E BcdLibraryBoolean_AllowFlightSignatures
flightsigning boolean 10.0 and higher
0x1500007F BcdLibraryInteger_BootMeasurementLogFormat
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
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.

Application Elements

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

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. All builds for Windows Vista 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.


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
displayorder GUID list 6.0 and higher
0x24000002 BcdBootMgrObjectList_BootSequence
bootsequence GUID list 6.0 and higher
0x23000003 BcdBootMgrObject_DefaultObject
default GUID 6.0 and higher
0x25000004 BcdBootMgrInteger_Timeout
timeout integer 6.0 and higher
0x26000005 BcdBootMgrBoolean_AttemptResume
resume boolean 6.0 and higher
0x23000006 BcdBootMgrObject_ResumeObject
resumeobject GUID 6.0 and higher
0x24000007 BCDE_BOOTMGR_TYPE_STARTUP_SEQUENCE startupsequence GUID list 1607 and higher
0x24000010 BcdBootMgrObjectList_ToolsDisplayOrder
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
noerrordisplay boolean 6.0 and higher
0x21000022 BcdBootMgrDevice_BcdDevice
bcddevice device 6.0 and higher
0x22000023 BcdBootMgrString_BcdFilePath
bcdfilepath string 6.0 and higher
0x26000024 BcdBootMgr_HormEnabled   boolean 6.2 and higher
0x26000025 BcdBootMgrBoolean_HiberRoot
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
processcustomactionsfirst boolean 6.2 and higher
0x2600002A     boolean 1809 and higher
0x27000030 BcdBootMgrIntegerList_CustomActionsList
customactions integer list 6.0 and higher
0x26000031 BcdBootMgrBoolean_PersistBootSequence
persistbootsequence boolean 6.2 and higher
0x26000032 BCDE_BOOTMGR_TYPE_SKIP_STARTUP_SEQUENCE skipstartupsequence boolean 1607 and higher
0x22000040 BcdBootMgrString_FveRecoveryUrl
fverecoveryurl string 10.0 and higher
0x22000041 BcdBootMgrString_FveRecoveryMessage
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
osdevice device 6.0 and higher
0x22000002 BcdOSLoaderString_SystemRoot
systemroot string 6.0 and higher
0x23000003 BcdOSLoaderObject_AssociatedResumeObject
resumeobject GUID 6.0 and higher
0x26000004 BcdOSLoaderBoolean_StampDisks
stampdisks boolean 6.0 SP1 to 6.2
0x21000005     device 1809 and higher
0x25000008     integer 1809 and higher
0x26000010 BcdOSLoaderBoolean_DetectKernelAndHal
detecthal boolean 6.0 and higher
0x22000011 BcdOSLoaderString_KernelPath
kernel string 6.0 and higher
0x22000012 BcdOSLoaderString_HalPath
hal string 6.0 and higher
0x22000013 BcdOSLoaderString_DbgTransportPath
dbgtransport string 6.0 and higher
0x25000020 BcdOSLoaderInteger_NxPolicy
nx 0 = OptIn
1 = OptOut
2 = AlwaysOff
3 = AlwaysOn
6.0 and higher
0x25000021 BcdOSLoaderInteger_PAEPolicy
pae 0 = Default
1 = ForceEnable
2 = ForceDisable
6.0 and higher
0x26000022 BcdOSLoaderBoolean_WinPEMode
winpe boolean 6.0 and higher
0x26000024 BcdOSLoaderBoolean_DisableCrashAutoReboot
nocrashautoreboot boolean 6.0 and higher
0x26000025 BcdOSLoaderBoolean_UseLastGoodSettings
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
nolowmem boolean 6.0 and higher
0x25000031 BcdOSLoaderInteger_RemoveMemory
removememory integer 6.0 and higher
0x25000032 BcdOSLoaderInteger_IncreaseUserVa
increaseuserva integer 6.0 and higher
0x25000033 BcdOSLoaderInteger_PerformaceDataMemory
perfmem integer 6.0 and higher
0x26000040 BcdOSLoaderBoolean_UseVgaDriver
vga boolean 6.0 and higher
0x26000041 BcdOSLoaderBoolean_DisableBootDisplay
quietboot boolean 6.0 and higher
0x26000042 BcdOSLoaderBoolean_DisableVesaBios
novesa boolean 6.0 and higher
0x26000043 BcdOSLoaderBoolean_DisableVgaMode
novga boolean 6.2 and higher
0x25000050 BcdOSLoaderInteger_ClusterModeAddressing
clustermodeaddressing integer 6.0 and higher
0x26000051 BcdOSLoaderBoolean_UsePhysicalDestination
usephysicaldestination boolean 6.0 and higher
0x25000052 BcdOSLoaderInteger_RestrictApicCluster
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
uselegacyapicmode boolean 6.1 and higher
0x25000055 BcdOSLoaderInteger_X2ApicPolicy
x2apicpolicy 0 = Default
1 = Disable
2 = Enable
6.1 SP1 and higher
0x26000060 BcdOSLoaderBoolean_UseBootProcessorOnly
onecpu boolean 6.0 and higher
0x25000061 BcdOSLoaderInteger_NumberOfProcessors
numproc integer 6.0 and higher
0x26000062 BcdOSLoaderBoolean_ForceMaximumProcessors
maxproc boolean 6.0 and higher
0x25000063 BcdOSLoaderBoolean_ProcessorConfigurationFlags
configflags integer 6.0 and higher
0x26000064 BcdOSLoaderBoolean_MaximizeGroupsCreated
maxgroup boolean 6.1 and higher
0x26000065 BcdOSLoaderBoolean_ForceGroupAwareness
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
safeboot 0 = Minimal
1 = Network
2 = DsRepair
6.0 and higher
0x26000081 BcdOSLoaderBoolean_SafeBootAlternateShell
safebootalternateshell boolean 6.0 and higher
0x26000090 BcdOSLoaderBoolean_BootLogInitialization
bootlog boolean 6.0 and higher
0x26000091 BcdOSLoaderBoolean_VerboseObjectLoadMode
sos boolean 6.0 and higher
0x260000A0 BcdOSLoaderBoolean_KernelDebuggerEnabled
debug boolean 6.0 and higher
0x260000A1 BcdOSLoaderBoolean_DebuggerHalBreakpoint
halbreakpoint boolean 6.0 and higher
0x260000A2 BcdOSLoaderBoolean_UsePlatformClock
useplatformclock boolean 6.1 and higher
0x260000A3 BcdOSLoaderBoolean_ForceLegacyPlatform
forcelegacyplatform boolean 6.2 and higher
0x260000A4 BcdOSLoaderBoolean_UsePlatformTick
useplatformtick boolean 6.2 and higher
0x260000A5 BcdOSLoaderBoolean_DisableDynamicTick
disabledynamictick boolean 6.2 and higher
0x250000A6 BcdOSLoaderInteger_TscSyncPolicy
tscsyncpolicy 0 = Default
1 = Legacy
2 = Enhanced
6.2 and higher
0x260000B0 BcdOSLoaderBoolean_EmsEnabled
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
driverloadfailurepolicy 0 = Fatal
1 = UseErrorControl
6.0 and higher
0x250000C2 BcdOSLoaderInteger_BootMenuPolicy
bootmenupolicy 0 = Legacy
1 = Standard
6.2 and higher
0x260000C3 BcdOSLoaderBoolean_AdvancedOptionsOneTime
onetimeadvancedoptions boolean 6.2 and higher
0x260000C4 BcdOSLoaderBoolean_EditOptionsOneTime
onetimeoptionsedit boolean 6.2 and higher
0x250000E0 BcdOSLoaderInteger_BootStatusPolicy
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
disableelamdrivers boolean 6.2 and higher
0x250000F0 BcdOSLoaderInteger_HypervisorLaunchType
hypervisorlaunchtype 0 = Off
1 = Auto
6.0 SP1 and higher
0x220000F1 BcdOSLoaderString_HypervisorPath
hypervisorpath string 6.0 SP1 to 6.1
0x260000F2 BcdOSLoaderBoolean_HypervisorDebuggerEnabled
hypervisordebug boolean 6.0 SP1 and higher
0x250000F3 BcdOSLoaderInteger_HypervisorDebuggerType
hypervisordebugtype 0 = Serial
1 = 1394
6.0 SP1 and higher
2 = None
3 = Net
6.2 and higher
0x250000F4 BcdOSLoaderInteger_HypervisorDebuggerPortNumber
hypervisordebugport integer 6.0 SP1 and higher
0x250000F5 BcdOSLoaderInteger_HypervisorDebuggerBaudrate
hypervisorbaudrate integer 6.0 SP1 and higher
0x250000F6 BcdOSLoaderInteger_HypervisorDebugger1394Channel
hypervisorchannel integer 6.0 SP1 and higher
0x250000F7 BcdOsLoaderInteger_BootUxPolicy   integer 6.1 and higher
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
hypervisorbusparams string 6.2 and higher
0x250000FA BcdOSLoaderInteger_HypervisorNumProc
hypervisornumproc integer 6.2 and higher
0x250000FB BcdOSLoaderInteger_HypervisorRootProcPerNode
hypervisorrootprocpernode integer 6.2 and higher
hypervisoruselargevtlb boolean 6.1 SP1 and higher
BcdOSLoaderInteger_HypervisorUseLargeVTlb     6.1 SP1 only
BcdOSLoaderBoolean_HypervisorUseLargeVTlb     6.2 and higher
0x250000FD BcdOSLoaderInteger_HypervisorDebuggerNetHostIp
hypervisorhostip integer 6.2 and higher
0x250000FE BcdOSLoaderInteger_HypervisorDebuggerNetHostPort
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
tpmbootentropy 0 = Default
1 = ForceDisable
2 = ForceEnable
6.1 and higher
0x22000110 BcdOSLoaderString_HypervisorDebuggerNetKey
hypervisorusekey string 6.2 and higher
0x22000112 BcdOSLoaderString_HypervisorProductSkuType   string 6.2 and higher
0x25000113 BcdOSLoaderInteger_HypervisorRootProc
hypervisorrootproc integer 6.2 and higher
0x26000114 BcdOSLoaderBoolean_HypervisorDebuggerNetDhcp
hypervisordhcp boolean 6.2 and higher
0x25000115 BcdOSLoaderInteger_HypervisorIommuPolicy
hypervisoriommupolicy 0 = Default
1 = Enable
2 = Disable
6.2 and higher
0x26000116 BcdOSLoaderBoolean_HypervisorUseVApic
hypervisorusevapic boolean 6.2 and higher
0x22000117 BcdOSLoaderString_HypervisorLoadOptions
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
imchivename string 6.3 and higher
0x21000138 BcdOSLoaderDevice_IMCDevice
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
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.

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
filedevice device 6.0 and higher
0x22000002 BcdResumeString_HiberFilePath
filepath string 6.0 and higher
0x26000003 BcdResumeBoolean_UseCustomSettings
customsettings boolean 6.0 and higher
0x26000004 BcdResumeBoolean_x86PaeMode
pae boolean 6.0 and higher
0x21000005 BcdResumeDevice_AssociatedOsDevice
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
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.

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
passcount integer 6.0 and higher
0x25000002 BcdMemDiagInteger_TestMix
testmix 0 = Basic
1 = Extended
6.0 and higher
0x25000003 BcdMemDiagInteger_FailureCount
failurecount integer 6.0 to 6.1
0x26000003 BcdMemDiagBoolean_CacheEnabled
cacheenable boolean 6.2 and higher
0x25000004 BcdMemDiagInteger_TestToFail
testtofail 0 = Stride
1 = Mats
2 = InverseCoupling
3 = RandomPattern
4 = Checkerboard
6.0 to 6.1
0x26000004 BcdMemDiagBoolean_FailuresEnabled
failuresenabled boolean 6.2 and higher
0x26000005 BCDE_MEMTEST_TYPE_CACHE_ENABLE cacheenable boolean 6.1 only
0x25000005 BcdMemDiagInteger_StrideFailureCount
stridefailcount integer 6.2 and higher
0x25000006 BcdMemDiagInteger_InvcFailureCount
invcfailcount integer 6.2 and higher
0x25000007 BcdMemDiagInteger_MatsFailureCount
matsfailcount integer 6.2 and higher
0x25000008 BcdMemDiagInteger_RandFailureCount
randfailcount integer 6.2 and higher
0x25000009 BcdMemDiagInteger_ChckrFailureCount
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

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

BOOTAPP Elements

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

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
ramdiskimageoffset integer 6.0 and higher
0x35000002 BcdDeviceInteger_TftpClientPort
ramdisktftpclientport integer 6.0 and higher
0x31000003 BcdDeviceDevice_SdiDevice
ramdisksdidevice device 6.0 and higher
0x32000004 BcdDeviceString_SdiPath
ramdisksdipath string 6.0 and higher
0x35000005 BcdDeviceInteger_RamdiskImageLength
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
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.