Пример #1
0
 public byte[] GetSignature()
 {
     byte[] Data;
     m_unmanagedVariable.GetSignature(0, out var cData, null);
     Data = new byte[cData];
     m_unmanagedVariable.GetSignature(cData, out cData, Data);
     return(Data);
 }
Пример #2
0
        /// <summary>
        /// Gets the variable signature
        /// </summary>
        /// <returns>The signature blob</returns>
        public byte[] GetSignature()
        {
            int sgLen;

            private_variable.GetSignature(0, out sgLen, null);
            byte[] retVal = new byte[sgLen];
            private_variable.GetSignature(sgLen, out sgLen, retVal);
            return(retVal);
        }
Пример #3
0
        public byte[] GetSignature()
        {
            uint bufSize;

            variable.GetSignature(0, out bufSize, null);
            var buffer = new byte[bufSize];

            variable.GetSignature((uint)buffer.Length, out bufSize, buffer);
            return(buffer);
        }
Пример #4
0
        internal static byte[] ToLocalSignature(this ISymUnmanagedVariable variable)
        {
            int n;

            variable.GetSignature(0, out n, null);
            var bytes = new byte[n];

            variable.GetSignature(n, out n, bytes);
            return(bytes);
        }
Пример #5
0
        public byte[] GetSignature()
        {
            int size;

            HRESULT.ThrowOnFailure(_unmanaged.GetSignature(0, out size, null));
            byte[] data = new byte[size];
            HRESULT.ThrowOnFailure(_unmanaged.GetSignature(data.Length, out size, data));

            return(data);
        }
Пример #6
0
        public byte[] GetSignature()
        {
            byte[] data;
            int    cData;

            unmanagedVariable.GetSignature(0, out cData, null);
            data = new byte[cData];
            unmanagedVariable.GetSignature(cData, out cData, data);
            return(data);
        }
        public static unsafe byte[] GetSignature(this ISymUnmanagedVariable symVar)
        {
            byte[] sig = new byte[defaultSigSize];
            uint   acualSize;

            fixed(byte *pSig = sig)
            symVar.GetSignature((uint)sig.Length, out acualSize, new IntPtr(pSig));

            Array.Resize(ref sig, (int)acualSize);
            if (acualSize > defaultSigSize)
                fixed(byte *pSig = sig)
                symVar.GetSignature((uint)sig.Length, out acualSize, new IntPtr(pSig));
            return(sig);
        }
Пример #8
0
        public static void ValidateVariable(ISymUnmanagedVariable variable, string name, int slot, LocalVariableAttributes attributes, byte[] signature)
        {
            int length, length2;

            // name:
            Assert.Equal(HResult.S_OK, variable.GetName(0, out length, null));
            Assert.Equal(name.Length + 1, length);
            var actualName = new char[length];

            Assert.Equal(HResult.S_OK, variable.GetName(length, out length2, actualName));
            Assert.Equal(length, length2);
            Assert.Equal(name + "\0", new string(actualName));

            int value;

            Assert.Equal(HResult.S_OK, variable.GetAddressField1(out value));
            Assert.Equal(slot, value);

            Assert.Equal(HResult.E_NOTIMPL, variable.GetAddressField2(out value));
            Assert.Equal(HResult.E_NOTIMPL, variable.GetAddressField3(out value));
            Assert.Equal(HResult.E_NOTIMPL, variable.GetStartOffset(out value));
            Assert.Equal(HResult.E_NOTIMPL, variable.GetEndOffset(out value));

            Assert.Equal(HResult.S_OK, variable.GetAttributes(out value));
            Assert.Equal(attributes, (LocalVariableAttributes)value);

            Assert.Equal(HResult.S_OK, variable.GetAddressKind(out value));
            Assert.Equal(1, value);

            Assert.Equal(HResult.S_OK, variable.GetSignature(0, out length, null));
            var actualSignature = new byte[length];

            Assert.Equal(HResult.S_OK, variable.GetSignature(length, out length2, actualSignature));
            Assert.Equal(length, length2);
            AssertEx.Equal(signature, actualSignature);
        }
Пример #9
0
        public static void ValidateVariable(ISymUnmanagedVariable variable, string name, int slot, LocalVariableAttributes attributes, byte[] signature)
        {
            int length, length2;

            // name:
            Assert.Equal(HResult.S_OK, variable.GetName(0, out length, null));
            Assert.Equal(name.Length + 1, length);
            var actualName = new char[length];
            Assert.Equal(HResult.S_OK, variable.GetName(length, out length2, actualName));
            Assert.Equal(length, length2);
            Assert.Equal(name + "\0", new string(actualName));

            int value;
            Assert.Equal(HResult.S_OK, variable.GetAddressField1(out value));
            Assert.Equal(slot, value);

            Assert.Equal(HResult.E_NOTIMPL, variable.GetAddressField2(out value));
            Assert.Equal(HResult.E_NOTIMPL, variable.GetAddressField3(out value));
            Assert.Equal(HResult.E_NOTIMPL, variable.GetStartOffset(out value));
            Assert.Equal(HResult.E_NOTIMPL, variable.GetEndOffset(out value));

            Assert.Equal(HResult.S_OK, variable.GetAttributes(out value));
            Assert.Equal(attributes, (LocalVariableAttributes)value);

            Assert.Equal(HResult.S_OK, variable.GetAddressKind(out value));
            Assert.Equal(1, value);

            Assert.Equal(HResult.S_OK, variable.GetSignature(0, out length, null));
            var actualSignature = new byte[length];
            Assert.Equal(HResult.S_OK, variable.GetSignature(length, out length2, actualSignature));
            Assert.Equal(length, length2);
            AssertEx.Equal(signature, actualSignature);
        }