RE: Blocking the request in filter driver's completion (p ost-filtering) [Impossible?]

Your dispatch routine is borken :slight_smile:

Suppose your completion handler returned STATUS_MORE_PROCESSING_REQUIRED?
Not only would DV be complaining, but the system would be going about its
bugcheck nonsense.

Go re-read the KB articles on IRP processing here:
http://www.microsoft.com/whdc/driver/kernel/default.mspx

=====================
Mark Roddy

-----Original Message-----
From: Vladislav Goncharov [mailto:xxxxx@unshadow.net]
Sent: Thursday, November 11, 2004 11:13 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Blocking the request in filter driver’s completion
(post-filtering) [Impossible?]

Hello!

I want to filter request in completion routine of the filter driver (for
example read request: I’ve got data to filter only in completion).

If I want to deny this request with some error status in my completion I do:

// …

Irp->IoStatus.Status = STATUS_UNSUCCESFUL; // or some specific status
Irp->IoStatus.Information = 0;

return STATUS_SUCCESS;
}

But the driver verifier tolds:

“And IRP dispatch handler has returned a status that is inconsistent with
Irp’s IoStatus.Status field.”

That’s because DeviceDispatch returned STATUS_SUCCESS (it doesn’t know about
completions and post-filtering) but Irp->IoStatus.Status = ERROR.

I can’t change return value of DeviceDispatch routine. Is it means it’s
impossible to implement such technique in filter drivers?

Vlad


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@stratus.com To
unsubscribe send a blank email to xxxxx@lists.osr.com