Initializing UMDF Drivers
[This topic applies to UMDF 1.x.]
Before a UMDF driver for a device is initialized, the driver manager and the reflector are loaded by the operating system and the driver host process is created. To ensure that a device starts successfully, the driver manager is loaded and fully initialized by the time the reflector initializes.
When the device is installed, the Plug and Play (PnP) subsystem loads the reflector, if not already loaded. The reflector then contacts the driver manager to create the driver host process. The framework within the newly created driver host process then calls the IDriverEntry::OnInitialize method to initialize the UMDF driver, if not already initialized.
The framework adds a new device object for each device loaded in the driver host process. The following sections show an overview and provide details on how the framework adds a new device: