ntdll: Add a stub for RtlSetControlSecurityDescriptor.
Implement SetSecurityDescriptorControl on top of RtlSetControlSecurityDescriptor.
diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
index 4cab225..82de97b 100644
--- a/dlls/advapi32/security.c
+++ b/dlls/advapi32/security.c
@@ -1363,6 +1363,17 @@
return set_ntstatus( RtlGetControlSecurityDescriptor(pSecurityDescriptor,pControl,lpdwRevision));
}
+/******************************************************************************
+ * SetSecurityDescriptorControl [ADVAPI32.@]
+ */
+BOOL WINAPI SetSecurityDescriptorControl( PSECURITY_DESCRIPTOR pSecurityDescriptor,
+ SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest,
+ SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet )
+{
+ return set_ntstatus( RtlSetControlSecurityDescriptor(
+ pSecurityDescriptor, ControlBitsOfInterest, ControlBitsToSet ) );
+}
+
/* ##############################
###### ACL FUNCTIONS ######
##############################
@@ -3077,16 +3088,6 @@
return TRUE;
}
-BOOL WINAPI SetSecurityDescriptorControl( PSECURITY_DESCRIPTOR pSecurityDescriptor,
- SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest,
- SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet )
-{
- FIXME("%p 0x%08x 0x%08x - stub\n", pSecurityDescriptor, ControlBitsOfInterest,
- ControlBitsToSet);
-
- return TRUE;
-}
-
BOOL WINAPI AreAllAccessesGranted( DWORD GrantedAccess, DWORD DesiredAccess )
{
return RtlAreAllAccessesGranted( GrantedAccess, DesiredAccess );
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 30c6ab3..fc1a6c8 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -813,7 +813,7 @@
@ stdcall RtlSetAllBits(ptr)
# @ stub RtlSetAttributesSecurityDescriptor
@ stdcall RtlSetBits(ptr long long)
-# @ stub RtlSetControlSecurityDescriptor
+@ stdcall RtlSetControlSecurityDescriptor(ptr long long)
@ stdcall RtlSetCriticalSectionSpinCount(ptr long)
@ stdcall RtlSetCurrentDirectory_U(ptr)
@ stdcall RtlSetCurrentEnvironment(wstr ptr)
diff --git a/dlls/ntdll/sec.c b/dlls/ntdll/sec.c
index a1c839d..0a9fa5c 100644
--- a/dlls/ntdll/sec.c
+++ b/dlls/ntdll/sec.c
@@ -1030,6 +1030,19 @@
return STATUS_SUCCESS;
}
+/******************************************************************************
+ * RtlSetControlSecurityDescriptor (NTDLL.@)
+ */
+NTSTATUS WINAPI RtlSetControlSecurityDescriptor(
+ PSECURITY_DESCRIPTOR SecurityDescriptor,
+ SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest,
+ SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet)
+{
+ FIXME("(%p 0x%08x 0x%08x): stub\n", SecurityDescriptor, ControlBitsOfInterest,
+ ControlBitsToSet);
+ return STATUS_SUCCESS;
+}
+
/**************************************************************************
* RtlAbsoluteToSelfRelativeSD [NTDLL.@]
diff --git a/include/winternl.h b/include/winternl.h
index df3a489..7ed801a 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -2221,6 +2221,7 @@
void WINAPI RtlSetAllBits(PRTL_BITMAP);
void WINAPI RtlSetBits(PRTL_BITMAP,ULONG,ULONG);
ULONG WINAPI RtlSetCriticalSectionSpinCount(RTL_CRITICAL_SECTION*,ULONG);
+NTSTATUS WINAPI RtlSetControlSecurityDescriptor(PSECURITY_DESCRIPTOR,SECURITY_DESCRIPTOR_CONTROL,SECURITY_DESCRIPTOR_CONTROL);
NTSTATUS WINAPI RtlSetCurrentDirectory_U(const UNICODE_STRING*);
void WINAPI RtlSetCurrentEnvironment(PWSTR, PWSTR*);
NTSTATUS WINAPI RtlSetDaclSecurityDescriptor(PSECURITY_DESCRIPTOR,BOOLEAN,PACL,BOOLEAN);