How to Identify PCI Devices with PCI Device Identifiers

Device KB is not limited to PCI Devices only however this article is specific on the topic of How to Identify PCI Devices with PCI Device Identifiers? PCI Device Identifiers which combine called hardware IDs is a set of Vendor Id, Device ID, SubSys id which is shorten to subsystem id and subsys id itself contains sub vendor id and sub device id and then finally revision id. Let us explain you with real example to understand it professionally.

Example Hardware IDs: PCI\VEN_10EC&DEV_8168&SUBSYS_17F6103C&REV_07

We need to segregate this Hardware IDs into PCI Identifiers for better understanding of Vendor ID, Device ID, SUBSYS Id, Revision Number which is off course part of Hardware IDs. Let’s break this hardware ID to Identify PCI Device with available PCI Device Identifiers.

PCI\VEN_10EC&DEV_8168&SUBSYS_17F6103C&REV_07

PCI Device Identifier

This above mention hardware IDs string is starting with PCI\ which means that this device will be identified as PCI Device.

PCI Vendor ID

This Identifier portion is called Vendor Id Identifier portion where four alpha numeric numbers after VEN_ are PCI SIG-assigned identifier for PCI Device Vendor. In above PCI Device Identifier example, vendor id 10EC is a Vendor Id Identifier.

PCI Device ID

This identifier portion refers to PCI Device Identifier portion for the leading vendor ID VEN_10EC. Here device Id is a term used by PCI SIG, which refers to PCI Chip. PCI Device Identifier portion in above example contains device ID 8168 as a PCI Device under Vendor ID 10EC.

PCI Device Subsystem

This portion further contains two PCI Identifiers which are vendor define subsystem identifier. SUBSYS contains eight-character which are requires further segregation based on four-character identifiers. First four-character are basically vendor defined subsystem identifier which Device KB will name it to sub-device ID, while second four-character are PCI SIG-assigned Identifier for the vendor or subsystem and Device KB will name it sub-vendor ID for making it clearer. From the above example SUBSYS_17F6103C contains this information

Sub Device ID

Above Hardware ID contains Subsystem Identifier which is segmented with Sub Device ID 17F6 which is basically a device id assigned by it’s vendor.

Sub Vendor ID

This is again PCI SIG-assigned vendor id for subsystem. In above Hardware IDs example, subsystem identifier portion SUBSYS_17F6103C contains sub vendor id 103C which is PCI SIG-assigned id.

Revision Number Identifier

REV is normally two-character revision number used in the Hardware ID.

Class Code PCI Identifier

Now, if you again have a look on the image shared in this post contains four lines under hardware IDs and last two lines contains some more PCI Identifiers which are required if you are interacting with the Device technically like interface, programming etc. Let us explain this as well !

PCI\VEN_10EC&DEV_8168&CC_020000

This PCI hardware ID string contains another PCI Device Identifier called class code marked as CC which contains six-characters after CC_ and same as subsystem identifier, this identifier contains Information as below; Configuration Space First two-character under base class code or CC are for configuration space. Subclass Code Second two-character under after Configuration Space under base class code are used to identify subclass code of the device. Programming Interface code.

Class Code Identifier last two-character contains Programming Interface Code and configuration space, subclass code, programming interface combines the class code identifier. A complete Hardware ID contains Vendor ID, Device ID, Subsys ID and Revision number while under Hardware IDs there can be multiple PCI Device Identifier lines which can contains information as mentioned above. If you are already enough technical and know the pci identifiers and their respective informaiton, you might need to check our How to identify an unknown device on Windows Article for directly copying the Hardware Ids

.