Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results


More Info on Driver Writing and Debugging

The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.

Check out The OSR Learning Library at:

Before Posting...

Please check out the Community Guidelines in the Announcements and Administration Category.

Linking PDO name to a friendly name

AvalonAvalon Member Posts: 31

Hello. Given an autogenerated PCI device name in the \Device tree (e.g. \Device\NTPNP_PCI0019), how can can we determine a friendly name like the one shown in device manager (e.g. NVIDIA Quadro P520). The autogenerated name appears in device manager as device property "Physical Device Object name".


  • Doron_HolanDoron_Holan Member - All Emails Posts: 10,582

    What are you going to do with the friendly name once you have it in kernel mode? Friendly name as a unique ID is problematic, it can be localized per user's language and not necessarily as unique as you think it is.

  • MBond2MBond2 Member Posts: 304

    as Doron says, unless you have a tightly controlled setup, don't try this. remember that even on a single machine, this might vary between one user and the next depending on their regional options

  • AvalonAvalon Member Posts: 31
    edited March 31

    I'm not using it for anything that needs to be unique, and other languages are no problem. It's for logging purposes, I want a friendlier name than the autogen'd name of this PDO to store in my log, even a non-understandable Chinese device name is better than PCI0019. Device manager is able to do this for PCI devices, any clue how?

  • Peter_Viscarola_(OSR)Peter_Viscarola_(OSR) Administrator Posts: 8,399

    The friendly name comes out of the INF. It’s based on the device class, IIRC, so it’s not unique on a per device basis at all. It’s a category name. There are SetupDiXxx functions that’ll allow you to retrieve it, though I can’t remember if you can easily go from the embedded Device Object name to the Friendly Name.


    Peter Viscarola

  • Doron_HolanDoron_Holan Member - All Emails Posts: 10,582
    One of the simplest strings that remains constant over reboots is a device interface symlink. If you are creating a device interface you already have one lying around ;).
  • AvalonAvalon Member Posts: 31
    edited March 31

    Thanks Scott that's exactly what I needed. Otherwise I would have had to take the longer path of Peter's method.

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Upcoming OSR Seminars
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!
Developing Minifilters 24 May 2021 Live, Online
Writing WDF Drivers 14 June 2021 Live, Online
Internals & Software Drivers 2 August 2021 Live, Online
Kernel Debugging 27 Sept 2021 Live, Online