Do not register for a notification unless you need that notification
You should only register the filter that is needed for processing. Some filter notifications consumes a large amount of CPU resources and I/O throughput, which affect the performance and scalability of EAS.
Double check the code of filter to make sure it is strong enough
All filters are running in the same process of EAS, invalid exception or memory access might crash EAS. Therefore, you should make sure your filter dll can handle all exception to avoid an infection to EAS process.
Do not use static variable to declare COM object
The thread of filter is initialized by CoInitialize ( NULL ). If you declare a COM object as static, the same instance is likely running in different thread. Obviously, it doesn't work fine.