Also mit
ClearCommPort kriegst du in der COMSTAT-Struktur den Wert cbInQue übergeben, der gibt an wieviele Bytes für ReadFile zur Verfügung stehen.
Bessere Variante ist ein eigener Thread und mit
WaitCommEvent darauf zu warten, dass sich an der seriellen Schnittstelle was tut.