Windows 2000 and Windows XP
Dual Processor, PII, 350 MHz
128 Meg of RAM
Proprietary fibrechannel HBA and device drivers
DeviceObject->Flags is set to DO_DEVICE_IO
Driver verifier fully enabled (except low-resources)
When the driver for the fibrechannel HBA receives a Read/WriteFile, it uses
the incoming buffer as a control block. It extracts the buffer pointer and
length from this packet and calls IoAllocateMdl to create an MDL and lock
the pages for Scatter/Gather on the fibrechannel HBA. The new MDL is
associated with the incoming IRP as a secondary buffer. When the IRP is
completed, the MDLs are torn down as well. This happens correctly thousands
of times, transfer many gigabytes of data.
However, intermittently, I BSOD with a bugcheck code of 0xCB or
DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS. All of the information provided with
that bugcheck indicates the failure occurred because the MDL was not torn
down properly. Will the system release these resources automatically, or is
it necessary to manually unlock and or free the MDL before calling
IoCompleteRequest?
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