Framework Device Object
[This topic applies to UMDF 1.x.]
The framework device object is exposed to drivers by the IWDFDevice interface. The framework device object is the framework representation of the device on the system. Each device object has a parent driver object.
When a new device arrives in the system, the framework calls the IDriverEntry::OnDeviceAdd method to notify the driver of the arrival and passes the IWDFDriver and IWDFDeviceInitialize interfaces in the call. The driver can call methods of the IWDFDeviceInitialize interface to initialize the new device. For example, the driver calls the IWDFDeviceInitialize::RetrieveDevicePropertyStore method to query for the device information that is provided as part of device installation. The driver can then call the IWDFDriver::CreateDevice method to configure and create the device object.
When drivers create a framework device object, they can register their IPnpCallback, IPnpCallbackSelfManagedIo, IPnpCallbackHardware, IFileCallbackCleanup, and IFileCallbackClose interfaces. The framework then notifies the driver when file cleanup and close and Plug and Play (PnP) and power management (PM) events occur. For more information about supporting PnP and PM, see PnP and Power Management in UMDF-based Drivers.