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