Forum: Programmieren allgemein
by tomkupitz,
8. Jan 2018
succ:=ReadFile(Pipe.FileHandle,
b.buffer^,
b.NumberOfBytesToTransfer,
b.BytesTransferred,
@b.Overlapped);
err:=Windows.WaitForSingleObject(b.Overlapped.hEvent,Timeout);
machen wir schon. Ich habe aber gerade vom Hersteller gehört, dass es keine Möglichkeit gibt vorher zu klären ob Daten da sind.
Forum: Programmieren allgemein
by tomkupitz,
8. Jan 2018
z.B. Open (CreateFile) -> Write (WriteFile) -> Read (ReadFile) -> Close (CloseHandle)
1. nach Write liegt Antwort im Puffer Read funktioniert einwandfrei
nach einem Close klappt ein späteres Open einwandfrei
2. nach Write liegt keine Antwort im Puffer Read kehr mit Timeout zurück
nach einem Close klappt ein späteres Open nicht
Forum: Programmieren allgemein
by tomkupitz,
8. Jan 2018
Hallo,
ich habe hier einen Generic USB Device Driver. Auf diesen wird mit CreateFile, WriteFile und ReadFile zugegriffen. Falls keine Daten im Lesepuffer vorhanden sind, kriegen wir immer wieder Probleme mit ReadFile und Timeouts und ggf. undefinierten Zuständen. Gibt es eine Möglichkeit vor dem Lesen mit ReadFile zu ermitteln, ob Daten zum Lesen vorliegen (dachte da an CreateIoCompletionPort...