Some BCD elements can be applied to more than one BCD application object, and a few are global to the entire BCD store. It is possible to associate these elements separately with each instance of an object that uses them. A more efficient approach is to create an inheritable object. This is a container for elements that are shared across multiple BCD object instances. For example, there are inheritable objects to specify whether the kernel debugger uses a COM, USB, or 1394 connection. A BCD object includes the inheritable object that contains the element instead of having a separate instance of the element itself.
As described in the BCD element section, BCD element namespace is divided so that elements that are used by two different application classes can share the same type code. This means that an inheritable application class object can be associated only with a particular class of BCD application objects. Alternatively, an inheritable BCD object can contain only BCD elements that apply to all boot environment applications. Such objects can be included by any BCD application class. The two types of inheritable object are distinguished by their class. The numerical class code is given in parentheses:
Library class (0x1). Inheritable objects of this type can be inherited by any BCD object and can contain only library class BCD elements.
Application class (0x2). Inheritable objects of this type can be inherited only by the specified BCD application class.
Inheritable objects that have a class code set to Application class must also include the type of application objects that can include the inheritable object. Possible values include any of the BCD application object types, such as Windows boot loaders or Windows boot manager.
The following table gives the BCDEdit identifier and GUID for some commonly used inheritable objects:
Standard Inheritable Objects
Global RAM defect list that can be inherited by any boot application.
Global settings that should be inherited by all Windows boot loader applications.
Global debugger settings that can be inherited by any boot application.
Global Emergency Management Services settings that can be inherited by any boot application.
Global settings that should be inherited by all boot applications.
Global settings that should be inherited by all resume applications.
The inherited type has the following layout. The contents of the value field depend on the class code:
Library. Value is not used.
Application. Value specifies the type of application that can inherit from the object. It should be set to one of the application codes that were listed earlier.