Use CharSet = CharSet.Ansi to clarify what you are doing, but i wont be the solution. The
FilterGetMessage documentation says that you need to provide a FILTER_MESSAGE_HEADER structure.
Consider writing the FilterGetMessage stuff completly in a C-dll. It could be easier and write a callback for resulting data.