Identifier Score
A driver package rank is formatted as 0xSSGGTHHH, where the value of 0xSS000000 is the signature score, the value of 0x00GG0000 is the feature score, and the value of 0x0000THHH is the identifier score.
The identifier score ranks a driver package based on the type of match between a Plug and Play (PnP) device identification string that is reported by the bus driver of a device and a corresponding device identification string that is specified in an entry of an INF Models section of a driver package INF file.
The identifier score is the sum of an identifier-match-type score and an identifier-list-position score. The identifier-match-type score ranks a driver package according to whether a device hardware ID or a device compatible ID matches a hardware ID or a compatible ID in an entry of an INF Models section. A match between a device hardware ID and a hardware ID in an entry of an INF Models section is called a hardware ID match. A match where at least one of the matching identifiers is a compatible ID is called a compatible ID match.
For a given identifier-match type, the identifier-list-position score ranks a driver package according to the position of the matching identifier in the hardware ID list or the compatible ID list for a device and the position of the matching identifier in an entry of an INF Models section. Specifically, each device has an ordered list of hardware IDs and an ordered list of compatible IDs that are reported by the bus driver for the device. The identifiers are ordered in the list from the most specific to the most generic functionality. In addition, each INF Models section entry has one hardware ID and an optional list of compatible IDs that are listed in order of the most specific to the most generic functionality, as follows:
device-description=install-section-name,[hw-id][,compatible-id,...] ...
The first identifier in a device identifier list has an identifier-list-position score of 0x0000, the second identifier has an identifier-list-position score of 0x0001, and so on. Because an INF Models section entry only has one hardware ID, the identifier-list-position score of this hardware ID is always 0x0000.
The following lists the identifier scores for the four types of identifier-match types, where the value of 0x0000T000 is the identifier-match-type score and the value of 0x00000HHH is the identifier-list-position score:
A match between a device hardware ID and a hardware ID in an INF Models section entry is the best type of identifier match. A match of this type is called a hardware ID match.
The identifier-match-type score is 0x00000000 and the value of 0x0000HHH is the identifier-list-position score of the matching hardware ID in the list of device hardware IDs.
Identifier scores for this match type range from 0x00000000 through 0x00000FFF.
For this type of match, the value 0x00000000 is the best identifier score and the value 0x00000FFF is the worst identifier score.
A match between a device hardware ID and a compatible ID in an INF Models section entry is the second best type of identifier match. A match of this type is called a compatible ID match.
The identifier-match-type score is 0x00001000 and the value of 0x00000HHH equals the identifier-list-position score of the matching hardware ID in the list of device hardware IDs.
Identifier scores for this match type range from 0x00001000 to 0x00001FFF.
For this type of match, the value 0x00001000 is the best identifier score and the value 0x00001FFF is the worst identifier score.
A match between a device compatible ID and a hardware ID in an INF Models section entry is the third best type of identifier match. A match of this type is also known as a compatible ID match.
The identifier-match-type score is 0x00002000 and the value of 0x00000HHH equals the identifier-list-position score of the matching compatible ID in the list of device compatible IDs.
Identifier scores for this type of identifier match range from 0x00002000 to 0x00002FFF.
For this type of match, the value 0x00002000 is the best identifier score and the value 0x00002FFF is the worst identifier score.
A match between a device compatible ID and a compatible ID in an INF Models section entry is the fourth best type of identifier match. A match of this type is also known as a compatible ID match. Identifier scores for this type of identifier match are in the range of 0x00003000 to 0x00003FFF, where:
- The identifier-match-type score is 0x3000.
- The value of 0x0HHH equals (j + k*0x100), where j equals the identifier-list-position score of the matching device compatible ID and k equals the identifier-list-position score of the matching compatible ID in an INF Models section entry.
For this type of match, the value 0x00003000 is the best identifier score and the value 0x00003FFF is the worst identifier score.
For more information about driver ranking, see How Windows Ranks Drivers.