Driver Verifier failing I/O

All,

I’ve run into a strange issue. I have a lower disk class filter that sends I/O to a disk device. With 2008R2, it works just fine, enable driver verifier, it works just fine. Switch to 2012, without driver verifier, I/O is sent without issue. Enable verifier with the standard settings and a WRITE of 1 sector (512B) succeeds, a write of 512K fails with STATUS_IO_DEVICE_ERROR. SCSI_STAT is 0x0 so I suspect the command was not actually sent to the disk. This is part of an initialization routine for my driver, the same 512B and 512K WRITEs succeed if verifier is disabled on 2012 and in all scenarios on 2008.

Is anyone aware of any changes to 2012 where Driver Verifier would fail in this way?

Thanks
~kenny

Which tests are enabled in DV? Is DMA checking enabled? Are you sending IRP_MJ_SCSI IRPs with SRBs? What’s maximum transfer size for the HBA?

I enabled the standard settings:
Special Pool, Pool tracking, force irql checking, i/o verification, deadlock detectin, dma checking, security checks, misc checks.
Yes, I am sending IRP_MJ_SCSI with SRB, the onboard SAS adapter should be able to handle 1MB requests since I can send them without issue if I disable verifier. I also verified, it’s failing 256KB requests also when verifier enabled.

~kenny

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@broadcom.com
Sent: Friday, August 9, 2013 11:00 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Driver Verifier failing I/O

Which tests are enabled in DV? Is DMA checking enabled? Are you sending IRP_MJ_SCSI IRPs with SRBs? What’s maximum transfer size for the HBA?


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

DMA checking will force an allocation of a bounce buffer during GetScatterGatherList. If it fails, the I/O fails.

Check if large I/O (from IOmeter) works from usermode with DV enabled. Check if SCSI_PASSTHROUGH_DIRECT with a big transfer works. If you have any IRP tracker, see what requests will get from disk.sys to storport.sys. See how they’ll be sized.

Thank you, I’ll investigate further based on your comments.

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@broadcom.com
Sent: Friday, August 9, 2013 12:00 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Driver Verifier failing I/O

DMA checking will force an allocation of a bounce buffer during GetScatterGatherList. If it fails, the I/O fails.

Check if large I/O (from IOmeter) works from usermode with DV enabled. Check if SCSI_PASSTHROUGH_DIRECT with a big transfer works. If you have any IRP tracker, see what requests will get from disk.sys to storport.sys. See how they’ll be sized.


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