From: Mark Roddy [markr@hollistech.com] Sent: Wednesday, November 28, 2001 6:50 AM To: NT Developers Interest List Subject: [ntdev] RE: trouble with completing irp IoMarkIrpPending(OriginalIrp); PutIrpOnQueue(OriginalIrp); IoCallDriver(TdiIrp); return STATUS_PENDING; // ignore the return value from iocalldriver! } CompletionHandler(TdiIrp,...) { if (TdiIrp->PendingReturned) { IoMarkIrpPending(TdiIrp); } IoCompleteRequest(OriginalIrp,...); DoSomethingWithTheTdiIrp(TdiIrp); Return STATUS_MORE_PROCESSING_REQUIRED; } You have to both mark the irp pending on the dispatch side and return status pending on the dispatch side, or you will get a multiple irp completions bug from your completion handler. > -----Original Message----- > From: bounce-ntdev-2120@lists.osr.com > [mailto:bounce-ntdev-2120@lists.osr.com] On Behalf Of Sebastian Slezak > Sent: Wednesday, November 28, 2001 2:53 AM > To: NT Developers Interest List > Subject: [ntdev] RE: trouble with completing irp > > > ...but I've marked pending original irp (which my driver > obtains from io > manager), before call lower driver and there's the same effect: if > completion routine call IoCompletRequest with the original > irp, system will > crash with bugcode 44 (MULTIPLE_IRP_COMPLETE_REQUESTS). I > see, you don't > meam to mark pending this irp, I've created to send TDI > request, do I? > Maybe I have to do some additional work with one. Thanks a for help. > > Sebastian Slezak > > --- > You are currently subscribed to ntdev as: > markr@hollistech.com To unsubscribe send a blank email to > leave-ntdev-247T@lists.osr.com > > --- You are currently subscribed to ntdev as: GlennEverhart@FirstUSA.com To unsubscribe send a blank email to leave-ntdev-247T@lists.osr.com