async full-duplex communication um/km via minifilter comm port

I want to implement a full-duplex asynchronous connection between the application and the driver, for this purpose I decided to use a mini-filter comm port, but I am confused by several points: FilterSendMessage func does not have an asynchronous version, plus I do not understand why there is a FilterReplyMessage func - it breaks all the logic of the client-server mechanism by throws out the internals of the FILTER_REPLY_HEADER = ((((Maybe someone will advise me how to implement the classic client-server approach?

FilterSendMessage is always going to be synchronous. Seems to me like you’ll need to build your own interface using IRPs.