Esempio n. 1
0
        private DongleUserInfoStru CreateUserInfoStru(DongleUserInfo keyInfo)
        {
            DongleUserInfoStru stru = new DongleUserInfoStru();

            stru.DongleType = (byte)keyInfo.DongleType;
            stru.UserId     = ArrayUtil.CopyFrom(this.encoder.GetBytes(keyInfo.UserId), 6);
            stru.UserName   = ArrayUtil.CopyFrom(this.encoder.GetBytes(keyInfo.UserName), 64);
            stru.CreateDate = ArrayUtil.CopyFrom(this.encoder.GetBytes(keyInfo.CreateDate), 14);
            stru.Operator   = ArrayUtil.CopyFrom(this.encoder.GetBytes(keyInfo.Operator), 3);
            return(stru);
        }
        private DongleUserInfo ParseDongleKeyInfo(byte[] buffer)
        {
            DongleUserInfoStru keyInfoStru = ByteUtil.CopyToStru <DongleUserInfoStru>(buffer);
            DongleUserInfo     keyInfo     = new DongleUserInfo();

            keyInfo.DongleType = (DongleType)keyInfoStru.DongleType;
            keyInfo.UserId     = encoder.GetString(keyInfoStru.UserId);
            keyInfo.UserName   = encoder.GetString(keyInfoStru.UserName).TrimEnd('\0');
            keyInfo.Operator   = encoder.GetString(keyInfoStru.Operator);
            keyInfo.CreateDate = encoder.GetString(keyInfoStru.CreateDate);

            return(keyInfo);
        }
Esempio n. 3
0
        public bool CreateUserInfo(DONGLE_HANDLER hDongle, DongleUserInfo userInfo)
        {
            if (!CreateUserInfoFile(hDongle))
            {
                return(false);
            }

            DongleUserInfoStru stru = CreateUserInfoStru(userInfo);

            IntPtr ptr = IntPtrUtil.CreateByStru(stru);

            byte[] dest = new byte[IntPtrUtil.SizeOf(stru.GetType())];

            Marshal.Copy(ptr, dest, 0, dest.Length);
            this.lastErrorCode = Dongle_WriteFile(
                hDongle,
                RockeyArmFileType.FILE_DATA,
                DongleConst.USER_INFO_DESCRIPTOR,
                0,
                dest,
                dest.Length);
            IntPtrUtil.Free(ref ptr);
            return(IsSucc);
        }