/// <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()); } }
public Privilege(LuidAndAttributes laa) : this(null, laa.Luid, laa.Attributes) { }