private T?GetWithFlag <T>(Func <T> getFunc, JobObjectLimitFlags flag) where T : struct { if (_basicLimitInformation.LimitFlags.HasFlag(flag)) { return(getFunc()); } return(null); }
private void SetFlag(JobObjectLimitFlags flag, bool set) { if (set) { _basicLimitInformation.LimitFlags |= flag; } else { _basicLimitInformation.LimitFlags &= ~flag; } }
private void SetWithFlag <T>(Action <T> setAction, T?value, JobObjectLimitFlags flag) where T : struct { if (value == null) { _basicLimitInformation.LimitFlags &= ~flag; } else { _basicLimitInformation.LimitFlags |= flag; setAction(value.Value); } }
/// <summary> /// Set the limit flags for the job. /// </summary> /// <param name="flags">The limit flags.</param> public void SetLimitFlags(JobObjectLimitFlags flags) { if ((flags & JobObjectLimitFlags.Application) != 0) { JobObjectExtendedExtendedLimitInformation info = new JobObjectExtendedExtendedLimitInformation(); info.ExtendedLimitInformation.BasicLimitInformation.LimitFlags = flags; SetInfo(JobObjectInformationClass.JobObjectExtendedLimitInformation, info); } else { JobObjectExtendedLimitInformation info = new JobObjectExtendedLimitInformation(); info.BasicLimitInformation.LimitFlags = flags; SetInfo(JobObjectInformationClass.JobObjectExtendedLimitInformation, info); } }
/// <summary> /// Set the limit flags for the job. /// </summary> /// <param name="flags">The limit flags.</param> /// <param name="throw_on_error">True to throw on error.</param> /// <returns>The NT status code.</returns> public NtStatus SetLimitFlags(JobObjectLimitFlags flags, bool throw_on_error) { if (flags.HasFlag(JobObjectLimitFlags.Application)) { return(SetExtendedLimitInformationV2(i => { i.BasicLimitInformation.LimitFlags = flags; return i; }, throw_on_error)); } else { return(SetExtendedLimitInformation(i => { i.BasicLimitInformation.LimitFlags = flags; return i; }, throw_on_error)); } }
/// <summary> /// Set the limit flags for the job. /// </summary> /// <param name="flags">The limit flags.</param> public void SetLimitFlags(JobObjectLimitFlags flags) { SetLimitFlags(flags, true); }
private bool HasFlag(JobObjectLimitFlags flag) { return(_basicLimitInformation.LimitFlags.HasFlag(flag)); }