PowerWriteFriendlyName (powrprof)
Last changed: -186.212.44.26

.
Summary
Sets the friendly name for the specified power setting, subgroup, or scheme

C# Signature:

[DllImport("powrprof.dll", SetLastError=true, CharSet=CharSet.Unicode)]
    public static extern UInt32 PowerWriteFriendlyName(
            IntPtr RootPowerKey,
            ref Guid SchemeGuid,
            IntPtr SubGroupOfPowerSettingGuid,
            IntPtr PowerSettingGuid,
            String Buffer,
            UInt32 BufferSize);

VB Signature:

Declare Function PowerWriteFriendlyName Lib "powrprof.dll" (TODO) As TODO

User-Defined Types:

None.

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

This function is only available from Vista.

Tips & Tricks:

Please add some!

Sample Code:

    static Boolean powerWriteFriendlyName(Guid powerPlanId, string name)
    {
        // The string must be null-terminated. A non null-terminated string will append junk characters on Windows Vista.
        name = name + char.MinValue;
        uint BufferSize = (uint)System.Text.ASCIIEncoding.Unicode.GetByteCount(name);

        uint set = NativeMethods.PowerWriteFriendlyName(IntPtr.Zero, ref powerPlanId, IntPtr.Zero, IntPtr.Zero, name, BufferSize);

        if (set == 0) //verify if the value has been set successfuly
        return true;
        else
        return false;
    }

Documentation