At system boot time, the Configuration Manager (cfgmgr high-level command) is automatically invoked to configure all devices detected as well as any device whose device information is stored in the Configuration database. At run time, you can configure a specific device by directly invoking (or indirectly invoking through a usability interface layer) high-level device commands. The Overview of System Management of Devices diagram illustrates this interface.
High-level device commands invoke methods and allow the user to add, delete, show, and change devices and their associated attributes.
When a specific device is defined through its Define method, the information from the Predefined database for that type of device is used to create the information describing the specific device instance. This specific device instance information is then stored in the Customized database.
The process of configuring a device is often highly device-specific. The Configure method for a kernel device must:
Of course, many devices do not have device drivers. For this type of device the configured state is not as meaningful. However, it still has a Configure method that simply marks the device as configured or performs more complex operations to determine if there are any devices attached to it.
The configuration process requires that a device be defined or configured before a device attached to it can be defined or configured. At system boot time, the Configuration Manager first configures the system device as shown in the Devices Graph: Examples of Connectivity and Dependence diagram. The remaining devices are configured by traversing down the parent-child connections layer by layer. The Configuration Manager then configures any pseudo-devices that need to be configured.
Device Configuration Manager Overview.
Device Dependent Structure (DDS) Overview.