NTSTATUS SetQuotaLimits()

in Silhouette/Utils.cpp [172:186]


NTSTATUS SetQuotaLimits(HANDLE hProcess)
{
    QUOTA_LIMITS_EX quotaLimits = { 0, };

    if (KeGetCurrentIrql() > PASSIVE_LEVEL)
    {
        return STATUS_INVALID_STATE_TRANSITION;
    }

    // Cap LSASS working set
    quotaLimits.WorkingSetLimit = 5 * 1024 * 1024;
    quotaLimits.Flags = QUOTA_LIMITS_HARDWS_MAX_ENABLE;

    return ZwSetInformationProcess(hProcess, ProcessQuotaLimits, &quotaLimits, sizeof(quotaLimits));
}