- Add Rtl*SecurityObject stubs.

- Export RtlpUnWaitCriticalSection and RtlWaitForCriticalSection.
- Replace DWORDs by ULONGs.

svn path=/trunk/; revision=16308
This commit is contained in:
Eric Kohl 2005-06-27 21:11:29 +00:00
parent a484af08a4
commit 53dea75f28
5 changed files with 162 additions and 15 deletions

View file

@ -564,6 +564,43 @@ BOOLEAN
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,32 +1184,44 @@ RtlSetEnvironmentVariable(
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

View file

@ -379,7 +379,7 @@ RtlDeleteOwnersRanges@8
RtlDeleteRange@24
RtlDeleteRegistryValue@12
RtlDeleteResource@4
;RtlDeleteSecurityObject
RtlDeleteSecurityObject@4
RtlDeleteTimer@12
RtlDeleteTimerQueue@4
RtlDeleteTimerQueueEx@8
@ -559,7 +559,7 @@ RtlMultiByteToUnicodeN@20
RtlMultiByteToUnicodeSize@12
;RtlNewInstanceSecurityObject
;RtlNewSecurityGrantedAccess
;RtlNewSecurityObject
RtlNewSecurityObject@24
RtlNormalizeProcessParams@4
RtlNtPathNameToDosPathName@16
RtlNtStatusToDosError@4
@ -584,7 +584,7 @@ RtlQueryProcessDebugInformation@12
;RtlQueryProcessHeapInformation
;RtlQueryProcessLockInformation
RtlQueryRegistryValues@20
;RtlQuerySecurityObject
RtlQuerySecurityObject@20
;RtlQueryTagHeap
RtlQueryTimeZoneInformation@4
RtlRaiseException@4
@ -621,7 +621,7 @@ RtlSetLastWin32ErrorAndNtStatusFromNtStatus@4
RtlSetOwnerSecurityDescriptor@12
RtlSetSaclSecurityDescriptor@16
RtlSetSecurityDescriptorRMControl@8
;RtlSetSecurityObject
RtlSetSecurityObject@20
RtlSetTimeZoneInformation@4
;RtlSetUnicodeCallouts
;RtlSetUserFlagsHeap
@ -687,8 +687,8 @@ RtlpNtMakeTemporaryKey@4
RtlpNtOpenKey@16
RtlpNtQueryValueKey@20
RtlpNtSetValueKey@16
;RtlpUnWaitCriticalSection
;RtlpWaitForCriticalSection
RtlpUnWaitCriticalSection@4
RtlpWaitForCriticalSection@4
RtlxAnsiStringToUnicodeSize@4
RtlxOemStringToUnicodeSize@4
RtlxUnicodeStringToAnsiSize@4

View file

@ -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>

View file

@ -99,10 +99,10 @@ DWORD
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 @@ NTSTATUS
STDCALL
RtlInitializeCriticalSectionAndSpinCount (
PRTL_CRITICAL_SECTION CriticalSection,
DWORD SpinCount)
ULONG SpinCount)
{
PRTL_CRITICAL_SECTION_DEBUG CritcalSectionDebugData;

View file

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