ReadFile setzt ohne Empfangsdaten Event und wird fortgesetzt, warum?

Klaus1311

Grünschnabel
Hallo,

ich habe ein Win32-Programm in native mode geschrieben. Folgender Ablauf:
CreateEvent für Com read
CreateEvent für Com write
CreateThread
SetPriority
CreateFile(com ,, FILE_FLAG_OVERLAPPED | FILE_FLAG_NO_BUFFERING
SetupComm
SetCommTimeOuts
SetCommMask EV_ERR | EV_RXCHAR | EV_TXEMPTY
ReadFile

In dem neu erzeugten Thread wird mit einem
WaitForMultipleObjects(2,CommEventArray,FALSE,INFINITE);
gewartet.

Sofort nach dem oben aufgeführten ReadFile wird WaitForMultipleObjects fortgesetzt mit der Kennung Read, die Anzahl der eingelesenen char = 0 und in der InQueu steht auch 0. Selbst wenn ich SetCommMask weglasse, wird der Wait fortgesetzt. Weiß jemand warum fortgesetzt wird, oder hat irgend jemand einen Tip.

vielen Dank im Voraus
 
Du kriegst dann quasi einen Fehler, wenn du den mit GetLastError prüfst, müsste das ERROR_IO_PENDING sein. Da machst du dann dein WaitForMultipleObjects mit dem Event und wenn das anschlägt, hast du etwas bekommen.
 
Hallo Endurian

vielen Dank für die schnelle Antwort. Es wird leider kein Fehler gemeldet. In der Zwischenzeit habe ich herausgefunden dass meine Timeout Parameter so unglücklich gewählt waren, dass weder eine Fehlermeldung noch ein Timeout gemeldet wurden.

nochmals veilen Dank
 

Neue Beiträge

Zurück