コード例 #1
0
 /// <summary>
 /// Get token privileges.
 /// </summary>
 /// <param name="throw_on_error">True to throw on error.</param>
 /// <returns>The list of privileges.</returns>
 public NtResult <TokenPrivilege[]> GetPrivileges(bool throw_on_error)
 {
     using (var result = QueryBuffer <TokenPrivileges>(AUTHZ_CONTEXT_INFORMATION_CLASS.AuthzContextInfoPrivileges, throw_on_error)) {
         if (!result.IsSuccess)
         {
             return(result.Cast <TokenPrivilege[]>());
         }
         var buffer = result.Result;
         int count  = buffer.Result.PrivilegeCount;
         LuidAndAttributes[] attrs = new LuidAndAttributes[count];
         buffer.Data.ReadArray(0, attrs, 0, count);
         return(attrs.Select(a => new TokenPrivilege(a.Luid, a.Attributes)).ToArray().CreateResult());
     }
 }
コード例 #2
0
 public Privilege(LuidAndAttributes laa)
     : this(null, laa.Luid, laa.Attributes)
 {
 }