/// <summary>
        /// Sets a new protocol specific parameter. Please see the documentation of the protocols before setting any parameter.
        /// </summary>
        /// <param name="deviceId">Id of device to change</param>
        /// <param name="name">The name of the parameter to change</param>
        /// <param name="value">The new value for the parameter</param>
        /// <returns>Success or error code</returns>
        public static unsafe bool tdSetDeviceParameter(int deviceId, string name, string value)
        {
            char *nameChar    = stringToChar(name);
            char *valueChar   = stringToChar(value);
            bool  returnValue = UnmanagedImport.tdSetDeviceParameter(deviceId, nameChar, valueChar);

            Marshal.FreeHGlobal((IntPtr)nameChar);
            Marshal.FreeHGlobal((IntPtr)valueChar);
            return(returnValue);
        }