[ros-diffs] [ekohl] 16309: Implement private object security
functions.
ekohl at svn.reactos.com
ekohl at svn.reactos.com
Tue Jun 28 00:42:32 CEST 2005
Implement private object security functions.
Modified: trunk/reactos/lib/advapi32/advapi32.def
Modified: trunk/reactos/lib/advapi32/sec/misc.c
_____
Modified: trunk/reactos/lib/advapi32/advapi32.def
--- trunk/reactos/lib/advapi32/advapi32.def 2005-06-27 21:11:29 UTC
(rev 16308)
+++ trunk/reactos/lib/advapi32/advapi32.def 2005-06-27 22:42:28 UTC
(rev 16309)
@@ -98,7 +98,7 @@
;ConvertToAutoInheritPrivateObjectSecurity at 24
CopySid at 12
;CreateCodeAuthzLevel at 20
-;CreatePrivateObjectSecurity at 24
+CreatePrivateObjectSecurity at 24
;CreatePrivateObjectSecurityEx at 32
;CreatePrivateObjectSecurityWithMultipleInheritance at 36
CreateProcessAsUserA at 44
@@ -183,7 +183,7 @@
DeleteAce at 8
DeleteService at 4
DeregisterEventSource at 4
-;DestroyPrivateObjectSecurity at 4
+DestroyPrivateObjectSecurity at 4
;DuplicateEncryptionInfoFile
DuplicateToken at 12
DuplicateTokenEx at 24
@@ -267,7 +267,7 @@
GetNumberOfEventLogRecords at 8
GetOldestEventLogRecord at 8
;GetOverlappedAccessResults
-;GetPrivateObjectSecurity at 20
+GetPrivateObjectSecurity at 20
GetSecurityDescriptorControl at 12
GetSecurityDescriptorDacl at 16
GetSecurityDescriptorGroup at 12
@@ -563,7 +563,7 @@
;SetNamedSecurityInfoExA
;SetNamedSecurityInfoExW
SetNamedSecurityInfoW at 28
-;SetPrivateObjectSecurity at 20
+SetPrivateObjectSecurity at 20
;SetPrivateObjectSecurityEx
SetSecurityDescriptorControl at 12
SetSecurityDescriptorDacl at 16
_____
Modified: trunk/reactos/lib/advapi32/sec/misc.c
--- trunk/reactos/lib/advapi32/sec/misc.c 2005-06-27 21:11:29 UTC
(rev 16308)
+++ trunk/reactos/lib/advapi32/sec/misc.c 2005-06-27 22:42:28 UTC
(rev 16309)
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* FILE: lib/advapi32/sec/misc.c
@@ -1264,4 +1263,106 @@
return TRUE;
}
+
+/*
+ * @implemented
+ */
+BOOL STDCALL
+CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR ParentDescriptor,
+ PSECURITY_DESCRIPTOR CreatorDescriptor,
+ PSECURITY_DESCRIPTOR *NewDescriptor,
+ BOOL IsDirectoryObject,
+ HANDLE Token,
+ PGENERIC_MAPPING GenericMapping)
+{
+ NTSTATUS Status;
+
+ Status = RtlNewSecurityObject(ParentDescriptor,
+ CreatorDescriptor,
+ NewDescriptor,
+ IsDirectoryObject,
+ Token,
+ GenericMapping);
+ if (!NT_SUCCESS(Status))
+ {
+ SetLastError(RtlNtStatusToDosError(Status));
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+
+/*
+ * @implemented
+ */
+BOOL STDCALL
+DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR *ObjectDescriptor)
+{
+ NTSTATUS Status;
+
+ Status = RtlDeleteSecurityObject(ObjectDescriptor);
+ if (!NT_SUCCESS(Status))
+ {
+ SetLastError(RtlNtStatusToDosError(Status));
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+
+/*
+ * @implemented
+ */
+BOOL STDCALL
+GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR ObjectDescriptor,
+ SECURITY_INFORMATION SecurityInformation,
+ PSECURITY_DESCRIPTOR ResultantDescriptor,
+ DWORD DescriptorLength,
+ PDWORD ReturnLength)
+{
+ NTSTATUS Status;
+
+ Status = RtlQuerySecurityObject(ObjectDescriptor,
+ SecurityInformation,
+ ResultantDescriptor,
+ DescriptorLength,
+ ReturnLength);
+ if (!NT_SUCCESS(Status))
+ {
+ SetLastError(RtlNtStatusToDosError(Status));
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+
+/*
+ * @implemented
+ */
+BOOL STDCALL
+SetPrivateObjectSecurity(SECURITY_INFORMATION SecurityInformation,
+ PSECURITY_DESCRIPTOR ModificationDescriptor,
+ PSECURITY_DESCRIPTOR
*ObjectsSecurityDescriptor,
+ PGENERIC_MAPPING GenericMapping,
+ HANDLE Token)
+{
+ NTSTATUS Status;
+
+ Status = RtlSetSecurityObject(SecurityInformation,
+ ModificationDescriptor,
+ ObjectsSecurityDescriptor,
+ GenericMapping,
+ Token);
+ if (!NT_SUCCESS(Status))
+ {
+ SetLastError(RtlNtStatusToDosError(Status));
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
/* EOF */
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.reactos.org/pipermail/ros-diffs/attachments/20050628/94a29e3a/attachment.html
More information about the Ros-diffs
mailing list