3.1.4.4.5 LsarSetInformationPolicy2 (Opnum 47)
The LsarSetInformationPolicy2 method is invoked to set a policy on the server.
-
NTSTATUS LsarSetInformationPolicy2( [in] LSAPR_HANDLE PolicyHandle, [in] POLICY_INFORMATION_CLASS InformationClass, [in, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION PolicyInformation );
PolicyHandle: An RPC context handle obtained from either LsarOpenPolicy or LsarOpenPolicy2.
InformationClass: A parameter that specifies what type of information the caller is setting.
PolicyInformation: Data that represents policy being set.
Return Values: The following is a summary of the return values that an implementation MUST return, as specified by the message processing that follows.
-
Return value/code
Description
0x00000000
STATUS_SUCCESS
The request was successfully completed.
0xC0000022
STATUS_ACCESS_DENIED
The caller does not have the permissions to perform this operation.
0xC000000D
STATUS_INVALID_PARAMETER
One of the parameters is incorrect. For instance, this can happen if InformationClass is not supported or some of the supplied policy data is invalid.
0xC0000002
STATUS_NOT_IMPLEMENTED
This information class cannot be set.
0xC0000008
STATUS_INVALID_HANDLE
PolicyHandle is not a valid handle.
Processing:
PolicyHandle MUST reference a context that was granted an access commensurate with the InformationClass value requested. If PolicyHandle is not a valid context handle or PolicyHandle.HandleType does not equal "Policy", the server MUST return STATUS_INVALID_HANDLE. If the context does not have sufficient access, the server MUST return STATUS_ACCESS_DENIED.
The server MUST verify that PolicyHandle grants access as specified in section 3.1.4.2.2. The following table specifies the RequiredAccess value to use in this access check for each InformationClass value or indicates if no processing is supported, regardless of access granted.
InformationClass value |
RequiredAccess value |
---|---|
PolicyAuditLogInformation |
POLICY_AUDIT_LOG_ADMIN |
PolicyAuditEventsInformation |
POLICY_SET_AUDIT_REQUIREMENTS |
PolicyPrimaryDomainInformation |
POLICY_TRUST_ADMIN |
PolicyPdAccountInformation |
Not applicable: This information class cannot be set; the request MUST fail with STATUS_INVALID_PARAMETER. |
PolicyAccountDomainInformation |
Not applicable: This information class cannot be set; the request MUST fail with STATUS_INVALID_PARAMETER. |
PolicyLsaServerRoleInformation |
POLICY_SERVER_ADMIN |
PolicyReplicaSourceInformation |
POLICY_SERVER_ADMIN |
PolicyModificationInformation |
Not applicable: This information class cannot be set; the request MUST fail with STATUS_INVALID_PARAMETER. |
PolicyAuditFullSetInformation |
Not applicable: This information class cannot be set; the request MUST fail with STATUS_INVALID_PARAMETER. |
PolicyAuditFullQueryInformation |
Not applicable: This information class cannot be set; the request MUST fail with STATUS_INVALID_PARAMETER. |
PolicyDnsDomainInformation |
POLICY_TRUST_ADMIN |
PolicyDnsDomainInformationInt |
POLICY_TRUST_ADMIN |
PolicyLocalAccountDomainInformation |
POLICY_TRUST_ADMIN |
PolicyMachineAccountInformation |
POLICY_TRUST_ADMIN |
The InformationClass parameter can take on any value in the POLICY_INFORMATION_CLASS enumeration range. For all values outside this range, the server MUST return the STATUS_INVALID_PARAMETER error code.
The PolicyInformation parameter contains the data that the caller wishes to set, based on the value of the InformationClass parameter. The server MUST update its abstract data model, specified in section 3.1.1.1, as follows.
Value of InformationClass parameter |
Information updated in abstract data model |
---|---|
PolicyAuditLogInformation |
Server MUST return the STATUS_NOT_IMPLEMENTED error code because this is not a policy element that can be set. |
PolicyAuditEventsInformation |
Event Auditing Options. |
PolicyPrimaryDomainInformation |
Primary Domain Information. |
PolicyPdAccountInformation |
Server MUST return STATUS_INVALID_PARAMETER because this is not a policy element that can be set. |
PolicyAccountDomainInformation |
On a domain controller, the server MUST fail this request with the STATUS_INVALID_PARAMETER. On non-domain controllers: Account Domain Information. |
PolicyLsaServerRoleInformation |
Server Role Information. |
PolicyReplicaSourceInformation |
Replica Source Information. |
PolicyModificationInformation |
Server MUST return STATUS_INVALID_PARAMETER because this is not a policy element that can be set. |
PolicyAuditFullSetInformation |
ShutDownOnFull field of Audit Full Information.<65> |
PolicyAuditFullQueryInformation |
Server MUST record STATUS_INVALID_PARAMETER because this is not a policy element that can be set. |
PolicyDnsDomainInformation |
DNS Domain Information.<66> |
PolicyDnsDomainInformationInt |
DNS Domain Information. |
PolicyLocalAccountDomainInformation |
Account Domain Information. |
PolicyMachineAccountInformation |
Machine Account Information. |