Hi Adrian,
Indeed, I believe Verifier thought that your driver changed the IRP’s status code before sending the IRP down, and it shouldn’t have changed that status. Typical cases when this break is issued are:
- IRP_MN_QUERY_DEVICE_RELATIONS/TargetDeviceRelation
- IRP_MN_QUERY_BUS_INFORMATION
- Several subcases of IRP_MN_QUERY_ID
Verifier thought that the PDO was the one responsible for changing that status code.
You will probably get the same break on OS versions older than Win7 if you enable the Verifier Enhanced I/O Checking too. Many driver owners didn’t enable Enhanced I/O Checking, and maybe you didn’t either. The Enhanced I/O Checking verification is enabled on more systems in Win7, because these checks are now included in the “regular” I/O Verifier.
I will look into improving the documentation for this break. Thanks for pointing this out! Feel free to follow-up with me either on the forum or through direct email if you want to discuss further.
Thanks,
Dan
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of adrian.smith@hp.com
Sent: Thursday, June 18, 2009 1:32 AM
To: Windows File Systems Devs Interest List
Subject: [ntfsd] Driver verifier iomanager violation
When running driver verifier on Windows 7, my driver fails the “I/O verification” test and the verifier generates a 0xC9 bugcheck (DRIVER_VERIFIER_IOMANAGER_VIOLATION). The I/O error code that appears is 0x218 “The driver has responded to an IRP that is reserved for other device objects elsewhere in the stack”. This problem occurs when pass the IRP down to the next lower driver. I call IoSkipCurrentIrpStackLocation() and then IoCallDriver() to do this.
I am unsure as to what this 0x218 means … what does it mean by “responded to an IRP” ? I have not responded to the IRP but merely passed it down to the next lower driver. Could it mean that the Driver Verifier thinks i’ve modified the IRP before passing it down ???
Any help/ideas greatly appreciated.
Adrian
NTFSD is sponsored by OSR
For our schedule of debugging and file system seminars
(including our new fs mini-filter seminar) 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