[NTDEV] Driver verifier problem ...

In testing the drivers for 2000, I have turned on the Driver Verifier and
enabled all of the Global Flags. I/O verification I set to Level 2.

Here is a code fragment that is giving me problems. It is in the dispatch
Read/Write function that prepares an IRP for transfer on our fibre channel
HBA.

PMDL pMdl = IoAllocateMdl(packet->DataBuffer,

packet->Length,

FALSE,

FALSE,

Irp);
__try {
MmProbeAndLockPages(pMdl,

KernelMode,

((packet->Direction < FC_RECEIVE) ?

IoWriteAccess :

IoReadAccess));
} __except(EXCEPTION_EXECUTE_HANDLER) {
status = GetExceptionCode();
CompleteRequest(Irp, status, 0);
return status;
}

GetExceptionCode returns a 0xC00000A1, or insufficient quota. That’s fine,
to handle it, I want to return to the user by completing the IRP.
CompleteRequest calls IoCompleteRequest and pops a blue screen, with
bugcheck 0x76. (NOTE: The documentation on this bugcheck is erroneous.)
Nothing I do, freeing pMdl, or unlocking pMdl resolves the bugcheck upon
completing the IRP.

How should this be handled?

Gary G. Little
Sr. Staff Engineer
Broadband Storage, LLC
xxxxx@broadstor.com
xxxxx@delphieng.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com