Witam.
Próbuję odczytać coś z USB za pomocą Win API. Wcześniej inicjializuję sobie wszystko tak jak jest w tutorialu na stronie MSD traktującym o obsłudze USB: http://msdn.microsoft.com/en-us/library/windows/hardware/ff540174(v=vs.85).aspx
Urządzenie inicjalizuje się poprawnie. Wszystkie kroki wykonują się poprawnie. Problem występuje, kiedy chce odczytać coś za pomocą funckji WinUsb_ReadPipe(). Wywołuję ją w następujący sposób:
WINUSB_INTERFACE_HANDLE hDeviceHandle;
UCHAR* szBuffer = (UCHAR*)LocalAlloc(LPTR, sizeof(UCHAR)*cbSize);
UCHAR pID =130;
ULONG cbSize = 1024;// lub 512 - nie ma znaczenia
ULONG cbRead = 0;
Result = WinUsb_ReadPipe(this->hDeviceHandle, this->pID, szBuffer, cbSize, &cbRead, NULL);
hDeviceHandle jest wskaźnikiem wykorzystywanym do inicializacji urządzenia(nie jest równy NULL ani INVALID_HANDLE_VALUE),ostatni parametr jest opcjonalny.
W miejscu wywołania funkcji WinUsb_ReadPipe mam błąd (z pewnych względów jestem zmuszony debugować wersję realesową w gdb (mingw):
Program received signal SIGEGV, Segmentation fault.
0x1000020f8 in WinUsb_ReadPipe () from C:\Windows\system32\winusb.dll
<gdb> Exception condition detected on fd 0
error detected on stdin
Czy ktoś ma pomysł dlaczego tak się dzieje ?
dzięki :)