RE: [NtDev] Re: NO_MORE_IRP_STACK_LOCATIONS

Yes, I confirmed IoCompleteRequest is not the culprit. I had the opportunity
to complete that Irp in the lower driver before the upper driver call
IoGetDmaAdapter …which causes IRP_MN_QUERY_INTERFACE …which is causing
all these problems : )

But how is it possible that if from my lower driver (which is above a
windows provided pci bus driver) I use IoGetNextIrpStackLocation() or I use
IoCopyCurrentIrpStackLocationToNext() they are successful.

And Irp->CurrentStackLocation is correct (=2) and DeviceObject->StackSize is
2 and Irp->StackCount is 3 (both seems correct) and yet I am getting
IRP_NO_MORE_STACK_LOCATIONS !

regards,
Hassan

From: Gary Little
>Reply-To: “NT Developers Interest List”
>To: “NT Developers Interest List”
>Subject: [ntdev] RE: [NtDev] Re: NO_MORE_IRP_STACK_LOCATIONS
>Date: Thu, 31 May 2001 12:16:16 -0700
>
>No, IoCompleteRequest, more than likely did not cause the crash. What
>caused
>the crash was the driver or a driver in the DevNode, calling
>IoCompleteRequest had screwed the pooch.
>
>First: MULTIPLE_IRP_COMPLETE_REQUESTS — your driver completed the IRP a
>second time.
>
>Second: NO_MORE_IRP_STACK_LOCATIONS — you are using a layered model and
>did not increment the stack locations in the upper driver when DriverEntry
>(or AddDevice) called IoCreateDeviceObject and after the device object was
>attached to the lower device object.
>
>Those are generally the obvious causes of these 2 BSODs. Synchronization
>problems and released or not held spin locks can also cause them.
>
>Gary G. Little
>Staff Engineer
>Broadband Storage, Inc.
>xxxxx@Broadstor.com
>xxxxx@inland.net
>
>-----Original Message-----
>From: Hrdina Pavel [mailto:xxxxx@compelson.com]
>Sent: Thursday, May 31, 2001 11:53 AM
>To: NT Developers Interest List
>Subject: [ntdev] Re: NO_MORE_IRP_STACK_LOCATIONS
>
>
>
>Hello boys, Hassan and Heldai !
>
>I want to tell you that IoCompleteRequest can cause a BSOD, but
>a slightly different type: MULTIPLE_IRP_COMPLETE_REQUESTS.
>Your case is probably that in IoCallDriver when there isn’t available
>next irp stack location.
>
>Hope this helps
>Paul
>
>-----Original Message-----
>From: xxxxx@lists.osr.com [
>mailto:xxxxx@lists.osr.com
>mailto:xxxxx]On Behalf Of Heldai
>Sent: Thursday, May 31, 2001 8:37 PM
>To: NT Developers Interest List
>Subject: [ntdev] Re: NO_MORE_IRP_STACK_LOCATIONS
>
>
>I has get this bug check when I was using IoSetCompletionRoutine and the
>Irp
>
>need someone processing or I don’t decrease the Stack Counter.
>
>Another situation was that I was sending to the next driver, mine Irp’s
>don’t accepted by next drivers.
>
>----- Original Message -----
>From:
>To: “NT Developers Interest List”
>Sent: Thursday, May 31, 2001 2:10 PM
>Subject: [ntdev] Re: NO_MORE_IRP_STACK_LOCATIONS
>
>
> > Is it possible to get NO_MORE_IRP_STACK_LOCATIONS bugcheck from
> > IoCompleteRequest routine ?
> >
> > The Irp Address given in the bugcheck 0x35 belongs to an Irp that I am
> > completing using IoCompleteRequest(). Also the system crashes when
> > IoCompleteRequest is called. I can’t see the connection between
> > IoCompleteRequest and this bugcheck. But all things seem to point
>towards
> > it.
> >
> > Thanks for any comment you can give.
> >
> > regards,
> > Hassan
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@scuasecurity.com.br
> > To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> >
>
>
>—
>You are currently subscribed to ntdev as: xxxxx@compelson.com
>To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
>—
>You are currently subscribed to ntdev as: xxxxx@broadstor.com
>To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
>
>
>—
>You are currently subscribed to ntdev as: xxxxx@hotmail.com
>To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.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</mailto:xxxxx>