- 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 */