none
Using only Compatible IDs in a driver INF file RRS feed

  • Question

  • Hi,

    I am looking at using only a Compatible ID, and no Hardware ID, in our USB driver's INF file. This appears to work fine on Windows 8.1, at least, though Inf2Cat throws a warning about the missing Hardware ID.

    The MSDN online documentation does not mention anything about the invalid use of Compatible IDs, but through some further googling I have found some sources that suggest vendors should not use Compatible IDs, but there is no explanation as to why this is the case.

    Is anyone able to provide an explanation as to why INF files must contain a Hardware ID and cannot contain only Compatible IDs? I am unclear whether this is due to a technical reason, or a design / WHQL certification reason.

    For further info as to why I am trying to only use compatible IDs, here is a simplified view. We have two installation packages. The Primary package comes with a lot of baggage. The Secondary package is lighter. Both packages contain different tools and the user has the choice to install either one, or both at the same time based on how they wish to use the device. Since the secondary package does not support all the functionality of the primary package, the secondary package installs a limited driver, compared to the Primary package's driver. If both packages are installed, we need the Primary driver to take precedence. It seems to me that using Compatible IDs was a more logical way to go rather than using FeatureScore to prioritise the drivers.

    Regards,

    Emil

    Tuesday, February 10, 2015 6:19 AM

Answers

  • compatible ID matches mean you can install on any piece of hardware from any vendor, ie create a class driver. third parties are not allowed by policy to create class drivesr and ship them. You can use driver rank in the INF to control precedence if both INFs match on the same HW ID

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Tuesday, February 10, 2015 6:31 PM

All replies

  • compatible ID matches mean you can install on any piece of hardware from any vendor, ie create a class driver. third parties are not allowed by policy to create class drivesr and ship them. You can use driver rank in the INF to control precedence if both INFs match on the same HW ID

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Tuesday, February 10, 2015 6:31 PM
  • Thanks for the replies.

    So compatible IDs in an INF file are really only meant for class drivers, and virtual print drivers?

    It's a shame since it seemed to fit our situation quite well. Our secondary driver is used by several of our USB devices and is only used to provide firmware updates, otherwise the device in question is normally controlled via ethernet. If the primary driver is installed (optional for the user) it also allows firmware updating, but has further functionality beyond what is capable over ethernet. This is why I thought that compatible IDs in the secondary driver would be more appropriate because it is used by multiple devices but has very limited functionality.

    Tuesday, February 10, 2015 11:58 PM
  • The simplest reason is because the secondary driver supports all of our USB devices and so is installed everywhere. The primary driver only supports some of our USB devices, so it is optional for the users that want its extended functionality on the devices that support it.

    There are also some other factors related to the release management and installer separation that have motivated us to have two, prioritised drivers.

    Wednesday, February 11, 2015 3:55 AM