BCD Objects

Each BCD object has a GUID, which represents the object in the BCD hive by naming a subkey of the Objects key. The following BCD objects are predefined.

GUID Symbolic Name BCDEDIT Friendly Name Applicable Versions
{0CE4991B-E6B3-4B16-B23C-5E0D9250E5D9} GUID_EMS_SETTINGS_GROUP {emssettings}  
{1AFA9C49-16AB-4A5C-4A90-212802DA9460} GUID_RESUME_LOADER_SETTINGS_GROUP {resumeloadersettings}  
{1CAE1EB7-A0DF-4D4D-9851-4860E34EF535} GUID_DEFAULT_BOOT_ENTRY {default}  
{4636856E-540F-4170-A130-A84776F4C654} GUID_DEBUGGER_SETTINGS_GROUP {dbgsettings}  
{466F5A88-0AF2-4F76-9038-095B170DC21C} GUID_WINDOWS_LEGACY_NTLDR {legacy}
{ntldr}
 
{5189B25C-5558-4BF2-BCA4-289B11BD29E2} GUID_BAD_MEMORY_GROUP {badmemory}  
{6EFB52BF-1766-41DB-A6B3-0EE5EFF72BD7} GUID_BOOT_LOADER_SETTINGS_GROUP {bootloadersettings}  
{7254A080-1510-4E85-AC0F-E7FB3D444736} GUID_WINDOWS_SETUP_EFI    
{7EA2E1AC-2E61-4728-AAA3-896D9D0A9F0E} GUID_GLOBAL_SETTINGS_GROUP {globalsettings}  
{7FF607E0-4395-11DB-B0DE-0800200C9A66} GUID_HYPERVISOR_SETTINGS_GROUP {hypervisorsettings} Windows Vista SP1, and higher
{9DEA862C-5CDD-4E70-ACC1-F32B344D4795} GUID_WINDOWS_BOOTMGR {bootmgr}  
{A1943BBC-EA85-487C-97C7-C9EDE908A38A} GUID_WINDOWS_OS_TARGET_TEMPLATE_PCAT    
{A5A30FA2-3D06-4E9F-B5F4-A01DF9D1FCBA} GUID_FIRMWARE_BOOTMGR {fwbootmgr}  
{AE5534E0-A924-466C-B836-758539A3EE3A} GUID_WINDOWS_SETUP_RAMDISK_OPTIONS {ramdiskoptions}  
{B012B84D-C47C-4ED5-B722-C0C42163E569} GUID_WINDOWS_OS_TARGET_TEMPLATE_EFI    
{B2721D73-1DB4-4C62-BF78-C548A880142D} GUID_WINDOWS_MEMORY_TESTER {memdiag}  
{CBD971BF-B7B8-4885-951A-FA03044F5D71} GUID_WINDOWS_SETUP_PCAT    
{FA926493-6F1C-4193-A414-58F0B2456D1E} GUID_CURRENT_BOOT_ENTRY {current}  

Of these, the {current} and {default} objects are special. The GUIDs given above for these objects do not name an Objects subkey. Instead, they are aliases for BCDEDIT to resolve to the GUIDs for the BCD objects that represent respectively the currently running operating system and the (possibly different) operating system that would have started by default.

The GUID_WINDOWS_OS_TARGET_TEMPLATE_PCAT and GUID_WINDOWS_OS_TARGET_TEMPLATE_EFI objects are not enumerated by bcdedit /enum in Windows Vista, but are in Windows 7 when the /v switch is also given.

Other BCD objects can be created, of course, but they do not have predefined GUIDs.

Object Type

Every BCD object, whether pre-defined or not, has a type, actually stored as the DWORD data for the Type value in the object’s Description subkey. Broadly speaking, there are application objects, inherit objects and device objects.

The Type value is interpreted as bit fields:

Mask Interpretation Values
0xF0000000 object type 1 = application object
2 = inherit object
3 = device object
0x00F00000 for application objects:
image type
1 = firmware application
2 = Windows boot application
3 = legacy loader application
4 = real-mode application
for inherit objects: 1 = inheritable by any object
2 = inheritable by application objects
3 = inheritable by device objects
0x000FFFFF application type 1 = fwbootmgr
2 = bootmgr
3 = osloader
4 = resume
5 = memdiag
6 = ntldr
7 = setupldr
8 = bootsector
9 = startup

It seems that not all combinations are supported. Indeed, the interpretation is anyway not rigid: though it may be meaningful to BCDEDIT, it appears to have little, if any, signficance to BOOTMGR or WINLOAD.EXE. More investigation is required.

What can be said with certainty is that the bcdedit /create command provides for only the combinations that are shown in the following tables.

Application Objects

Type BCDEDIT Creation Parameters
0x10100001 /create {fwbootmgr}
0x10100002 /create {bootmgr}
0x10200003 /create /application osloader
0x10200004 /create /application resume
0x10200005 /create {memdiag}
0x10300006 /create {legacy}
/create {ntldr}
0x10400008 /create /application bootsector
0x10400009 /create /application startup

Inherit Objects

Type BCDEDIT Creation Parameters Applicable Versions
0x20100000 /create /inherit
/create {badmemory}
/create {dbgsettings}
/create {emssettings}
/create {globalsettings}
 
0x20200001 /create /inherit fwbootmgr  
0x20200002 /create /inherit bootmgr  
0x20200003 /create /inherit osloader
/create {bootloadersettings}
 
/create {hypervisorsettings} Windows Vista SP1, and higher
0x20200004 /create /inherit resume
/create {resumeloadersettings}
 
0x20200005 /create /inherit memdiag  
0x20200006 /create /inherit ntldr  
0x20200007 /create /inherit setupldr  
0x20200008 /create /inherit bootsector  
0x20200009 /create /inherit startup  
0x20300000 /create /inherit device  

Device Objects

Type BCDEDIT Creation Parameters
0x30000000 /create /device
/create {ramdiskoptions}