/// <summary> /// Convert a byte array to a REGISTERMAP structure. /// </summary> /// /// <param name="byteArray"> Buffer to convert. </param> /// /// <returns> REGISTERMAP structure. </returns> internal REGISTERMAP ByteArrayToStructure(ref Byte[] byteArray) { Int32 size; REGISTERMAP strRegister = new REGISTERMAP(0); IntPtr ptr; size = Marshal.SizeOf(strRegister); ptr = Marshal.AllocHGlobal(size); Marshal.Copy(byteArray, 0, ptr, size); strRegister = (REGISTERMAP)Marshal.PtrToStructure(ptr, strRegister.GetType()); Marshal.FreeHGlobal(ptr); return strRegister; }
/// <summary> /// Convert a REGISTERMAP structure to a byte array. /// </summary> /// /// <param name="strRegister"> REGISTERMAP struct to convert. </param> /// /// <returns> Byte-Array. </returns> internal Byte[] StructureToByteArray(ref REGISTERMAP strRegister) { Int32 size; Byte[] byteArray; size = Marshal.SizeOf(strRegister); byteArray = new Byte[size]; IntPtr ptr = Marshal.AllocHGlobal(size); Marshal.StructureToPtr(strRegister, ptr, true); Marshal.Copy(ptr, byteArray, 0, size); Marshal.FreeHGlobal(ptr); return byteArray; }
/// <summary> /// Reset settings to a defined default. /// </summary> internal void ResetSettings() { regConfig = new REGISTERMAP(0x00); WriteConfiguration(); ReadConfiguration(); }