Passing down the Read IRP - newbie doubts...

Hi!
A few newbie doubts. :slight_smile:
I have a bit of trouble in handling a read IRP. I
am using pinned access for handling the volume
metadata. I try to map a range of bytes and I get a
read IRP (from the Cache manager).
In the handler, instead of using an associated IRP
or the next stack location and sending down the IRP, I
create a new IRP (IoBuildSynchronousFsdRequest) and
despatch the IRP to the target (disk) driver. I wait
for it to be completed (on an event) but it never does
get completed.

Questions…

  1. Can anyone tell me why?
  2. Is it wrong to create a new IRP and pass it
    down?
  3. Rajeev Nagar talks about using associated IRPs
    or the next stack location. He suggests setting up a
    completion routine and doing the post processing
    there. Can’t I wait for the completion on an event???
  4. From WinDebug, can I find out the IRQ level at
    which my code is executing?
    Thanks in advance!
    Manoj

=====

Manoj Paul Joseph,
Master of Computer Applications (final year student),
School of Computer Science and Engineering,
Anna University,
Chennai (Madras),
India.


Do You Yahoo!?
Everything you’ll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com


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

Hi Max,
How do I signal the event in the completion routine
if it is executing at APC_LEVEL? I get a bug-check
which I should. How do I handle this issue?
Manoj

— “Maxim S. Shatskih”
wrote: > > create a new IRP
(IoBuildSynchronousFsdRequest)
> and
> > despatch the IRP to the target (disk) driver. I
> wait
> > for it to be completed (on an event) but it never
> does
> > get completed.
>
> Page faults (including Cc ones) are handled on
> APC_LEVEL, so, IopCompleteRequest is blocked.
> Use IoAllocateIrp instead of
> IoBuildSynchronousFsdRequest and signal the event in
> the completion routine before calling IoFreeIrp.
> Return STATUS_MORE_PROCESSING_REQUIRED from the
> completion routine.
>
> Max

=====
-----------------------------------
Manoj Paul Joseph,
Master of Computer Applications (final year student),
School of Computer Science and Engineering,
Anna University,
Chennai (Madras),
India.

________________________________________________________________________
Looking for a job? Visit Yahoo! India Careers
Visit http://in.careers.yahoo.com

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

You can signal an event up to dispatch level. Make sure you’re really signalling an event.

-----Original Message-----
From: Manoj Paul Joseph [mailto:xxxxx@yahoo.com]
Sent: Tuesday, February 12, 2002 2:13 AM
To: File Systems Developers
Subject: [ntfsd] Re: Passing down the Read IRP - newbie doubts…

Hi Max,
How do I signal the event in the completion routine
if it is executing at APC_LEVEL? I get a bug-check
which I should. How do I handle this issue?
Manoj

— “Maxim S. Shatskih”
wrote: > > create a new IRP
(IoBuildSynchronousFsdRequest)
> and
> > despatch the IRP to the target (disk) driver. I
> wait
> > for it to be completed (on an event) but it never
> does
> > get completed.
>
> Page faults (including Cc ones) are handled on
> APC_LEVEL, so, IopCompleteRequest is blocked.
> Use IoAllocateIrp instead of
> IoBuildSynchronousFsdRequest and signal the event in
> the completion routine before calling IoFreeIrp.
> Return STATUS_MORE_PROCESSING_REQUIRED from the
> completion routine.
>
> Max

=====
-----------------------------------
Manoj Paul Joseph,
Master of Computer Applications (final year student),
School of Computer Science and Engineering,
Anna University,
Chennai (Madras),
India.

________________________________________________________________________
Looking for a job? Visit Yahoo! India Careers
Visit http://in.careers.yahoo.com

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

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