Help : How to stop NO_MORE_IRP_STACK_LOCATIONS ?

Hi all

Our driver kind of multifunction driver, the child device is treated as USB
audio device. Everything is normal and working good. When I get a request
from USB audio driver ( Microsoft ) , if it need to be send down then I will
prepare a new request and send it down .

The problem occurs when the device is unplugged suddenly, the system crashes
with the above error. Instead of calling next level driver with a new IRP ,
somehow it ends with the IRP that came originally although I never send it
when this error happens. If the allocation of IRP fails , we will return the
error to the top layer and that does not happen. The error in debugger is as
follows:

Probably caused by : usbaudio.sys ( usbaudio!StartIsocInputTransfer+64 )

I am pretty much sure that I am not just forwarding the request came from
USB audio driver to next layer. How can I ensure it does have enough stack
locations.

Even though I am checking for stack size before sending the request down it
is not helping .

This problem occurs only on Windows 2000 and does not occur on Windows XP.

any ideas.

thanks in advance,
sri.