Author: tfaber
Date: Tue Nov 4 18:40:24 2014
New Revision: 65247
URL:
http://svn.reactos.org/svn/reactos?rev=65247&view=rev
Log:
[NTOS:SE]
- Call SeSetSecurityDescriptorInfoEx from SeSetSecurityDescriptorInfo
Modified:
trunk/reactos/ntoskrnl/se/sd.c
Modified: trunk/reactos/ntoskrnl/se/sd.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/se/sd.c?rev=65247…
==============================================================================
--- trunk/reactos/ntoskrnl/se/sd.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/se/sd.c [iso-8859-1] Tue Nov 4 18:40:24 2014
@@ -615,11 +615,14 @@
/*
* @implemented
*/
-NTSTATUS NTAPI
-SeQuerySecurityDescriptorInfo(IN PSECURITY_INFORMATION SecurityInformation,
- IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
- IN OUT PULONG Length,
- IN PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor
OPTIONAL)
+_IRQL_requires_max_(PASSIVE_LEVEL)
+NTSTATUS
+NTAPI
+SeQuerySecurityDescriptorInfo(
+ _In_ PSECURITY_INFORMATION SecurityInformation,
+ _Out_writes_bytes_(*Length) PSECURITY_DESCRIPTOR SecurityDescriptor,
+ _Inout_ PULONG Length,
+ _Inout_ PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor)
{
PISECURITY_DESCRIPTOR ObjectSd;
PISECURITY_DESCRIPTOR_RELATIVE RelSD;
@@ -635,6 +638,8 @@
ULONG_PTR Current;
ULONG SdLength;
+ PAGED_CODE();
+
RelSD = (PISECURITY_DESCRIPTOR_RELATIVE)SecurityDescriptor;
if (*ObjectsSecurityDescriptor == NULL)
@@ -781,13 +786,42 @@
/*
* @implemented
*/
-NTSTATUS NTAPI
-SeSetSecurityDescriptorInfo(IN PVOID Object OPTIONAL,
- IN PSECURITY_INFORMATION _SecurityInformation,
- IN PSECURITY_DESCRIPTOR _SecurityDescriptor,
- IN OUT PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
- IN POOL_TYPE PoolType,
- IN PGENERIC_MAPPING GenericMapping)
+_IRQL_requires_max_(PASSIVE_LEVEL)
+NTSTATUS
+NTAPI
+SeSetSecurityDescriptorInfo(
+ _In_opt_ PVOID Object,
+ _In_ PSECURITY_INFORMATION SecurityInformation,
+ _In_ PSECURITY_DESCRIPTOR SecurityDescriptor,
+ _Inout_ PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
+ _In_ POOL_TYPE PoolType,
+ _In_ PGENERIC_MAPPING GenericMapping)
+{
+ PAGED_CODE();
+
+ return SeSetSecurityDescriptorInfoEx(Object,
+ SecurityInformation,
+ SecurityDescriptor,
+ ObjectsSecurityDescriptor,
+ 0,
+ PoolType,
+ GenericMapping);
+}
+
+/*
+ * @implemented
+ */
+_IRQL_requires_max_(PASSIVE_LEVEL)
+NTSTATUS
+NTAPI
+SeSetSecurityDescriptorInfoEx(
+ _In_opt_ PVOID Object,
+ _In_ PSECURITY_INFORMATION _SecurityInformation,
+ _In_ PSECURITY_DESCRIPTOR _SecurityDescriptor,
+ _Inout_ PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
+ _In_ ULONG AutoInheritFlags,
+ _In_ POOL_TYPE PoolType,
+ _In_ PGENERIC_MAPPING GenericMapping)
{
PISECURITY_DESCRIPTOR_RELATIVE ObjectSd;
PISECURITY_DESCRIPTOR_RELATIVE NewSd;
@@ -805,6 +839,8 @@
ULONG Current;
SECURITY_INFORMATION SecurityInformation;
+ PAGED_CODE();
+
ObjectSd = *ObjectsSecurityDescriptor;
/* The object does not have a security descriptor. */
@@ -969,29 +1005,6 @@
*ObjectsSecurityDescriptor = NewSd;
return STATUS_SUCCESS;
-}
-
-/*
- * @unimplemented
- */
-NTSTATUS
-NTAPI
-SeSetSecurityDescriptorInfoEx(IN PVOID Object OPTIONAL,
- IN PSECURITY_INFORMATION SecurityInformation,
- IN PSECURITY_DESCRIPTOR ModificationDescriptor,
- IN OUT PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
- IN ULONG AutoInheritFlags,
- IN POOL_TYPE PoolType,
- IN PGENERIC_MAPPING GenericMapping)
-{
- PISECURITY_DESCRIPTOR ObjectSd = *ObjectsSecurityDescriptor;
-
- /* The object does not have a security descriptor. */
- if (!ObjectSd)
- return STATUS_NO_SECURITY_ON_OBJECT;
-
- UNIMPLEMENTED;
- return STATUS_NOT_IMPLEMENTED;
}