Page Fault after calling IoSetCompletionRoutine !

Hi all

After calling IoSetCompletionRoutine I am seeing a Page Fault error at IRQL

2 always . The IRP is created using the function IoAllocateIrp .I am able
to enter into the function I am pointing to in the IoSetCompletionRoutine
but it fails after leaving the function . Anybody has any idea what is the
problem here ? I just checked some examples also but they did not help much
. Can anybody has any suggestion to solve the above problem ?

Thanks in advance
srinivas


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

The answer is in your post. The DDK reads “Callers of
IoSetCompletionRoutine must be running at IRQL <= DISPATCH_LEVEL”
which is <= 2. You may have to queue the Irp and have a DPC process it, or
whatever you can do in your driver to make this happen at the proper IRQL.

“Srinivasa Rao Deevi” wrote in message
news:xxxxx@ntdev…
>
> Hi all
>
> After calling IoSetCompletionRoutine I am seeing a Page Fault error at
IRQL
> > 2 always . The IRP is created using the function IoAllocateIrp .I am
able
> to enter into the function I am pointing to in the IoSetCompletionRoutine
> but it fails after leaving the function . Anybody has any idea what is the
> problem here ? I just checked some examples also but they did not help
much
> . Can anybody has any suggestion to solve the above problem ?
>
> Thanks in advance
> srinivas
>
>
> —
> 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
>
>


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

Hi janglin

Thanks for the response.
I agree with what you say . But I wonder how the samples IsoUsb in DDK are
working with out any DPC and calling IoSetCompletionRoutine functions . But
my case is different I am trying to do some kind of streaming . So I need to
keep alive these IRP’s for some time . So the IoSetCompletionRoutine of
driver calls itself recursively until I stop through some event . I am not
sure how can I implement the way what you have mentioned .

Thanks in advance
srinvas

-----Original Message-----
From: janglin [mailto:xxxxx@fortres.com]
Sent: Monday, June 18, 2001 7:54 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Page Fault after calling IoSetCompletionRoutine !

The answer is in your post. The DDK reads “Callers of
IoSetCompletionRoutine must be running at IRQL <= DISPATCH_LEVEL”
which is <= 2. You may have to queue the Irp and have a DPC process it, or
whatever you can do in your driver to make this happen at the proper IRQL.

“Srinivasa Rao Deevi” wrote in message
news:xxxxx@ntdev…
>
> Hi all
>
> After calling IoSetCompletionRoutine I am seeing a Page Fault error at
IRQL
> > 2 always . The IRP is created using the function IoAllocateIrp .I am
able
> to enter into the function I am pointing to in the IoSetCompletionRoutine
> but it fails after leaving the function . Anybody has any idea what is the
> problem here ? I just checked some examples also but they did not help
much
> . Can anybody has any suggestion to solve the above problem ?
>
> Thanks in advance
> srinivas
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@transilica.com
> To unsubscribe send a blank email to
leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
>


You are currently subscribed to ntdev as: xxxxx@transilica.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.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

What status code are you returning from your completion routine? Anything
other than STATUS_MORE_PROCESSING_REQUIRED is incorrect (for an IRP that you
allocate in your driver with IoAllocateIrp), and would cause what you’re
seeing.

-Tim

Timothy A. Johns — xxxxx@driverdev.com
Driver Development Corporation — 800.841.0092
Bring Up Your Hardware — Fast. www.driverdev.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Srinivasa Rao Deevi
Sent: Monday, June 18, 2001 7:43 PM
To: NT Developers Interest List
Subject: [ntdev] Page Fault after calling IoSetCompletionRoutine !

Hi all

After calling IoSetCompletionRoutine I am seeing a Page Fault
error at IRQL
> 2 always . The IRP is created using the function IoAllocateIrp
.I am able
to enter into the function I am pointing to in the IoSetCompletionRoutine
but it fails after leaving the function . Anybody has any idea what is the
problem here ? I just checked some examples also but they did not
help much
. Can anybody has any suggestion to solve the above problem ?

Thanks in advance
srinivas


You are currently subscribed to ntdev as: xxxxx@driverdev.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.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

Hi Timothy

Thanks for the response . Earlier I was returning STATUS_SUCCESS . I think
that is the reason it is failing .

Thanks alot for pointing me to right point.

Srinvas

-----Original Message-----
From: Timothy A. Johns [mailto:xxxxx@driverdev.com]
Sent: Monday, June 18, 2001 9:35 PM
To: NT Developers Interest List
Subject: [ntdev] RE: Page Fault after calling IoSetCompletionRoutine !

What status code are you returning from your completion routine? Anything
other than STATUS_MORE_PROCESSING_REQUIRED is incorrect (for an IRP that you
allocate in your driver with IoAllocateIrp), and would cause what you’re
seeing.

-Tim

Timothy A. Johns — xxxxx@driverdev.com
Driver Development Corporation — 800.841.0092
Bring Up Your Hardware — Fast. www.driverdev.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Srinivasa Rao Deevi
Sent: Monday, June 18, 2001 7:43 PM
To: NT Developers Interest List
Subject: [ntdev] Page Fault after calling IoSetCompletionRoutine !

Hi all

After calling IoSetCompletionRoutine I am seeing a Page Fault
error at IRQL
> 2 always . The IRP is created using the function IoAllocateIrp
.I am able
to enter into the function I am pointing to in the IoSetCompletionRoutine
but it fails after leaving the function . Anybody has any idea what is the
problem here ? I just checked some examples also but they did not
help much
. Can anybody has any suggestion to solve the above problem ?

Thanks in advance
srinivas


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


You are currently subscribed to ntdev as: xxxxx@transilica.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.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