The function in the dll is:
int getInfo (
unsigned int Index,
unsigned int* Mask,
unsigned int* Serial,
unsigned __int64* licInfo);
It is important that licInfo is an array with 4 elements.
In Java the method is declared like this:
int getInfo(int Index, IntByReference Mask, IntByReference Serial, Memory licInfo);
the method call:
int Index = 0;
IntByReference Mask = null;
IntByReference Serial = null;
Memory LicInfo = new Memory(256);
int status = dll.INSTANCE.getInfo(Index, Mask, Serial, licInfo);
The dll returns an error code that says the parameters are wrong. I am pretty sure the mistake is the last parameter. I also tried passing an long array directly or passing an Pointer without success.