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

Home NTDEV
Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

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: https://www.osr.com/osr-learning-library/


How to obtain the secondary bus number of a PCIe-to-PCI bridge?

dpugachevdpugachev Member Posts: 1

Hello,

I am trying to find out if there is an easy way to obtain a secondary PCI bus number of a PCIe-to-PCI bridge... I have Windows 10 installed on a PXIe chassis, which has a PCIe-to-PCI bridge connected to one of the root ports. My goal is to develop a DLL (as required by the spec) that returns the PCI bus number downstream of this bridge. The device ID of the bridge is known, and I can enumerate it using setupapi. Note that all the PCI slots are empty, so there is nothing connected to the downstream bus. I can get the primary bus number of the bridge device (using SPDRP_BUSNUMBER), but I cannot figure out a way to get the secondary bus number... is this even possible? Any pointers would be greatly appreciated!

Thanks in advance!

Comments

  • Pavel_APavel_A Member Posts: 2,726

    When a bridge is configured, its secondary bus number can be found somewhere in it's config space.
    Now the question is, how to read it. On many platforms the config space is memory-mapped at well known address.
    At least it was, when I worked with PCI... it was long ago, but PCI/PCIe hasn't changed much in this aspect.
    -- pa

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!
Kernel Debugging 30 Mar 2020 OSR Seminar Space
Developing Minifilters 15 Jun 2020 LIVE ONLINE
Writing WDF Drivers 22 June 2020 LIVE ONLINE
Internals & Software Drivers 28 Sept 2020 Dulles, VA