Win2K server bug? buffering method specified by FSD not respected

I have a FSD that has been setup to process directIO buffers only. It
correctly executes on Win2K’s checked build, as all the incoming IRPs have
considerately set their MdlAddress field to a valid value.

Running the FSD on Win2K professional free build is successful as well.

The problem arises when running on Win2k server free build (SP0 and SP1).
Here not all IRPs buffering request are directIO.

Has anyone encountered a similar problem?

Would anyone have a work-around? I have tried returning data in the IRPs
specified buffer, eventhough it may not have been directIO, but this
inevitably lead to a crash in the DFS layer (bugcheck x82). I tried
failing the IRP request with STATUS_INVALID_USER_BUFFER with the hope that
the calling process would retry the request using the proper buffering
technique, but that didn’t work either.