UMDF 2 is the latest version of UMDF and supersedes UMDF 1. All new UMDF drivers should be written using UMDF 2. No new features are being added to UMDF 1 and there is limited support for UMDF 1 on newer versions of Windows 10. Universal Windows drivers must use UMDF 2.
For more info, see Getting Started with UMDF.
When a new device arrives in the system, the framework calls the IDriverEntry::OnDeviceAdd method to notify the UMDF driver of the arrival and passes the IWDFDriver and IWDFDeviceInitialize interfaces in the call. The driver calls the IWDFDriver::CreateDevice method to create a framework device object for the device.
When drivers create a framework device object, they can register the following interfaces so that the framework notifies the driver—by calling the methods associated with the interfaces—when Plug and Play (PnP) and power management (PM) events occur.