Different driver on each device instance?

Until recently I didn’t know you could have a different driver loaded for different instances of the same device.
I was under the impression that when windows chose a driver for a device, that driver was used for all instances of the device.

To get it to do this, I right clicked one of the device instances in device manager and selected “update driver” then browsed to the folder where my driver is.
After it updated, I noticed that the other instance of the device was still using the older driver from a different company.

It may sound odd, but this behavior can actually be useful for me in certain cases.

Does anyone know if this is “by design” or just a “happy accident”?

The OS is windows server 2019.

Thanks,
Erik

It’s by design.

Consider: What is the definition of “the same device”?

Device instances are reported by the bus driver using a set of strings referred to as the Hardware ID. Device instances can differ by one element of the Hardware ID and therefore cause different drivers to be loaded.

So, yup… definitely by design.

Peter

It’s not really that surprising, is it? The system will load whatever driver matches at the point in time when the device ID surfaces. If you go restart the second device, it would get the new driver as well, but until then, it will keep using whatever driver had originally been loaded.

A regular pnp restart (or system reboot) is not the trigger to reload the new driver. When you ask pnp to reevaluate (update driver, pnputil, etc) the best driver match for the device, the new driver (if it is the best match) will now load on the second instance. When pnputil and devcon install a driver package, they tell pnp to reevaluate all applicable devices.