Frage zu ReadFile() Methode (WIN32-API)

08/05/2011 - 18:28 von Heinz | Report spam
Guten Tag.

Ich habe foglendes Problem mit der ReadFile() Methode (WIN32-API)

Fall 1:
char rBuf[20] = {0};
DWORD dwBytesRead = 0;
ReadFile( hFile, rBuf, 2, &dwBytesRead, &ov )

Liest 2 Byte => OK

Fall 2:
char rBuf[20] = {0};
DWORD dwBytesRead = 0;
ReadFile( hFile, rBuf, 4, &dwBytesRead, &ov )

Sollte doch 4 Byte lesen => NOK (liest gar nichts in diesem Fall)


Frage:
Warum kann bei meiner Implmenetation die Methode ReadFile nur 2 Bytes lesen
und warum funktioniert das nicht mit 4 Bytes?
Ich möchte im gesammten 16 Bytes auf einmal von der USB Schnittstelle lesen,
bei meiner Implementation ist aber nur immer 2 Byte möglich.

Hat jemand ein Tipp wie man das lösen kann/muss, bzw. kann es sein, dass die
ReadFile() Methode immer nur max. 2 Byte lesen kann (entsprechend mehrfach
aufgerufen wird)?

Vielen Dank
Heinz
 

Lesen sie die antworten

#1 Thomas Richter
08/05/2011 - 18:38 | Warnen spam
Heinz schrieb:
Guten Tag.

Ich habe foglendes Problem mit der ReadFile() Methode (WIN32-API)



Damit bist Du hier off-topic. Schau mal in einer win32-spezifischen
Gruppe nach, dies ist kein Problem von C, sondern von der Windows-API.

Frage:
Warum kann bei meiner Implmenetation die Methode ReadFile nur 2 Bytes lesen
und warum funktioniert das nicht mit 4 Bytes?



Schuss ins Blaue: Weil das Win-Interface für USB vermutlich so definiert ist. Ich weiß nicht
genau, *was* Du da bekommst, aber vermutlich irgendwelche Statusinformationen des
entsprechenden Geràtes. Vermutlich wird man noch mehr machen müssen um vom Geràt mehr
Informationen zu bekommen, oder um einen Block-IO zu initiieren. Wie dem auch sei,
kein C-Problem.

Ich möchte im gesammten 16 Bytes auf einmal von der USB Schnittstelle lesen,
bei meiner Implementation ist aber nur immer 2 Byte möglich.

Hat jemand ein Tipp wie man das lösen kann/muss, bzw. kann es sein, dass die
ReadFile() Methode immer nur max. 2 Byte lesen kann (entsprechend mehrfach
aufgerufen wird)?



An der richtigen Stelle posten? Mehr kann ich nicht sagen, hier nix Windows.

Grüße,
Thomas

Ähnliche fragen