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

Sept/Oct 2019 Issue of The NT Insider available

Download PDF here:

It’s a particularly BIG issue, too: 40 pages of technical goodness, ranging from WDF to Minifilters. Check it out.
Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

PCIe Link Speed

omriomri Member Posts: 16

Hey All,
So I got all the parts of my KMDF driver for my board all set up and working. I'm now dealing with getting the speed of DMA transfers as fast as possible. One big problem I'm having is my PCIe link speed is not always (but it's not never either) at it's maximum capable speed. This information is read straight of the board's PCI configuration space and some DMA data rate benchmarking test code I have confirms the speed to be significantly lower than expected when the link speed isn't at it's maximum. I'm running Windows 10 pro and my board is a x8 capable of 8GT/s but the link speed is often dropped down to 2.5 GT/s. This should be controllable via the control panel under hardware and sound->change power-saving settings->high performance (change plan settings)->change advanced power settings->pci express->link power state management->settings, but I have made sure this is disabled. My device already has a working Linux driver which is consistently running at the maximum link speed, so this likely isn't a BIOS or board problem but something specific to Windows. Does anybody know what could be causing this issue? Is there some API function or some property I can set near the WdfDeviceCreate() call to control the link speed?


  • Pavel_APavel_A Member Posts: 2,688

    What says the logic analyzer guy?

    -- pa

  • omriomri Member Posts: 16

    This appears to only happen based on how the driver is loaded. When you install it by right clicking and selecting install on an INF file, this problem happens. The problem also happens when you enable a previously disabled driver in the device manager. If the driver is loaded by restarting windows and is loaded as part of the startup process the link speed is correct at the maximum capacity and stays that way.

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
Writing WDF Drivers 21 Oct 2019 OSR Seminar Space & ONLINE
Internals & Software Drivers 18 Nov 2019 Dulles, VA
Kernel Debugging 30 Mar 2020 OSR Seminar Space
Developing Minifilters 27 Apr 2020 OSR Seminar Space & ONLINE