Driver Problems? Questions? Issues?
Put OSR's experience to work for you! Contact us for assistance with:
  • Creating the right design for your requirements
  • Reviewing your existing driver code
  • Analyzing driver reliability/performance issues
  • Custom training mixed with consulting and focused directly on your specific areas of interest/concern.
Check us out. OSR, the Windows driver experts.

Monthly Seminars at OSR Headquarters

East Coast USA
Windows Internals and SW Drivers, Dulles (Sterling) VA, 13 November 2017

Kernel Debugging & Crash Analysis for Windows, Nashua (Amherst) NH, 4 December 2017

Writing WDF Drivers I: Core Concepts, Nashua (Amherst) NH, 8 January 2018

WDF Drivers II: Advanced Implementation Techniques, Nashua (Amherst) NH, 15 January 2018


Go Back   OSR Online Lists > ntdev
Welcome, Guest
You must login to post to this list
  Message 1 of 3  
16 Nov 17 18:25
Mark Sanderson
xxxxxx@markfsanderson.net
Join Date: 16 Nov 2017
Posts To This List: 2
Transition to D0?

Greetings, I'm working on an driver for a custom FPGA PCIe card. This card is an early version, and reportedly does not support PCIe power management features. I suspect this lack of support in this early version is why my drivers EVT_WDF_DEVICE_DO_ENTRY method is not being called. The add device is called (where I'm looking at PCI config data) and Prepare hardware is called (where I'm configuring the FPGA's BAR and etc) - but no D0 entry. Could this lack of Power Support cause the the D0 state from not being entered? Can I artificially inject ( as a temporary measure ) to force the driver to attain D0 state so it can run? Currently my driver calls release hardware right after it calls prepare hardware with no intervening D0 Entry callback called. Is there a way I can opt out of power handling entirely and 'run' the driver? Thanks for any ideas and guidance . . Mark
  Message 2 of 3  
16 Nov 17 19:20
Doron Holan
xxxxxx@microsoft.com
Join Date: 08 Sep 2005
Posts To This List: 10106
Transition to D0?

Are you returning success from preparehardware? The first d0 entry is called by the framework immediately after preparehw so returning failure after it is the most likely cause. You can run !wdfkd.wdflogdump (your driver name) and see what happens d Bent from my phone ________________________________ From: xxxxx@lists.osr.com <xxxxx@lists.osr.com> on behalf of xxxxx@markfsanderson.net <xxxxx@lists.osr.com> Sent: Thursday, November 16, 2017 3:23:53 PM To: Windows System Software Devs Interest List Subject: [ntdev] Transition to D0? Greetings, I'm working on an driver for a custom FPGA PCIe card. This card is an early version, and reportedly does not support PCIe power management features. I suspect this lack of support in this early version is why my drivers EVT_WDF_DEVICE_DO_ENTRY method is not being called. The add device is called (where I'm looking at PCI config data) and Prepare hardware is called (where I'm configuring the FPGA's BAR and etc) - but no D0 entry. Could this lack of Power Support cause the the D0 state from not being entered? Can I artificially inject ( as a temporary measure ) to force the driver to attain D0 state so it can run? Currently my driver calls release hardware right after it calls prepare hardware with no intervening D0 Entry callback called. Is there a way I can opt out of power handling entirely and 'run' the driver? Thanks for any ideas and guidance . . Mark --- NTDEV is sponsored by OSR Visit the list online at: <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.osronline.co m%2Fshowlists.cfm%3Flist%3Dntdev&data=02%7C01%7CDoron.Holan%40microsoft.com%7Cfa4 863691eda4dab60d908d52d492d1a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636464 714669933655&sdata=9duoq9cVR333o5NpIlonlCWFmA7uKEO6LhK5Wvyd9eQ%3D&reserved=0> MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers! Details at <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.osr.com%2Fse minars&data=02%7C01%7CDoron.Holan%40microsoft.com%7Cfa4863691eda4dab60d908d52d492 d1a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636464714669933655&sdata=xMt4rQV RuIdkdc8XmXK6vHQmnpood21iq27fRFcd0Eg%3D&reserved=0> To unsubscribe, visit the List Server section of OSR Online at <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.osronline.co m%2Fpage.cfm%3Fname%3DListServer&data=02%7C01%7CDoron.Holan%40microsoft.com%7Cfa4 863691eda4dab60d908d52d492d1a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636464 714669933655&sdata=HV3i0c02IUVDV%2BxHliS26ShUkzi69JgUnKKg9o5Z%2Fkc%3D&reserved=0> --
  Message 3 of 3  
17 Nov 17 13:41
Mark Sanderson
xxxxxx@markfsanderson.net
Join Date: 16 Nov 2017
Posts To This List: 2
Transition to D0?

Doran, Duh - oops - this is embarrassing. You were spot on, for some reason I missed the fact I was returning STATUS_UNSUCCESSFUL constant at the bottom of my prepare hardware callback. Now its returning the correct generated status, which in most cases is STATUS_SUCCESS. It's working just fine now . . . Thanks again for the quick assist! The problem was sitting right there in front of me! Mark
Posting Rules  
You may not post new threads
You may not post replies
You may not post attachments
You must login to OSR Online AND be a member of the ntdev list to be able to post.

All times are GMT -5. The time now is 21:44.


Copyright ©2015, OSR Open Systems Resources, Inc.
Based on vBulletin Copyright ©2000 - 2005, Jelsoft Enterprises Ltd.
Modified under license