示例#1
0
        public virtual StorApiStatus GetAC55(byte feat, byte parm1, ref uint value)
        {
            StorApiStatus storApiStatus = StorApiStatusEnum.STOR_NO_ERROR;

            storApiStatus = this.EnableVSC(true);
            if (storApiStatus != StorApiStatusEnum.STOR_NO_ERROR)
            {
                return(storApiStatus);
            }
            ATACmdInfo atacmdInfo = new ATACmdInfo();

            atacmdInfo.datalen      = 512u;
            atacmdInfo.registers[0] = 214;
            atacmdInfo.registers[1] = 1;
            atacmdInfo.registers[2] = 190;
            atacmdInfo.registers[3] = 79;
            atacmdInfo.registers[4] = 194;
            atacmdInfo.registers[6] = 176;
            KEY_SECT t = new KEY_SECT
            {
                ActionCode   = 55,
                FunctionCode = 11,
                Parm1        = 48879,
                Parm2        = 57005,
                Parm3        = (ushort)feat,
                Parm4        = (ushort)parm1
            };

            atacmdInfo.data = Ata.StructToByteArray <KEY_SECT>(t, 512);
            storApiStatus   = this.ATACmd(ref atacmdInfo);
            if (storApiStatus != StorApiStatusEnum.STOR_NO_ERROR)
            {
                this.EnableVSC(false);
                return(storApiStatus);
            }
            atacmdInfo.datalen      = 512u;
            atacmdInfo.registers[0] = 213;
            atacmdInfo.registers[1] = 1;
            atacmdInfo.registers[2] = 191;
            atacmdInfo.registers[3] = 79;
            atacmdInfo.registers[4] = 194;
            atacmdInfo.registers[6] = 176;
            atacmdInfo.data         = new byte[512];
            storApiStatus           = this.ATACmd(ref atacmdInfo);
            if (storApiStatus != StorApiStatusEnum.STOR_NO_ERROR)
            {
                this.EnableVSC(false);
                return(storApiStatus);
            }
            value = Ata.ByteArrayToStruct <FEAT_ID>(atacmdInfo.data).Data;
            this.EnableVSC(false);
            return(storApiStatus);
        }
示例#2
0
        public virtual StorApiStatus SetAC55(byte feat, byte parm1, byte type, byte size, uint value)
        {
            StorApiStatus storApiStatus = StorApiStatusEnum.STOR_NO_ERROR;

            storApiStatus = this.EnableVSC(true);
            if (storApiStatus != StorApiStatusEnum.STOR_NO_ERROR)
            {
                return(storApiStatus);
            }
            ATACmdInfo atacmdInfo = new ATACmdInfo();

            atacmdInfo.datalen      = 512u;
            atacmdInfo.registers[0] = 214;
            atacmdInfo.registers[1] = 1;
            atacmdInfo.registers[2] = 190;
            atacmdInfo.registers[3] = 79;
            atacmdInfo.registers[4] = 194;
            atacmdInfo.registers[6] = 176;
            KEY_SECT t = new KEY_SECT
            {
                ActionCode   = 55,
                FunctionCode = 2,
                Parm1        = 48879,
                Parm2        = 57005,
                Parm3        = (ushort)feat,
                Parm4        = (ushort)parm1,
                Parm5        = (ushort)type,
                Parm6        = (ushort)size,
                Parm7        = (ushort)value
            };

            atacmdInfo.data = Ata.StructToByteArray <KEY_SECT>(t, 512);
            storApiStatus   = this.ATACmd(ref atacmdInfo);
            if (storApiStatus != StorApiStatusEnum.STOR_NO_ERROR)
            {
                this.EnableVSC(false);
                return(storApiStatus);
            }
            this.EnableVSC(false);
            return(storApiStatus);
        }