PortCommunication error under high loads

I have a mini filter with CommunicationPort. It has been stable for
a year and loosely based on the scanner sample.

However, i am now getting a rare “general application error” in
user mode when calling FilterGetMessage() under high loads.
Usermode recovers from the error and continues to run normally.

I am now wondering if my initial usermode “design” is at all correct.

Currently, i have
a single FilterConnectCommunicationPort handle,
a single (!) CreateIoCompletionPort,
and multiple threads with separate IO_OVERLAPPED structures.

I am able to serve multiple concurrent send-block-reply requests.
Is this at all correct ?
I had to manually set some fields such as Message.ReplyHeader.MessageId but overall the code
is stable and never bsod.

I want to keep my server port open with exclusive flag.
But i wonder if i should be using multiple completion ports?!

TIA,
Y.

Are you using FilterGetDosName ?

NO, not using FltGesDosName().
And i also dont see how that could be connected :wink:

It is connected. If you want to know how, please read threads about FltDosGetName. It works as you describe, works well for moderate load but, using this function, breaks completely the communications layer under heavy load. If you are not using FltDosGetName this is not your problem though.