Difference between PoCallDriver and IoCallDriver?

So… I’ve been trying to maintain backwards compatibility (XP) in a driver I’m working on. However, I ran into a scenario where I was getting a 0x9F bug check on reset/powerdown transitions. My binary is being built using the XP build environment, but my target machine that I’m testing on has Win7 (32-bit). In any event building with the Win7 build environment and using IoCallDriver as opposed to PoCallDriver appears to have resolved my 0x9F bug check issue.

So naturally my question is, why? And what was I doing wrong when calling PoCallDriver? I ‘think’ I was making all the appropriate calls to PoStartNextPowerIrp. Is it necessary to keep these PoStartNextPowerIrp() calls still?

PoCallDriver/PoStartNextPowerIrp are no longer needed as of win7, they are nops in that OS. If you want to run on XP, you need to keep the calls

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@hotmail.com
Sent: Wednesday, July 24, 2013 3:28 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Difference between PoCallDriver and IoCallDriver?

So… I’ve been trying to maintain backwards compatibility (XP) in a driver I’m working on. However, I ran into a scenario where I was getting a 0x9F bug check on reset/powerdown transitions. My binary is being built using the XP build environment, but my target machine that I’m testing on has Win7 (32-bit). In any event building with the Win7 build environment and using IoCallDriver as opposed to PoCallDriver appears to have resolved my 0x9F bug check issue.

So naturally my question is, why? And what was I doing wrong when calling PoCallDriver? I ‘think’ I was making all the appropriate calls to PoStartNextPowerIrp. Is it necessary to keep these PoStartNextPowerIrp() calls still?


NTDEV is sponsored by OSR

Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev

OSR is HIRING!! See http://www.osr.com/careers

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer