I have a KMDF filter driver that is installed as an upper filter for
the disk class. I’m TRYING to complete a specific read request and
prevent it from continuing down the stack. My code isn’t generating
any errors but is IS NOT completing the request. The request still
flows down the stack to the disk. In my read event code I get the
output buffer, populated it, and then attempt to complete the request.
What am I doing wrong here? Why does the request continue to head
down the stack?
code snippet
NTSTATUS status = WdfRequestRetrieveOutputBuffer(Request, Length,
(PVOID *)&OutputDataBuffer, &OutputDataBufferSize);
WdfRequestFormatRequestUsingCurrentType(Request);
WdfRequestCompleteWithInformation(Request, STATUS_SUCCESS, Length);
Is there more to completing the request or less? Does the call to
WdfRequestFormatRequestUsingCurrentType imply some later behavior?
I’m stumped. I hate the idea of having to rewrite this thing in the
non-KMDF world but I’m getting to that point…
I’m feeling both naive and stupid at the moment…
TIA,
Robert.
Robert Randall | xxxxx@gmail.com