Hi,
wenn über einen virtuellen Com-Port weniger Daten übertragen werden als
im Readfile() angegeben worden ist (mit Overlapped Event), wird dann
GetOverlappedResult() trotzdem ausgelöst, nur dass dann natürlich
weniger Daten zur Verfügung stehen, oder wartet GetOverlappedResult()
wirklich bis die angegebene Byteanzahl auch ankommt?
//hab mal den code schematisch dargestellt:
1 | #define MAX_BUFFER_SIZE 200
|
2 | BYTE buffer[MAX_BUFFER_SIZE];
|
3 |
|
4 | BOOL ok = ::ReadFile(hCom, buffer, MAX_BUFFER_SIZE - 1, &bytesRead, &ovl);
|
5 |
|
6 | DWORD result = ::WaitForMultipleObjects();
|
7 |
|
8 | ok = ::GetOverlappedResult(hCom, &ovl, &bytesRead, TRUE);
|
Gruß
Jens