diff --git a/reactos/include/ndk/rtlfuncs.h b/reactos/include/ndk/rtlfuncs.h index 8d1592fd9a9..3dca19ae71b 100644 --- a/reactos/include/ndk/rtlfuncs.h +++ b/reactos/include/ndk/rtlfuncs.h @@ -539,6 +539,14 @@ RtlSelfRelativeToAbsoluteSD( IN PULONG PrimaryGroupSize ); +NTSYSAPI +NTSTATUS +NTAPI +RtlSelfRelativeToAbsoluteSD2( + IN OUT PSECURITY_DESCRIPTOR SelfRelativeSD, + OUT PULONG BufferSize +); + NTSYSAPI NTSTATUS NTAPI diff --git a/reactos/lib/advapi32/advapi32.def b/reactos/lib/advapi32/advapi32.def index dd6fc809d4e..e201590d073 100644 --- a/reactos/lib/advapi32/advapi32.def +++ b/reactos/lib/advapi32/advapi32.def @@ -413,7 +413,7 @@ MD5Update@12 ;MSChapSrvChangePassword ;MSChapSrvChangePassword2 MakeAbsoluteSD@44 -;MakeAbsoluteSD2 +MakeAbsoluteSD2@8 MakeSelfRelativeSD@12 MapGenericMask@8=NTDLL.RtlMapGenericMask NotifyBootConfigStatus@4 diff --git a/reactos/lib/advapi32/sec/sec.c b/reactos/lib/advapi32/sec/sec.c index b77b1233217..f1928f1b1d7 100644 --- a/reactos/lib/advapi32/sec/sec.c +++ b/reactos/lib/advapi32/sec/sec.c @@ -268,6 +268,28 @@ MakeAbsoluteSD ( } +/* + * @implemented + */ +BOOL +STDCALL +MakeAbsoluteSD2(IN OUT PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, + OUT LPDWORD lpdwBufferSize) +{ + NTSTATUS Status; + + Status = RtlSelfRelativeToAbsoluteSD2(pSelfRelativeSecurityDescriptor, + lpdwBufferSize); + if (!NT_SUCCESS(Status)) + { + SetLastError (RtlNtStatusToDosError (Status)); + return FALSE; + } + + return TRUE; +} + + /* * @implemented */ diff --git a/reactos/lib/ntdll/def/ntdll.def b/reactos/lib/ntdll/def/ntdll.def index 4cf36dcbe20..61a2bb7861b 100644 --- a/reactos/lib/ntdll/def/ntdll.def +++ b/reactos/lib/ntdll/def/ntdll.def @@ -606,6 +606,7 @@ RtlRunDecodeUnicodeString@8 RtlRunEncodeUnicodeString@8 RtlSecondsSince1970ToTime@8 RtlSecondsSince1980ToTime@8 +RtlSelfRelativeToAbsoluteSD2@8 RtlSelfRelativeToAbsoluteSD@44 RtlSetAllBits@4 RtlSetAttributesSecurityDescriptor@12 diff --git a/reactos/lib/rtl/sd.c b/reactos/lib/rtl/sd.c index 0c0b26368c8..3eaef88c64a 100644 --- a/reactos/lib/rtl/sd.c +++ b/reactos/lib/rtl/sd.c @@ -729,7 +729,7 @@ RtlSelfRelativeToAbsoluteSD(PISECURITY_DESCRIPTOR RelSD, * @unimplemented */ NTSTATUS NTAPI -RtlSelfRelativeToAbsoluteSD2(PISECURITY_DESCRIPTOR_RELATIVE SelfRelativeSecurityDescriptor, +RtlSelfRelativeToAbsoluteSD2(PISECURITY_DESCRIPTOR SelfRelativeSecurityDescriptor, PULONG BufferSize) { UNIMPLEMENTED;