I'm trying to fix a problem with a driver package. One of the drivers is using UMDF, along with a kernel component. They linked with the UMDF redirector driver WUDFRd.sys; our kernel component is a lower filter to WUDFRd.
The device can be disabled/removed without needing a reboot. But if you try to update the device drivers (either by Device Manager, or by DPinst.dll), it's unable to override the user mode DLLs which are loaded by the UMDF host process, and thus the file rename is scheduled, and reboot is required.
It appears, that the device update as implemented by Windows, doesn't disable the devnode before trying to copy the new files. For kernel mode drivers, there is no problem, but for UMDF driver DLLs it's not going to work.
Is it by design, or I may be doing something wrong?