Unique Identifier Per PCIe device

Is there a unique identifier for any given device that remains unique across a devices hot plug events.

For example I have a PCIe extender card that connects to PCIe external card through a cable if I disconnect that cable and then reconnect and rescan for hardware in the device manager is there an identifier that remains the same between the 2 iterations of that driver?

The problem is multiple cards like this the can suffer ESD events that bring the link down between the PC and the PCIe external card but don’t harm the data stored on the PCIe external card. That data is specific to a process that was running on the PC and I want to reestablish that link and continue processing the data.
I can do this in the case of 1 PCIe external card but, multiple cards requires a unique identifier so, I can relink the processes with their originally connected PCIe external cards.
A given process can be very expensive $Ks in physical material so, starting over and throwing material away because it was only half finished isn’t an acceptable solution.

Thanks,
HLF

There is a serial number extended capability, but you’re not going to find it implemented in all (many?) cards.

The devices should all have the same BDF after re-enumeration that they did before.

I’ve never seen a system that supports adding a new device to the tree (and having it be recognized by the O/S) while the O/S is running. My understanding of systems where this does actually work is that they do so by reserving numbers in the tree for empty slots to ensure that the breadth first enumeration works properly in these situations. If that is how they really work, then even changing the real number of devices while you have ESD messing with things shouldn’t throw a wrench into the works. If that isn’t how they work, then I don’t know a solution to your problem.

pcie serial numbers are an optional capability, so no, your cards need not
have unique identifiers. If they do you can uniquely identify them by their
serial number.

Mark Roddy

On Mon, Apr 18, 2016 at 6:12 PM, wrote:

> Is there a unique identifier for any given device that remains unique
> across a devices hot plug events.
>
> For example I have a PCIe extender card that connects to PCIe external
> card through a cable if I disconnect that cable and then reconnect and
> rescan for hardware in the device manager is there an identifier that
> remains the same between the 2 iterations of that driver?
>
> The problem is multiple cards like this the can suffer ESD events that
> bring the link down between the PC and the PCIe external card but don’t
> harm the data stored on the PCIe external card. That data is specific to a
> process that was running on the PC and I want to reestablish that link and
> continue processing the data.
> I can do this in the case of 1 PCIe external card but, multiple cards
> requires a unique identifier so, I can relink the processes with their
> originally connected PCIe external cards.
> A given process can be very expensive $Ks in physical material so,
> starting over and throwing material away because it was only half finished
> isn’t an acceptable solution.
>
> Thanks,
> HLF
>
> —
> NTDEV is sponsored by OSR
>
> Visit the list online at: <
> http://www.osronline.com/showlists.cfm?list=ntdev&gt;
>
> MONTHLY seminars on crash dump analysis, WDF, Windows internals and
> software drivers!
> Details at http:
>
> To unsubscribe, visit the List Server section of OSR Online at <
> http://www.osronline.com/page.cfm?name=ListServer&gt;
></http:>