Example #1
0
 private T?GetWithFlag <T>(Func <T> getFunc, JobObjectLimitFlags flag) where T : struct
 {
     if (_basicLimitInformation.LimitFlags.HasFlag(flag))
     {
         return(getFunc());
     }
     return(null);
 }
Example #2
0
 private void SetFlag(JobObjectLimitFlags flag, bool set)
 {
     if (set)
     {
         _basicLimitInformation.LimitFlags |= flag;
     }
     else
     {
         _basicLimitInformation.LimitFlags &= ~flag;
     }
 }
Example #3
0
 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);
 }
Example #7
0
 private bool HasFlag(JobObjectLimitFlags flag)
 {
     return(_basicLimitInformation.LimitFlags.HasFlag(flag));
 }