public static bool ChangeServiceDescription(IntPtr Handle, string description)
        {
            try
            {
                SERVICE_DESCRIPTION sd = new SERVICE_DESCRIPTION();
                sd.Description = description;

                const int cbBufSize = 8 * 1024;

                IntPtr lpMemory = Marshal.AllocHGlobal((int)cbBufSize);
                Marshal.StructureToPtr(sd, lpMemory, false);

                bool result = NativeServiceFunctions.ChangeServiceConfig2(Handle, SC_SERVICE_CONFIG.SERVICE_CONFIG_DESCRIPTION, lpMemory);

                Marshal.FreeHGlobal(lpMemory);

                return result;
            }
            catch(Exception e)
            {
                Log.Error("ChangeServiceDescription() failed", e);
                return false;
            }
        }