From - Mon Oct 13 11:16:20 1997
Path: news.mitre.org!blanket.mitre.org!agate!newsgate.duke.edu!nntprelay.mathworks.com!newsfeed.internetmci.com!24.128.1.125!chnws03.mediaone.net!24.128.1.107!chnws04.ne.mediaone.net!not-for-mail
From: "Fred " <hewett@mediaone.net>
Newsgroups: comp.os.ms-windows.programmer.nt.kernel-mode
Subject: Re: "IoCompleteRequest();" before "return STATUS_PENDING;"?
Date: Fri, 10 Oct 1997 14:02:48 -0400
Organization: MediaOne -=- Northeast Region
Lines: 16
Message-ID: <61lqlr$7e$1@brnws01.ne.mediaone.net>
References: <343bcc92.0@luxy.d.ginster.de> <343E4A92.FBD8E10C@ftp.com>
NNTP-Posting-Host: swift.ne.mediaone.net
X-Newsreader: Microsoft Outlook Express 4.71.1712.3
X-MimeOle: Produced By Microsoft MimeOLE V4.71.1712.3


Slava Monich wrote in message <343E4A92.FBD8E10C@ftp.com>...
>Dirk Juelich wrote:
>>
>> I have a basic device driver design problem. Is it allowed to call
>> IoCompleteRequest() for an IRP after IoMarkIrpPending() but _before_
>> the dispatch routine has returned STATUS_PENDING?
>
>What your dispatch routine returns ABSOLUTELY DOES NOT MATTER.


If you return STATUS_PENDING, you must call IoMarkIrpPending. NT Insider
(http://www.osr.com) had an excellent explanation of why this is the case in
their May '97 issue.