Lies mal, was SetCommState zum EvtChar sagt.
https://msdn.microsoft.com/en-us/lib.../aa363214.aspx
Das steuert nicht was du aussliest.
Mit ReadFile liest man immer so viel aus, wie man angibt.
Willst du das nicht, mußt du Char-Weise auslesen, oder einen Puffer/Zwischenspeicher verwenden.
WaitCommEvent