Witam
Staram się napisać program, który będzie pobierał dane z urządzenia USB-urządzenie korzysta z interfejsu HID i jest widoczne w panelu sterowania jak klawiatura. Przeczytałem, że można to zrobić po prostu otwierając "plik" do urządzenia.
Pozyskałem wartości VIP i PID urządzenia metodą SetupDiEnumDeviceInterfaces.
I teraz staram się "stworzyć" plik do urządzenia:
CreateFile(urzadzenie, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, null, OPEN_EXISTING, 0, 0);
Jak widać parametr dwDesiredAccess nie jest jak wszędzie podają GENERIC_WRITE | GENERIC_READ. W takim rozwiązaniu zawsze dostawałem uchwyt -1. Nawet jeżeli włączyłem FILE_FLAG_OVERLAPPED.
Przy podaniu tylko GENERIC_WRITE zwraca mi uchwyt-co to oznacza w praktyce bo przecież ja chce tylko czytać przychodzące dane z urządzenia (dlatego też dałem zamiast FILE_FLAG_OVERLAPPED to wpisałem 0), a GENERIC_WRITE przecież zezwala tylko na zapis do pliku(portu)-dobrze rozumiem?
No ok tak czy siak mam uchwyt ale przy wywołaniu ReadFile za pierwszym razem mam wynik w getlasterror 0 co niby potwierdza poprawne wykonanie funkcji ale za każdym kolejnym dostaje 5 co odpowiada ACCESS_DENIED...co robić?
Czy mimo że chce tylko czytać z urządzenia i to musze dać asynchroniczną komunikację? Moze do USB inaczej się stosuje pobieranie danych z portu niż do RS 232??
Proszę o pomoc.
Pozdrawiam