NtSetSystemInformation (ntdll)
Last changed: -176.88.91.74

.
Summary
Change Windows System parameters

C# Signature:

/// <summary>Change Windows System parameters</summary>
/// <param name="InfoClass"></param>
/// <param name="Info"></param>
/// <param name="Length">Allocated bytes for the Info block</param>
/// <returns>Opposite of boolean.  Zero means success, non-zero means fail and use GetLastError</returns>
[DllImport("ntdll.dll")]
static extern UInt32 NtSetSystemInformation(NtSystemInformation.SYSTEM_INFORMATION_CLASS InfoClass, IntPtr Info, UInt32 Length);

VB Signature:

Declare Function NtSetSystemInformation Lib "ntdll.dll" (TODO) As TODO

User-Defined Types:

None.

Enum:

http://www.pinvoke.net/default.aspx/ntdll.SYSTEM_INFORMATION_CLASS

Notes:

This works in the same manner as NtQuerySystemInformation.

Tips & Tricks:

Please add some!

Sample Code:

/// <summary></summary>
/// <param name="InfoClass"></param>
/// <param name="Info"></param>
public static void SetSystemInformation(NtSystemInformation.SYSTEM_INFORMATION_CLASS InfoClass, IntPtr Info, UInt32 Length)
{
    UInt32
        result = NtSetSystemInformationKernel(InfoClass, Info, Length);
    if (result != 0)
        throw new Win32Exception();
}

Documentation