Hi, I have a signed 64-bit non-PnP KMDF driver, build with WDK 7600.16385.1, that runs under Windows 7.10. For the driver installation, I use a console application (devinst.exe), down stripped from the MS devcon sample code. The driver installation works without any problem till Windows 10. Hi, Thank you for noticing this issue, this is a bug in.
-->After a device is attached, Windows attempts to locate a matching driver package from which it can install a driver for the device. Windows searches for driver packages from various locations and performs this search in two phases, as described in the following table.
Search phase | Windows 7 | Windows 8 and later versions of Windows |
---|---|---|
Before a driver is installed | DevicePath Windows Update | Driver store |
After initial driver is selected | Not applicable | DevicePath Windows Update |
Searching for driver packages
After a device is attached, Windows first attempts to locate and install a driver in a trusted system context without user interaction, as follows:
- The best matching driver that already exists in the driver store is first installed onto the device, allowing the device to begin operation quickly. In parallel and in a different process, the following will happen:
- Windows automatically downloads matching driver packages from Windows Update. If a matching driver package is found, Windows downloads the package and stages it to the driver store. In Windows 10 version 1709 and greater, Windows offers the best ranked driver, which is not necessarily the most recent. Driver ranking considers HWID, date/version, and critical/automatic/optional category. Windows ranks critical or automatic drivers highest. If a matching driver is not found, WU looks next for optional drivers. As a result, an older critical driver of otherwise equal rank takes precedence over a newer optional driver. In Windows versions earlier than 1709, Windows offers critical and optional updates with equal precedence.Windows also searches for driver packages that were preloaded in the locations that are specified by the DevicePath registry value. This value is under the following subkey of the registry.By default, the DevicePath value specifies the %SystemRoot%INF directory.If a better matching driver package than was initially installed is found either on Windows Update or in a location that is specified by the DevicePath value, Windows first stages the driver package to the driver store before the driver is installed. In this way, Windows always installs drivers from the driver store.