DriverVerifer problem...

Hi,

Introduction

*******************

I have created a FSFD and a function driver that communicate with each-other, the function driver receive requests from user-mode application and on some scenarios result communication with the FSFD by sending IRP_MJ_INTERNAL_DEVICE_CONTROL.

The problem

*******************

I have started testing the drivers using the DriverVerifier, I have set ONLY the SpecialPool property for my drivers.
On certain scenarios the function driver receive an IOCTL from user-mode which require it to communicate with the fixed FSFD, this communication is done by sending an IRP_MJ_INTERNAL_DEVICE_CONTROL to the fixed driver, to send the IRP I am using IoBuildDeviceIoControlRequest In combination with IoCallDriver.

When running with the DriverVerifier I get a BugCheck when the function driver is sending the IRP to the Fixed FSFD driver, following is the error description:

“A driver has forwarded an IRP an IRQL that is illegal for this major code. (Irp = 81E14F68 ).
IRP_MJ_INTERNAL_DEVICE_CONTROL”

Looking at the documentation of IoBuildDeviceIoControlRequest ( used to generate the Internal IOCTL ) I can see that this call must be executed in PASSIVE_LEVEL ).
Running with SoftIce debugger I can see that IoCallDriver is also being called at PASSIVE_LEVEL, BUT, apparently, after calling IoCallDriver the IRQL change as at the time the DriverVerifier triggers a BugCheck the IRQL is 2 ( DISPATCH_LEVEL ), this happen BEFORE the fixed FSFD receive the IOCTL, the BugCheck is must have been triggered from within IoCallDriver…

What may cause this problem[???], this doesn’t happen when the drivers run without the DriverVerifier…

Why does usage of the driver verifier cause such a problem? Setting the driver VerifierOptions to ‘Special Pool’ should ONLY verify memory overruns, underuns, etc ( shouldn’t it? )

Does this is a problem with my code OR is it something related with the DriverVerifier[???]

Any help would be appreciated.

Naddav.


Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com