Driver Updates: Replacing vs Creating New oem.inf

When I call newdev.dll:UpdateDriverForPlugAndPlayDevices() in a clean system my driver is installed and oem2.inf is created.
When I call the function again with a newer signed driver package (including newer DriverVersion in the inf) I get oem3.inf created. I was expecting oem2.inf to be replaced. If I used devcon update it behaves the same way, creating an additional oem.inf file.

Littering the system with old oem.inf files seems wrong. It appears I must manually check for these and setupapi.dll:SetupUninstallOEMInf() them.

  • Is a new oem.inf expected after update?
  • Is it best practice to remove older inf files?
  • Am I doing something wrong?

My net searches have come up empty. Thanks for your input.


  1. yes. each new imported driver package has its own identity, it’s own oemX.inf
  2. on a test system yes. on a customer system, it depends on what you want available to the customer to roll back to
  3. you are doing everything fine

Appreciate that Doron.