RE: [NTDEV] IRQLs in windows ....

DISPATCH_LEVEL isn’t ‘slightly higher’. While the numeric values are close
(0 vs 2) the functional difference is equivalent to night vs. day. You
cannot use any function specified in the ddk as PASSIVE_LEVEL or less than
DISPATCH_LEVEL if you are at DISPATCH_LEVEL or greater. For example, some
routines specified this way use pageable code and/or data. A page fault at
DISPATCH_LEVEL is fatal.

If you are boxed in, for example your DPC routine needs to perform
operations that can only be performed at less than DISPATCH_LEVEL, then you
need to hand those operations off to a worker thread running at
PASSIVE_LEVEL.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Ajitabh Prakash
Sent: Wednesday, April 19, 2000 1:09 AM
To: NT Developers Interest List
Subject: [ntdev] [NTDEV] IRQLs in windows …

hi all,
While reviewing a driver code I found that some calls that run at IRQ
PASSIVE LEVEL are being called In routines that run at IRQ DESPATCH_LEVEL.
As far as i know on a X86 pltform DESPATCH_LEVEL > APC_LEVEL>
PASSIVE_LEVEL.
In DDK when i see the description of functions that run at IRQ
PASSIVE_LEVEL it only says that the Caller of these function should be at
IRQ_PASSIVE_LEVEL. Now My Question is

Can the caller of IRQ_PASSIVE_LEVEL Routine should be specifically at
IRQ_PASSIVE_LEVEL OR it can be at any level higher than IRQ_PASSIVE_LEVEL.
(Say DESPATCH_LEVEL)

Thanks
Ajitabh

Ajitabh Prakash
Sr.Software Engineer
Future Software
480/481 Nandnam,Chennai


You are currently subscribed to ntdev as: xxxxx@wattanuck.mv.com
To unsubscribe send a blank email to $subst(‘Email.Unsub’)