Hallo,
habe ein USB-Device mit eintsprechenden Treiber, welches ich auch unter
XP erfolgreich installieren konnte.
Nun möchte ich es gerne im Programm ansprechen und im ersten Schritt
Daten schreiben und im 2ten Schritt lesen.
Leider komme ich mit der WinAPI beim schreiben über "WriteFile()" der
Daten nicht weiter, definition hier:
http://msdn.microsoft.com/en-us/library/aa365747(VS.85).aspx
Hier der Code-Abschnitt dazu:
1 | HANDLE DeviceHandle = CreateFile(
|
2 | lpcwstr_handle,
|
3 | GENERIC_READ | GENERIC_WRITE,
|
4 | FILE_SHARE_READ | FILE_SHARE_WRITE,
|
5 | NULL, // no SECURITY_ATTRIBUTES structure
|
6 | OPEN_EXISTING, // No special create flags
|
7 | 0, // No special attributes
|
8 | NULL); // No template file
|
9 |
|
10 |
|
11 | if(DeviceHandle != INVALID_HANDLE_VALUE)
|
12 | {
|
13 | // geschriebene Anzahl an Bytes
|
14 | DWORD numBytesReturned =0;
|
15 |
|
16 | // Daten
|
17 | char Antwort[32];
|
18 | for(int i=0; i<32; i++)
|
19 | Antwort[i] = 1;
|
20 |
|
21 | result = WriteFile(DeviceHandle, // open file handle
|
22 | (char*) Antwort, // start of data to write
|
23 | 32, // number of bytes to write
|
24 | &numBytesReturned, // number of bytes that were written
|
25 | NULL); // no overlapped structure
|
26 |
|
27 | DWORD s = GetLastError();
|
28 | }
|
Leider ist der Rückgabewert "result" von "WriteFile()" ==0 so wie auch
"numBytesReturned" == 0
und die Funktion GetLastError() liefert ==87
Laut MSDN --> GetLastError() returns 87 (ERROR_INVALID_PARAMETERS)
Nu was kann denn da Falsch sein?