- Add Rtl*SecurityObject stubs.
- Export RtlpUnWaitCriticalSection and RtlWaitForCriticalSection.
- Replace DWORDs by ULONGs.
Modified: trunk/reactos/include/ndk/rtlfuncs.h
Modified: trunk/reactos/lib/ntdll/def/ntdll.def
Modified: trunk/reactos/lib/ntdll/ntdll.xml
Modified: trunk/reactos/lib/ntdll/rtl/critical.c
Added: trunk/reactos/lib/ntdll/rtl/secobj.c
_____
Modified: trunk/reactos/include/ndk/rtlfuncs.h
--- trunk/reactos/include/ndk/rtlfuncs.h 2005-06-27 18:56:50 UTC
(rev 16307)
+++ trunk/reactos/include/ndk/rtlfuncs.h 2005-06-27 21:11:29 UTC
(rev 16308)
@@ -564,6 +564,43 @@
STDCALL
RtlValidAcl(PACL Acl);
+NTSTATUS
+STDCALL
+RtlDeleteSecurityObject(
+ IN PSECURITY_DESCRIPTOR *ObjectDescriptor
+);
+
+NTSTATUS
+STDCALL
+RtlNewSecurityObject(
+ IN PSECURITY_DESCRIPTOR ParentDescriptor,
+ IN PSECURITY_DESCRIPTOR CreatorDescriptor,
+ OUT PSECURITY_DESCRIPTOR *NewDescriptor,
+ IN BOOLEAN IsDirectoryObject,
+ IN HANDLE Token,
+ IN PGENERIC_MAPPING GenericMapping
+);
+
+NTSTATUS
+STDCALL
+RtlQuerySecurityObject(
+ IN PSECURITY_DESCRIPTOR ObjectDescriptor,
+ IN SECURITY_INFORMATION SecurityInformation,
+ OUT PSECURITY_DESCRIPTOR ResultantDescriptor,
+ IN ULONG DescriptorLength,
+ OUT PULONG ReturnLength
+);
+
+NTSTATUS
+STDCALL
+RtlSetSecurityObject(
+ IN SECURITY_INFORMATION SecurityInformation,
+ IN PSECURITY_DESCRIPTOR ModificationDescriptor,
+ OUT PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
+ IN PGENERIC_MAPPING GenericMapping,
+ IN HANDLE Token
+);
+
/*
* Single-Character Functions
*/
@@ -1147,34 +1184,46 @@
NTSTATUS
STDCALL
RtlDeleteCriticalSection (
- PRTL_CRITICAL_SECTION CriticalSection
+ IN PRTL_CRITICAL_SECTION CriticalSection
);
NTSTATUS
STDCALL
RtlEnterCriticalSection(
- PRTL_CRITICAL_SECTION CriticalSection
+ IN PRTL_CRITICAL_SECTION CriticalSection
);
NTSTATUS
STDCALL
RtlInitializeCriticalSection(
- PRTL_CRITICAL_SECTION CriticalSection
+ IN PRTL_CRITICAL_SECTION CriticalSection
);
NTSTATUS
STDCALL
RtlInitializeCriticalSectionAndSpinCount(
- PRTL_CRITICAL_SECTION CriticalSection,
- ULONG SpinCount
+ IN PRTL_CRITICAL_SECTION CriticalSection,
+ IN ULONG SpinCount
);
NTSTATUS
STDCALL
RtlLeaveCriticalSection(
- PRTL_CRITICAL_SECTION CriticalSection
+ IN PRTL_CRITICAL_SECTION CriticalSection
);
+VOID
+STDCALL
+RtlpUnWaitCriticalSection(
+ IN PRTL_CRITICAL_SECTION CriticalSection
+);
+
+NTSTATUS
+STDCALL
+RtlpWaitForCriticalSection(
+ IN PRTL_CRITICAL_SECTION CriticalSection
+);
+
BOOLEAN
STDCALL
RtlAcquireResourceExclusive(
_____
Modified: trunk/reactos/lib/ntdll/def/ntdll.def
--- trunk/reactos/lib/ntdll/def/ntdll.def 2005-06-27 18:56:50 UTC
(rev 16307)
+++ trunk/reactos/lib/ntdll/def/ntdll.def 2005-06-27 21:11:29 UTC
(rev 16308)
@@ -379,7 +379,7 @@
RtlDeleteRange@24
RtlDeleteRegistryValue@12
RtlDeleteResource@4
-;RtlDeleteSecurityObject
+RtlDeleteSecurityObject@4
RtlDeleteTimer@12
RtlDeleteTimerQueue@4
RtlDeleteTimerQueueEx@8
@@ -559,7 +559,7 @@
RtlMultiByteToUnicodeSize@12
;RtlNewInstanceSecurityObject
;RtlNewSecurityGrantedAccess
-;RtlNewSecurityObject
+RtlNewSecurityObject@24
RtlNormalizeProcessParams@4
RtlNtPathNameToDosPathName@16
RtlNtStatusToDosError@4
@@ -584,7 +584,7 @@
;RtlQueryProcessHeapInformation
;RtlQueryProcessLockInformation
RtlQueryRegistryValues@20
-;RtlQuerySecurityObject
+RtlQuerySecurityObject@20
;RtlQueryTagHeap
RtlQueryTimeZoneInformation@4
RtlRaiseException@4
@@ -621,7 +621,7 @@
RtlSetOwnerSecurityDescriptor@12
RtlSetSaclSecurityDescriptor@16
RtlSetSecurityDescriptorRMControl@8
-;RtlSetSecurityObject
+RtlSetSecurityObject@20
RtlSetTimeZoneInformation@4
;RtlSetUnicodeCallouts
;RtlSetUserFlagsHeap
@@ -687,8 +687,8 @@
RtlpNtOpenKey@16
RtlpNtQueryValueKey@20
RtlpNtSetValueKey@16
-;RtlpUnWaitCriticalSection
-;RtlpWaitForCriticalSection
+RtlpUnWaitCriticalSection@4
+RtlpWaitForCriticalSection@4
RtlxAnsiStringToUnicodeSize@4
RtlxOemStringToUnicodeSize@4
RtlxUnicodeStringToAnsiSize@4
_____
Modified: trunk/reactos/lib/ntdll/ntdll.xml
--- trunk/reactos/lib/ntdll/ntdll.xml 2005-06-27 18:56:50 UTC (rev
16307)
+++ trunk/reactos/lib/ntdll/ntdll.xml 2005-06-27 21:11:29 UTC (rev
16308)
@@ -51,6 +51,7 @@
<file>propvar.c</file>
<file>rangelist.c</file>
<file>resource.c</file>
+ <file>secobj.c</file>
<file>teb.c</file>
<file>timerqueue.c</file>
</directory>
_____
Modified: trunk/reactos/lib/ntdll/rtl/critical.c
--- trunk/reactos/lib/ntdll/rtl/critical.c 2005-06-27 18:56:50 UTC
(rev 16307)
+++ trunk/reactos/lib/ntdll/rtl/critical.c 2005-06-27 21:11:29 UTC
(rev 16308)
@@ -99,10 +99,10 @@
STDCALL
RtlSetCriticalSectionSpinCount(
PRTL_CRITICAL_SECTION CriticalSection,
- DWORD SpinCount
+ ULONG SpinCount
)
{
- DWORD OldCount = CriticalSection->SpinCount;
+ ULONG OldCount = CriticalSection->SpinCount;
/* Set to parameter if MP, or to 0 if this is Uniprocessor */
CriticalSection->SpinCount = (NtCurrentPeb()->NumberOfProcessors >
1) ? SpinCount : 0;
@@ -214,7 +214,7 @@
STDCALL
RtlInitializeCriticalSectionAndSpinCount (
PRTL_CRITICAL_SECTION CriticalSection,
- DWORD SpinCount)
+ ULONG SpinCount)
{
PRTL_CRITICAL_SECTION_DEBUG CritcalSectionDebugData;
_____
Added: trunk/reactos/lib/ntdll/rtl/secobj.c
--- trunk/reactos/lib/ntdll/rtl/secobj.c 2005-06-27 18:56:50 UTC
(rev 16307)
+++ trunk/reactos/lib/ntdll/rtl/secobj.c 2005-06-27 21:11:29 UTC
(rev 16308)
@@ -0,0 +1,97 @@
+/*
+ * ReactOS kernel
+ * Copyright (C) 2005 Eric Kohl
+ *
+ * This program is free software; you can redistribute it and/or
modify
+ * it under the terms of the GNU General Public License as published
by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/*
+ * COPYRIGHT: See COPYING in the top level directory
+ * PROJECT: ReactOS system libraries
+ * PURPOSE: Security object implementation
+ * FILE: lib/ntdll/rtl/secobj.c
+ */
+
+/* INCLUDES
****************************************************************/
+
+#include <ntdll.h>
+#define NDEBUG
+#include <debug.h>
+
+/*
+ * @implemented
+ */
+NTSTATUS
+STDCALL
+RtlDeleteSecurityObject(IN PSECURITY_DESCRIPTOR *ObjectDescriptor)
+{
+ DPRINT("RtlDeleteSecurityObject(%p)\n", ObjectDescriptor);
+
+ RtlFreeHeap(RtlGetProcessHeap(),
+ 0,
+ *ObjectDescriptor);
+
+ return STATUS_SUCCESS;
+}
+
+
+/*
+ * @unimplemented
+ */
+NTSTATUS
+STDCALL
+RtlNewSecurityObject(IN PSECURITY_DESCRIPTOR ParentDescriptor,
+ IN PSECURITY_DESCRIPTOR CreatorDescriptor,
+ OUT PSECURITY_DESCRIPTOR *NewDescriptor,
+ IN BOOLEAN IsDirectoryObject,
+ IN HANDLE Token,
+ IN PGENERIC_MAPPING GenericMapping)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/*
+ * @unimplemented
+ */
+NTSTATUS
+STDCALL
+RtlQuerySecurityObject(IN PSECURITY_DESCRIPTOR ObjectDescriptor,
+ IN SECURITY_INFORMATION SecurityInformation,
+ OUT PSECURITY_DESCRIPTOR ResultantDescriptor,
+ IN ULONG DescriptorLength,
+ OUT PULONG ReturnLength)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/*
+ * @unimplemented
+ */
+NTSTATUS
+STDCALL
+RtlSetSecurityObject(IN SECURITY_INFORMATION SecurityInformation,
+ IN PSECURITY_DESCRIPTOR ModificationDescriptor,
+ OUT PSECURITY_DESCRIPTOR
*ObjectsSecurityDescriptor,
+ IN PGENERIC_MAPPING GenericMapping,
+ IN HANDLE Token)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+/* EOF */