Completion Routines

Hi

I am slightly confused. What should I return from my Completion Routine ?

The filemon example returns Irp->IoStatus.Status

The SFilter example return STATUS_SUCCESS

Which is correct ? Is the return value used to say that the routine
completed successfully or is the return value used to say how the complete
IRP is progressing.

Please help

TTFN
Paul Delivett

Paul,

From a completion routine the ONLY return value that has any special meaning
is STATUS_MORE_PROCESSING_REQUIRED. If you return ANYTHING else, it
is treated as if you had returned STATUS_SUCCESS. Thus, I’d recommend
returning STATUS_SUCCESS rather than some arbitrary status value, although
the effect is likely to be the same (unless you find some strange lower
level driver that decided to complete the IRP with
STATUS_MORE_PROCESSING_REQUIRED. Not that I’ve ever SEEN such a driver…)

Regards,

Tony

Tony Mason
Consulting Partner
OSR Open Systems Resources, Inc.
http://www.osr.com

-----Original Message-----
From: Paul Delivett [mailto:xxxxx@Carraig.co.uk]
Sent: Wednesday, August 30, 2000 5:15 AM
To: File Systems Developers
Subject: [ntfsd] Completion Routines

Hi

I am slightly confused. What should I return from my Completion Routine ?

The filemon example returns Irp->IoStatus.Status

The SFilter example return STATUS_SUCCESS

Which is correct ? Is the return value used to say that the routine
completed successfully or is the return value used to say how the complete
IRP is progressing.

Please help

TTFN
Paul Delivett


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

True, this has been a contentious issue. I would think, completion routine
should return STATUS_SUCCESS, coz, this return status doesn’t have any
bearing on the completion status of this particular IRP, which is set by
lower level driver( if u want to take hold of this IRP in your main dispatch
routine, u should return STATUS_MORE_PROCESSING_REQUIRED)
I don’t know if returning anyother value would have some bearing on system.

thanx
pash

Hi

I am slightly confused. What should I return from my Completion Routine ?

The filemon example returns Irp->IoStatus.Status

The SFilter example return STATUS_SUCCESS

Which is correct ? Is the return value used to say that the routine
completed successfully or is the return value used to say how the complete
IRP is progressing.

Please help

TTFN
Paul Delivett


You are currently subscribed to ntfsd as: xxxxx@Legato.COM
To unsubscribe send a blank email to $subst(‘Email.Unsub’)