Вызов GrdFind из libgrdapi.so под Linux возвращает AllDonglesFound
Добрый день!
Разрабатываем приложение для Linux на NetCore.
Подключили библиотеку libgrdapi.so и через DllImport вызываем методы.
[DllImport("libgrdapi.so", EntryPoint = "GrdStartup", CallingConvention = CallingConvention.Cdecl)]
public static extern int GrdStartup(GrdFMR grdFMR);
[DllImport("libgrdapi.so", EntryPoint = "GrdCreateHandle", CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr GrdCreateHandle(IntPtr hAddress, GrdCHM mode, IntPtr other);
[DllImport("libgrdapi.so", EntryPoint = "GrdSetAccessCodes", CallingConvention = CallingConvention.Cdecl)]
public static extern int GrdSetAccessCodes(IntPtr hAddress, uint publicCode, uint privateRD, uint privateWR, uint privateMST);
[DllImport("libgrdapi.so", EntryPoint = "GrdFind", CallingConvention = CallingConvention.Cdecl)]
public static extern int GrdFind(IntPtr hAddress, int mode, IntPtr id, IntPtr findInfo);
[DllImport("libgrdapi.so", EntryPoint = "GrdSetFindMode", CallingConvention = CallingConvention.Cdecl)]
public static extern int GrdSetFindMode(IntPtr hAddress, GrdFMR remoteMode, GrdFM flags, uint prog, uint id, uint sn, uint ver, uint mask, GrdDT type, GrdFMM models, GrdFMI interfaces);
[DllImport("libgrdapi.so", EntryPoint = "GrdLogin", CallingConvention = CallingConvention.Cdecl)]
public static extern int GrdLogin(IntPtr hAddress, int moduleLMS, GrdLM loginFlags);
[DllImport("libgrdapi.so", EntryPoint = "GrdLogout", CallingConvention = CallingConvention.Cdecl)]
public static extern int GrdLogout(IntPtr hAddress, int mode);
[DllImport("libgrdapi.so", EntryPoint = "GrdRead", CallingConvention = CallingConvention.Cdecl)]
public static extern int GrdRead(IntPtr hAddress, uint addr, int length, IntPtr input, IntPtr other);
[DllImport("libgrdapi.so", EntryPoint = "GrdCleanup", CallingConvention = CallingConvention.Cdecl)]
public static extern int GrdCleanup();
[DllImport("libgrdapi.so", EntryPoint = "GrdCloseHandle", CallingConvention = CallingConvention.Cdecl)]
public static extern int GrdCloseHandle(IntPtr hAddress);
[DllImport("libgrdapi.so", EntryPoint = "GrdSetWorkMode", CallingConvention = CallingConvention.Cdecl)]
public static extern int GrdSetWorkMode(IntPtr hAddress, GrdWM flagsWork, int other);
При выполнении поиска установленных ключей в Astra Linux при помощи метода GrdFind всегда возвращается AllDonglesFound, хотя ключи установлены в ПК и определяются как Guardant.
Feb 22 19:06:54 astra kernel: usb 1-2: USB disconnect, device number 9
Feb 22 19:06:55 astra kernel: usb 1-2: new full-speed USB device number 10 using xhci_hcd
Feb 22 19:06:55 astra kernel: usb 1-2: New USB device found, idVendor=0a89, idProduct=0003, bcdDevice= 1.00
Feb 22 19:06:55 astra kernel: usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Feb 22 19:06:55 astra kernel: usb 1-2: Product: Guardant Stealth II
Feb 22 19:06:55 astra kernel: usb 1-2: Manufacturer: Aktiv Co.
Feb 22 19:06:55 astra mtp-probe[15174]: checking bus 1, device 10: "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/usb1/1-2"
Feb 22 19:06:55 astra mtp-probe[15174]: bus: 1, device: 10 was not an MTP device
Feb 22 19:06:55 astra mtp-probe[15176]: checking bus 1, device 10: "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/usb1/1-2"
Вызов методов GrdStartup, GrdCreateHandle и GrdSetAccessCodes перед этим возвращают OK.
Подскажите пожалуйста, в чем может быть проблема?