Implement LsarSetServerRole, LsarSetModification and LsarSetAuditFull. 

svn path=/trunk/; revision=57832
This commit is contained in:
Eric Kohl 2012-12-08 23:12:30 +00:00
parent fe2af27884
commit 359c37fdf9

View file

@ -238,7 +238,7 @@ LsarQueryPrimaryDomain(PLSA_DB_OBJECT PolicyObject,
Done: Done:
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
if (p) if (p != NULL)
{ {
if (p->Name.Buffer) if (p->Name.Buffer)
MIDL_user_free(p->Name.Buffer); MIDL_user_free(p->Name.Buffer);
@ -886,8 +886,12 @@ NTSTATUS
LsarSetServerRole(PLSA_DB_OBJECT PolicyObject, LsarSetServerRole(PLSA_DB_OBJECT PolicyObject,
PPOLICY_LSA_SERVER_ROLE_INFO Info) PPOLICY_LSA_SERVER_ROLE_INFO Info)
{ {
FIXME("\n"); TRACE("(%p %p)\n", PolicyObject, Info);
return STATUS_NOT_IMPLEMENTED;
return LsapSetObjectAttribute(PolicyObject,
L"PolSrvRo",
Info,
sizeof(POLICY_LSA_SERVER_ROLE_INFO));
} }
@ -917,8 +921,12 @@ NTSTATUS
LsarSetModification(PLSA_DB_OBJECT PolicyObject, LsarSetModification(PLSA_DB_OBJECT PolicyObject,
PPOLICY_MODIFICATION_INFO Info) PPOLICY_MODIFICATION_INFO Info)
{ {
FIXME("\n"); TRACE("(%p %p)\n", PolicyObject, Info);
return STATUS_NOT_IMPLEMENTED;
return LsapSetObjectAttribute(PolicyObject,
L"PolMod",
Info,
sizeof(POLICY_MODIFICATION_INFO));
} }
@ -926,8 +934,36 @@ NTSTATUS
LsarSetAuditFull(PLSA_DB_OBJECT PolicyObject, LsarSetAuditFull(PLSA_DB_OBJECT PolicyObject,
PPOLICY_AUDIT_FULL_QUERY_INFO Info) PPOLICY_AUDIT_FULL_QUERY_INFO Info)
{ {
FIXME("\n"); PPOLICY_AUDIT_FULL_QUERY_INFO AuditFullInfo = NULL;
return STATUS_NOT_IMPLEMENTED; ULONG AttributeSize;
NTSTATUS Status;
TRACE("(%p %p)\n", PolicyObject, Info);
AttributeSize = sizeof(POLICY_AUDIT_FULL_QUERY_INFO);
AuditFullInfo = MIDL_user_allocate(AttributeSize);
if (AuditFullInfo == NULL)
return STATUS_INSUFFICIENT_RESOURCES;
Status = LsapGetObjectAttribute(PolicyObject,
L"PolAdtFl",
AuditFullInfo,
&AttributeSize);
if (!NT_SUCCESS(Status))
goto done;
AuditFullInfo->ShutDownOnFull = Info->ShutDownOnFull;
Status = LsapSetObjectAttribute(PolicyObject,
L"PolAdtFl",
AuditFullInfo,
AttributeSize);
done:
if (AuditFullInfo != NULL)
MIDL_user_free(AuditFullInfo);
return Status;
} }