Есть библиотека на c++ и документация к ней. В целом с ней могу работать, но с некоторыми функциями проблема.
В документации:
LONG CLSCRF_MifareStandard_AuthKey( IN LPVOID pReader,
IN BYTE bKeyType,
IN LPBYTE pbUID,
IN DWORD dwSector,
IN LPBYTE pbCodedKey );
Подключаю библиотеку:
[DllImport(ClscrflDll)]
public static extern uint CLSCRF_MifareStandard_AuthKey(IntPtr pReader, byte bKeyType, IntPtr pbUID, uint dwSector, IntPtr pbCodedKey);
К примеру, UID - это массив байт, в IntPrt перевожу его так:
var pbUID = Marshal.AllocHGlobal(UID.Length);
Marshal.Copy(UID, 0, pbUID, UID.Length);
С остальными типами, вроде всё понятно.
В итоге при вызове функции получаю ошибку: Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена.
Есть подозрения что это что-то с pbCodedKey. Это ключ авторизации. Его получаю я другой функцией:
[DllImport(ClscrflDll)]
public static extern uint CLSCRF_MifareStandard_HostCodeKey(IntPtr pReader, IntPtr pbUncoded, ref IntPtr pbCoded);
///----------
byte[] key = new byte[6] { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
var pbKey = Marshal.AllocHGlobal(key.Length);
Marshal.Copy(key, 0, pbKey, key.Length);
var _key = Marshal.AllocHGlobal(12);
var err = Clscrfl.CLSCRF_MifareStandard_HostCodeKey(pReader, pbKey, ref _key);
Её описание:
LONG CLSCRF_MifareStandard_HostCodeKey( IN LPVOID pReader,
IN LPBYTE pbUncoded,
OUT LPBYTE pbCoded );
В чём может быть проблема, хотя бы примерно?
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Можно ли отправить e-mail серверу проверочный запрос, что б подтвердить существование ящика? (Без авторизации)Поддерживают ли mail-сервера такую...
Когда я select делаю в Server я ловлю ошибку в catch ORA-00936: missing expression: