EmptyWorkingSet (psapi)
Last changed: -97.87.142.55

.
Summary
EmptyWorkingSet wherever possible moves an applications pages from RAM to the page file, therefore freeing physical RAM. Good for giving you a bit more memory for the programs you need when Windows doesn't free up memory from something that has been sitting idle for hours.

EpicAndrew is an Epic Idiot!

C# Signature:

[DllImport("psapi")]
public static extern bool EmptyWorkingSet(long hProcess);

VB Signature:

'Sorry - not tested yet

User-Defined Types:

None.

Alternative Managed API:

System.Diagnostics.Process.MaxWorkingSet and System.Diagnostics.Process.MinWorkingSet are similar but are used to set thresholds rather than just free whatever can be freed.

Notes:

Tips & Tricks:

Please add some!

Sample Code:

    public static bool TrimWSByProcess(Process process)
    {
        bool _result = false; //assume failed

        try
        {
            if (process != null)
            { //only continue if we have a process
                long _workingSet = process.WorkingSet64;

                //trim working set
                _result = PsapiHelper.EmptyWorkingSet((long)process.Handle);

                //check result
                if (_result)
                { //sucessfully trimed

                }
                else
                { //failed to trim

                }
            }
            else
            { //no process passed in

            }
        }
        catch (Exception ex)
        { //exception occured. Do some error handling
            _result = false;
            throw; //throw the error in this case.
        }

        return _result;
    }

Documentation