Hi all,
When I have a anti-virus and my filter driver (floppy) working together,
sometimes I get NO_MORE_STACK_LOCATIONS.
If I detect this situation looking “CurrentLocation” field at IRP, can I
use IoAllocateIrp to create a new IRP and copy CurrentStackLocation from IRP
to NewIRP, forward the NewIrp to lower driver chain instead OriginalIrp?
What fields need I copy to NewIrp?
Need I call IoMarkIrpPending to original IRP and return STATUS_PENDING?
On my CompletionRoutine, can I copy CorrentStackLocation to OriginalIRP
and call IoFreeIrp. Need I clear some fields (such as MdlAddress) from
NewIrp before call IoFreeIRP?
Any help is welcome.
Thanks in advance,
Fernando.
NAI?
Jamey Kirby, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com]
On Behalf Of Fernando
Sent: Friday, August 15, 2003 7:38 AM
To: Windows System Software Developers Interest List
Subject: [ntdev] No more stack locations
Hi all,
When I have a anti-virus and my filter driver (floppy) working together,
sometimes I get NO_MORE_STACK_LOCATIONS.
If I detect this situation looking “CurrentLocation” field at IRP, can I
use IoAllocateIrp to create a new IRP and copy CurrentStackLocation from IRP
to NewIRP, forward the NewIrp to lower driver chain instead OriginalIrp?
What fields need I copy to NewIrp?
Need I call IoMarkIrpPending to original IRP and return STATUS_PENDING?
On my CompletionRoutine, can I copy CorrentStackLocation to OriginalIRP
and call IoFreeIrp. Need I clear some fields (such as MdlAddress) from
NewIrp before call IoFreeIRP?
Any help is welcome.
Thanks in advance,
Fernando.
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: xxxxx@storagecraft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com
Are you a filesystem or a storage filter? First, before you even think
about doing something like this, I’d find out which driver is
responsible for causing to be allocated or directly allocating an IRP
with too few stack locations, and if it’s not your driver, ask the
vendor for an update.
Fernando wrote:
Hi all,
When I have a anti-virus and my filter driver (floppy) working
together, sometimes I get NO_MORE_STACK_LOCATIONS.
If I detect this situation looking “CurrentLocation” field at IRP,
can I use IoAllocateIrp to create a new IRP and copy
CurrentStackLocation from IRP to NewIRP, forward the NewIrp to lower
driver chain instead OriginalIrp?
What fields need I copy to NewIrp?
Need I call IoMarkIrpPending to original IRP and return STATUS_PENDING?
On my CompletionRoutine, can I copy CorrentStackLocation to
OriginalIRP and call IoFreeIrp. Need I clear some fields (such as
MdlAddress) from NewIrp before call IoFreeIRP?
Any help is welcome.
Thanks in advance,
Fernando.
–
Nick Ryan (MVP for DDK)