From: Matt Arnold [marnold@motu.com]
Sent: Wednesday, December 01, 1999 3:53 PM
To: ntdev@atria.com
Subject: Re: [ntdev] question about file operation and IRP_MJ_READ

From: Jamey Kirby <jkirby@storagecraft.com>
Date: Wednesday, December 01, 1999 3:20 PM


>2) Dispatch routines are called at dispatch level (hence the name dispatch
>routine).

No, the term "dispatch routine" is actually an unfortunate misnomer.
Driver dispatch routines have no direct relationship to DISPATCH_LEVEL,
either in name or behavior.

Dispatch routines are *not*, in fact, referred to as such because they
supposedly execute at DISPATCH_LEVEL.  They indeed *normally* execute at
PASSIVE_LEVEL.

Only the lowest-level drivers *might* expect their dispatch routines to
execute at DISPATCH_LEVEL.  Most drivers can expect that their dispatch
routines will only ever be called at PASSIVE_LEVEL -- and this is
*certainly* the case when an application issues *any* kind of I/O request
to a top-level driver.

Anyway, the *real* reason for the name "dispatch routine" is simply that
such routines are responsible for "dispatching" incoming requests to the
appropriate handling code within a driver.  That's it!  The confusion with
execution at DISPATCH_LEVEL is, as I said, unfortunate.

Also, DISPATCH_LEVEL is referred to as such because this is the level that
the system "dispatcher" (or scheduler) executes at when deciding which
thread to run next.  But, again, this concept has no direct relationship
with driver dispatch routines.

[snip]


Regards,

Matt Arnold
marnold@motu.com
Professional Music Products
Mark of the Unicorn, Inc.
http://www.motu.com


 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[ To unsubscribe, send email to ntdev-request@atria.com with body
UNSUBSCRIBE (the subject is ignored). ]
