The following diagram shows how the Plug and Play components fit together. When the operating system is installed, detection modules are loaded based on the list in the MSDET.INF information file. When a device is detected that is not enabled for Plug and Play, information about it is retrieved from the appropriate device information file and stored in a new node created under the HKEY_LOCAL_MACHINE\ENUM\Root branch in the registry. On the first boot after initial installation (and on each subsequent boot) the system loads the enumerators and the same process occurs so that devices which can be enumerated rather than detected can be found, thus completing the list of known hardware. Enumerated devices appear under the relevant ENUM\enumerator name branch.
When the system starts, Configuration Manager loads enumerators to enumerate the devices in the system. Enumerators create a device node in the devnode tree for each enumerated device and populate it with information retrieved from the registry. The bus-specific naming schemes ensure that the root_key\device identifier is actually the device node's path in the registry. Drivers are loaded based on the driver information bound to each device in the registry, and are given a handle to their device node.