- Uncomment NTDLL exports which we implement, and add stubs for numerous routines

- Add missing prototypes to NDK
- Implement RtlInterlockedCompareExchange64 and RtlGetCurrentProcessorNumber
- Rename RtlpCurrentPeb to RtlGetCurrentPeb and export it from NTDLL

svn path=/trunk/; revision=36166
This commit is contained in:
Stefan Ginsberg 2008-09-12 15:09:17 +00:00
parent 86cb400689
commit 420195308d
18 changed files with 544 additions and 62 deletions

View file

@ -92,13 +92,13 @@ LdrEnumResources@20
LdrFindEntryForAddress@8
;LdrEnumerateLoadedModules
;LdrFindCreateProcessManifest
;LdrFindEntryForAddress
LdrFindEntryForAddress@8
LdrFindResourceDirectory_U@16
;LdrFindResourceEx_U
LdrFindResource_U@16
LdrGetDllHandle@16
;LdrFlushAlternateResourceModules
;LdrGetDllHandle
LdrGetDllHandle@16
;LdrGetDllHandleEx
LdrGetProcedureAddress@16
;LdrHotPatchRoutine
@ -106,7 +106,7 @@ LdrGetProcedureAddress@16
LdrInitializeThunk@16
;LdrLoadAlternateResourceModule
LdrLoadDll@16
;LdrLockLoaderLock
LdrLockLoaderLock@12
;LdrOpenImageFileOptionsKey
LdrProcessRelocationBlock@16
LdrQueryImageFileExecutionOptions@24
@ -117,9 +117,9 @@ LdrQueryProcessModuleInformation@12
;LdrSetDllManifestProber
LdrShutdownProcess@0
LdrShutdownThread@0
;LdrUnloadAlternateResourceModule
LdrUnloadAlternateResourceModule@4
LdrUnloadDll@4
;LdrUnlockLoaderLock
LdrUnlockLoaderLock@8
LdrVerifyImageMatchesChecksum@16
NlsAnsiCodePage DATA
NlsMbCodePageTag DATA
@ -430,14 +430,14 @@ NtYieldExecution@0
;RtlAbortRXact
RtlAbsoluteToSelfRelativeSD@12
RtlAcquirePebLock@0
;RtlAcquirePrivilege
RtlAcquirePrivilege@16
RtlAcquireResourceExclusive@8
RtlAcquireResourceShared@8
RtlAcquireSRWLockExclusive@4
RtlAcquireSRWLockShared@4
;RtlActivateActivationContext
;RtlActivateActivationContextEx
;RtlActivateActivationContextUnsafeFast
RtlActivateActivationContextUnsafeFast@8
RtlAddAccessAllowedAce@16
RtlAddAccessAllowedAceEx@20
RtlAddAccessAllowedObjectAce@28
@ -453,13 +453,13 @@ RtlAddAuditAccessAceEx@28
RtlAddAuditAccessObjectAce@36
;RtlAddCompoundAce
RtlAddMandatoryAce@24
;RtlAddRefActivationContext
RtlAddRefActivationContext@4
;RtlAddRefMemoryStream
;RtlAddVectoredContinueHandler
RtlAddVectoredExceptionHandler@8
;RtlAddressInSectionTable
RtlAdjustPrivilege@16
;RtlAllocateActivationContextStack
RtlAllocateActivationContextStack@4
RtlAllocateAndInitializeSid@44
RtlAllocateHandle@8
RtlAllocateHeap@12
@ -479,7 +479,7 @@ RtlAreBitsClear@12
RtlAreBitsSet@12
RtlAssert@16
;RtlCancelTimer
;RtlCaptureContext
RtlCaptureContext@4
RtlCaptureStackBackTrace@16
;RtlCaptureStackContext
RtlCharToInteger@12
@ -530,7 +530,7 @@ RtlCreateProcessParameters@40
RtlCreateQueryDebugBuffer@8
RtlCreateRegistryKey@8
RtlCreateSecurityDescriptor@8
;RtlCreateSystemVolumeInformationFolder
RtlCreateSystemVolumeInformationFolder@4
RtlCreateTagHeap@16
RtlCreateTimer@28
RtlCreateTimerQueue@4
@ -542,9 +542,10 @@ RtlCreateUserThread@40
RtlCustomCPToUnicodeN@24
RtlCutoverTimeToSystemTime@16
RtlDeNormalizeProcessParams@4
;RtlDeactivateActivationContext
RtlDeactivateActivationContext@8
RtlDeactivateActivationContextUnsafeFast@4
RtlDecodePointer=RtlEncodePointer@4
;RtlDecodeSystemPointer
RtlDecodeSystemPointer@4=RtlEncodeSystemPointer@4
RtlDecompressBuffer@24
RtlDecompressFragment@32
;RtlDefaultNpAcl
@ -587,7 +588,7 @@ RtlDuplicateUnicodeString@12
RtlEmptyAtomTable@8
;RtlEnableEarlyCriticalSectionEventCreation
RtlEncodePointer@4
;RtlEncodeSystemPointer
RtlEncodeSystemPointer@4
RtlEnlargedIntegerMultiply@8
RtlEnlargedUnsignedDivide@16
RtlEnlargedUnsignedMultiply@8
@ -616,8 +617,8 @@ RtlFillMemory@12
RtlFillMemoryUlong@12
;RtlFinalReleaseOutOfProcessMemoryStream
;RtlFindActivationContextSectionGuid
;RtlFindActivationContextSectionString
;RtlFindCharInUnicodeString
RtlFindActivationContextSectionString@20
RtlFindCharInUnicodeString@16
RtlFindClearBits@12
RtlFindClearBitsAndSet@12
RtlFindClearRuns@16
@ -629,9 +630,9 @@ RtlFindMostSignificantBit@8
RtlFindNextForwardRunClear@12
RtlFindSetBits@12
RtlFindSetBitsAndClear@12
;RtlFirstEntrySList
RtlFirstEntrySList@4
RtlFirstFreeAce@8
;RtlFlushSecureMemoryCache
RtlFlushSecureMemoryCache@8
RtlFormatCurrentUserKeyPath@4
RtlFormatMessage@32
;RtlFormatMessageEx
@ -647,14 +648,14 @@ RtlFreeUserThreadStack@8
RtlGUIDFromString@8
RtlGenerate8dot3Name@16
RtlGetAce@12
;RtlGetActiveActivationContext
;RtlGetCallersAddress
RtlGetActiveActivationContext@4
RtlGetCallersAddress@8
RtlGetCompressionWorkSpaceSize@12
RtlGetControlSecurityDescriptor@12
;RtlGetCriticalSectionRecursionCount
RtlGetCurrentDirectory_U@8
;RtlGetCurrentPeb
;RtlGetCurrentProcessorNumber
RtlGetCurrentPeb@0
RtlGetCurrentProcessorNumber@0
RtlGetDaclSecurityDescriptor@16
RtlGetElementGenericTable@8
RtlGetElementGenericTableAvl@8
@ -689,7 +690,7 @@ RtlImageRvaToSection@12
RtlImageRvaToVa@16
RtlImpersonateSelf@4
RtlInitAnsiString@8
;RtlInitAnsiStringEx
RtlInitAnsiStringEx@8
RtlInitCodePageTable@8
;RtlInitMemoryStream
RtlInitNlsTables@16
@ -708,7 +709,7 @@ RtlInitializeGenericTableAvl@20
RtlInitializeHandleTable@12
;RtlInitializeRXact
RtlInitializeResource@4
;RtlInitializeSListHead
RtlInitializeSListHead@4
RtlInitializeSid@12
RtlInitializeSRWLock@4
RtlInsertElementGenericTable@16
@ -718,11 +719,11 @@ RtlInsertElementGenericTableFullAvl@24
RtlInt64ToUnicodeString@16
RtlIntegerToChar@16
RtlIntegerToUnicodeString@12
;RtlInterlockedCompareExchange64
;RtlInterlockedFlushSList
;RtlInterlockedPopEntrySList
;RtlInterlockedPushEntrySList
;RtlInterlockedPushListSList
RtlInterlockedCompareExchange64@20
RtlInterlockedFlushSList@4
RtlInterlockedPopEntrySList@4
RtlInterlockedPushEntrySList@8
RtlInterlockedPushListSList@16
RtlIpv4AddressToStringA@8
RtlIpv4AddressToStringExA@16
RtlIpv4AddressToStringExW@16
@ -779,8 +780,8 @@ RtlMoveMemory@12
;RtlMultiAppendUnicodeStringBuffer
RtlMultiByteToUnicodeN@20
RtlMultiByteToUnicodeSize@12
;RtlMultipleAllocateHeap
;RtlMultipleFreeHeap
RtlMultipleAllocateHeap@20
RtlMultipleFreeHeap@16
;RtlNewInstanceSecurityObject
;RtlNewSecurityGrantedAccess
RtlNewSecurityObject@24
@ -789,7 +790,7 @@ RtlNewSecurityObject@24
RtlNormalizeProcessParams@4
RtlNtPathNameToDosPathName@16
RtlNtStatusToDosError@4
;RtlNtStatusToDosErrorNoTeb
RtlNtStatusToDosErrorNoTeb@4
RtlNumberGenericTableElements@4
RtlNumberGenericTableElementsAvl@4
RtlNumberOfClearBits@4
@ -803,14 +804,14 @@ RtlPinAtomInAtomTable@8
;RtlPopFrame
RtlPrefixString@12
RtlPrefixUnicodeString@12
;RtlProtectHeap
RtlProtectHeap@8
;RtlPushFrame
RtlQueryAtomInAtomTable@24
;RtlQueryDepthSList
RtlQueryDepthSList@4
RtlQueryEnvironmentVariable_U@12
;RtlQueryHeapInformation
RtlQueryHeapInformation@20
RtlQueryInformationAcl@16
;RtlQueryInformationActivationContext
RtlQueryInformationActivationContext@28
;RtlQueryInformationActiveActivationContext
;RtlQueryInterfaceMemoryStream
;RtlQueryProcessBackTraceInformation
@ -832,17 +833,17 @@ RtlReAllocateHeap@16
;RtlReadOutOfProcessMemoryStream
RtlRealPredecessor@4
RtlRealSuccessor@4
;RtlRegisterSecureMemoryCacheCallback
RtlRegisterSecureMemoryCacheCallback@4
RtlRegisterWait@24
;RtlReleaseActivationContext
RtlReleaseActivationContext@4
;RtlReleaseMemoryStream
RtlReleasePebLock@0
;RtlReleasePrivilege
RtlReleasePrivilege@4
RtlReleaseRelativeName@4
RtlReleaseResource@4
RtlReleaseSRWLockExclusive@4
RtlReleaseSRWLockShared@4
;RtlRemoteCall
RtlRemoteCall@28
;RtlRemoveVectoredContinueHandler
RtlRemoveVectoredExceptionHandler@4
RtlResetRtlTranslations@4
@ -866,7 +867,7 @@ RtlSetDaclSecurityDescriptor@16
;RtlSetEnvironmentStrings
RtlSetEnvironmentVariable@12
RtlSetGroupSecurityDescriptor@12
;RtlSetHeapInformation
RtlSetHeapInformation@16
RtlSetInformationAcl@16
;RtlSetIoCompletionCallback
RtlSetLastWin32Error@4
@ -883,7 +884,7 @@ RtlSetSecurityObject@20
;RtlSetThreadPoolStartFunc
RtlSetTimeZoneInformation@4
;RtlSetTimer
;RtlSetUnhandledExceptionFilter
RtlSetUnhandledExceptionFilter@4
;RtlSetUnicodeCallouts
RtlSetUserFlagsHeap@16
RtlSetUserValueHeap@16
@ -953,18 +954,18 @@ RtlValidateHeap@12
RtlValidateProcessHeaps@0
RtlValidateUnicodeString@8
RtlVerifyVersionInfo@16
;RtlWalkFrameChain
;RtlWalkHeap
RtlWalkFrameChain@12
RtlWalkHeap@8
;RtlWow64EnableFsRedirection
;RtlWow64EnableFsRedirectionEx
RtlWakeAllConditionVariable@4
RtlWakeConditionVariable@4
RtlWriteRegistryValue@24
;RtlWriteMemoryStream
;RtlWriteRegistryValue
;RtlZeroHeap
RtlWriteRegistryValue@24
RtlZeroHeap@8
RtlZeroMemory@8
;RtlZombifyActivationContext
RtlZombifyActivationContext@4
;RtlpApplyLengthFunction
RtlpEnsureBufferSize@12
;RtlpNotOwnerCriticalSection
@ -1285,7 +1286,7 @@ __iscsym
__iscsymf
__toascii
_alldiv
;_alldvrm
_alldvrm
_allmul
_alloca_probe
_allrem
@ -1293,7 +1294,7 @@ _allshl
_allshr
_atoi64
_aulldiv
;_aulldvrm
_aulldvrm
_aullrem
_aullshr
_chkstk

View file

@ -3239,4 +3239,29 @@ LdrProcessRelocationBlock(IN ULONG_PTR Address,
return (PIMAGE_BASE_RELOCATION)TypeOffset;
}
/* EOF */
NTSTATUS
NTAPI
LdrLockLoaderLock(IN ULONG Flags,
OUT PULONG Disposition OPTIONAL,
OUT PULONG Cookie OPTIONAL)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
NTAPI
LdrUnlockLoaderLock(IN ULONG Flags,
IN ULONG Cookie OPTIONAL)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
BOOLEAN
NTAPI
LdrUnloadAlternateResourceModule(IN PVOID BaseAddress)
{
UNIMPLEMENTED;
return FALSE;
}

View file

@ -63,9 +63,12 @@ RtlpGetMode()
return UserMode;
}
/*
* @implemented
*/
PPEB
NTAPI
RtlpCurrentPeb(VOID)
RtlGetCurrentPeb(VOID)
{
return NtCurrentPeb();
}

View file

@ -59,6 +59,7 @@ LdrFindResourceDirectory_U(
);
BOOLEAN
NTAPI
LdrUnloadAlternateResourceModule(
IN PVOID BaseAddress
);
@ -86,6 +87,7 @@ LdrRelocateImage(
);
NTSTATUS
NTAPI
LdrLockLoaderLock(
IN ULONG Flags,
OUT PULONG Disposition OPTIONAL,

View file

@ -407,6 +407,13 @@ RtlNtStatusToDosError(
IN NTSTATUS Status
);
NTSYSAPI
ULONG
NTAPI
RtlNtStatusToDosErrorNoTeb(
IN NTSTATUS Status
);
NTSYSAPI
VOID
NTAPI
@ -567,6 +574,14 @@ RtlGetUserInfoHeap(
OUT PULONG UserFlags
);
NTSYSAPI
PVOID
NTAPI
RtlProtectHeap(
IN PVOID HeapHandle,
IN BOOLEAN Protect
);
NTSYSAPI
PWSTR
NTAPI
@ -647,6 +662,14 @@ RtlValidateHeap(
PVOID P
);
NTSYSAPI
NTSTATUS
NTAPI
RtlWalkHeap(
IN HANDLE HeapHandle,
IN PVOID HeapEntry
);
#define RtlGetProcessHeap() (NtCurrentPeb()->ProcessHeap)
//
@ -1883,6 +1906,13 @@ RtlFillMemoryUlong(
//
// Process Management Functions
//
NTSYSAPI
PPEB
NTAPI
RtlGetCurrentPeb(
VOID
);
NTSYSAPI
VOID
NTAPI
@ -1972,6 +2002,19 @@ VOID
NTAPI
RtlReleasePebLock(VOID);
NTSYSAPI
NTSTATUS
NTAPI
RtlRemoteCall(
IN HANDLE Process,
IN HANDLE Thread,
IN PVOID CallSite,
IN ULONG ArgumentCount,
IN PULONG Arguments,
IN BOOLEAN PassContext,
IN BOOLEAN AlreadySuspended
);
NTSYSAPI
VOID
NTAPI
@ -1981,6 +2024,13 @@ RtlSetProcessIsCritical(
IN BOOLEAN IsWinlogon
);
NTSYSAPI
ULONG
NTAPI
RtlGetCurrentProcessorNumber(
VOID
);
#define NtCurrentPeb() (NtCurrentTeb()->ProcessEnvironmentBlock)
//
@ -2771,6 +2821,15 @@ LdrRelocateImageWithBias(
// Activation Context Functions
//
#ifdef NTOS_MODE_USER
NTSYSAPI
VOID
NTAPI
RtlAddRefActivationContext(
PVOID Context
);
NTSYSAPI
NTSTATUS
NTAPI
@ -2800,6 +2859,14 @@ RtlReleaseActivationContext(
IN PVOID *Context
);
NTSYSAPI
NTSTATUS
NTAPI
RtlDeactivateActivationContext(
DWORD dwFlags,
ULONG_PTR ulCookie
);
NTSYSAPI
NTSTATUS
NTAPI
@ -2832,6 +2899,28 @@ RtlFindActivationContextSectionString(
IN PUNICODE_STRING SectionName,
IN PVOID Unknown2
);
NTSYSAPI
NTSTATUS
NTAPI
RtlQueryInformationActivationContext(
DWORD dwFlags,
PVOID Context,
PVOID pvSubInstance,
ULONG ulInfoClass,
PVOID pvBuffer,
SIZE_T cbBuffer OPTIONAL,
SIZE_T *pcbWrittenOrRequired OPTIONAL
);
NTSYSAPI
NTSTATUS
NTAPI
RtlZombifyActivationContext(
PVOID Context
);
#endif
//

106
reactos/lib/rtl/actctx.c Normal file
View file

@ -0,0 +1,106 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Runtime Library
* PURPOSE: Activation Context Support
* FILE: lib/rtl/actctx.c
* PROGRAMERS: Stefan Ginsberg (stefan__100__@hotmail.com)
*/
/* INCLUDES *****************************************************************/
#include <rtl.h>
#define NDEBUG
#include <debug.h>
/* FUNCTIONS ***************************************************************/
VOID
NTAPI
RtlAddRefActivationContext(PVOID Context)
{
UNIMPLEMENTED;
}
NTSTATUS
NTAPI
RtlActivateActivationContextUnsafeFast(IN PRTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED Frame,
IN PVOID Context)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
NTAPI
RtlAllocateActivationContextStack(IN PVOID *Context)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
NTAPI
RtlGetActiveActivationContext(IN PVOID *Context)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
VOID
NTAPI
RtlReleaseActivationContext(IN PVOID *Context)
{
UNIMPLEMENTED;
}
NTSTATUS
NTAPI
RtlFindActivationContextSectionString(IN PVOID Unknown0,
IN PVOID Unknown1,
IN ULONG SectionType,
IN PUNICODE_STRING SectionName,
IN PVOID Unknown2)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
NTAPI
RtlQueryInformationActivationContext(DWORD dwFlags,
PVOID Context,
PVOID pvSubInstance,
ULONG ulInfoClass,
PVOID pvBuffer,
SIZE_T cbBuffer OPTIONAL,
SIZE_T *pcbWrittenOrRequired OPTIONAL)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
NTAPI
RtlZombifyActivationContext(PVOID Context)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
NTAPI
RtlDeactivateActivationContext(DWORD dwFlags,
ULONG_PTR ulCookie)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
NTAPI
RtlDeactivateActivationContextUnsafeFast(IN PRTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED Frame)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}

View file

@ -12,7 +12,6 @@
#define NDEBUG
#include <debug.h>
PPEB NTAPI RtlpCurrentPeb(VOID);
/* FUNCTIONS *****************************************************************/
/*
@ -508,7 +507,7 @@ RtlQueryEnvironmentVariable_U(PWSTR Environment,
if (Environment == NULL)
{
PPEB Peb = RtlpCurrentPeb();
PPEB Peb = RtlGetCurrentPeb();
if (Peb) {
Environment = Peb->ProcessParameters->Environment;
SysEnvUsed = TRUE;

View file

@ -870,7 +870,7 @@ RtlMapSecurityErrorToNtStatus(
*
* @implemented
*/
DWORD NTAPI
ULONG NTAPI
RtlNtStatusToDosErrorNoTeb(IN NTSTATUS Status)
{
PERROR_TABLE Table = (PERROR_TABLE)ErrorTable;

View file

@ -169,4 +169,13 @@ RtlUnhandledExceptionFilter(IN struct _EXCEPTION_POINTERS* ExceptionInfo)
return ERROR_CALL_NOT_IMPLEMENTED;
}
/* EOF */
/*
* @unimplemented
*/
PVOID
NTAPI
RtlSetUnhandledExceptionFilter(IN PVOID TopLevelExceptionFilter)
{
UNIMPLEMENTED;
return NULL;
}

View file

@ -1869,4 +1869,66 @@ RtlCreateTagHeap(IN HANDLE HeapHandle,
return 0;
}
/* EOF */
NTSTATUS
NTAPI
RtlWalkHeap(IN HANDLE HeapHandle,
IN PVOID HeapEntry)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
PVOID
NTAPI
RtlProtectHeap(IN PVOID HeapHandle,
IN BOOLEAN ReadOnly)
{
UNIMPLEMENTED;
return NULL;
}
DWORD
NTAPI
RtlSetHeapInformation(IN HANDLE HeapHandle OPTIONAL,
IN HEAP_INFORMATION_CLASS HeapInformationClass,
IN PVOID HeapInformation,
IN SIZE_T HeapInformationLength)
{
UNIMPLEMENTED;
return 0;
}
DWORD
NTAPI
RtlQueryHeapInformation(HANDLE HeapHandle,
HEAP_INFORMATION_CLASS HeapInformationClass,
PVOID HeapInformation OPTIONAL,
SIZE_T HeapInformationLength OPTIONAL,
PSIZE_T ReturnLength OPTIONAL)
{
UNIMPLEMENTED;
return 0;
}
DWORD
NTAPI
RtlMultipleAllocateHeap(IN PVOID HeapHandle,
IN DWORD Flags,
IN SIZE_T Size,
IN DWORD Count,
OUT PVOID *Array)
{
UNIMPLEMENTED;
return 0;
}
DWORD
NTAPI
RtlMultipleFreeHeap(IN PVOID HeapHandle,
IN DWORD Flags,
IN DWORD Count,
OUT PVOID *Array)
{
UNIMPLEMENTED;
return 0;
}

View file

@ -0,0 +1,62 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Runtime Library
* PURPOSE: RTL Interlocked Routines
* FILE: lib/rtl/interlck.c
* PROGRAMERS: Stefan Ginsberg (stefan__100__@hotmail.com)
*/
/* INCLUDES *****************************************************************/
#include <rtl.h>
#define NDEBUG
#include <debug.h>
/* FUNCTIONS ***************************************************************/
PSLIST_ENTRY
NTAPI
RtlInterlockedPopEntrySList(IN PSLIST_HEADER ListHead)
{
UNIMPLEMENTED;
return NULL;
}
PSLIST_ENTRY
NTAPI
RtlInterlockedPushEntrySList(IN PSLIST_HEADER ListHead,
IN PSLIST_ENTRY ListEntry)
{
UNIMPLEMENTED;
return NULL;
}
PSLIST_ENTRY
NTAPI
RtlInterlockedFlushSList(IN PSLIST_HEADER ListHead)
{
UNIMPLEMENTED;
return NULL;
}
PSLIST_ENTRY
NTAPI
RtlInterlockedPushListSList(IN PSLIST_HEADER ListHead,
IN PSLIST_ENTRY List,
IN PSLIST_ENTRY ListEnd,
IN ULONG Count)
{
UNIMPLEMENTED;
return NULL;
}
LONGLONG
NTAPI
RtlInterlockedCompareExchange64(LONGLONG volatile *Destination,
LONGLONG Exchange,
LONGLONG Comparand)
{
/* Just call the intrinsic */
return _InterlockedCompareExchange64(Destination, Exchange, Comparand);
}

View file

@ -329,6 +329,17 @@ RtlEncodePointer(IN PVOID Pointer)
return (PVOID)((ULONG_PTR)Pointer ^ Cookie);
}
/*
* @unimplemented
*/
PVOID
NTAPI
RtlEncodeSystemPointer(IN PVOID Pointer)
{
UNIMPLEMENTED;
return NULL;
}
/*
* @unimplemented
*/
@ -343,4 +354,10 @@ RtlSetProcessIsCritical(
//TODO
}
/* EOF */
ULONG
NTAPI
RtlGetCurrentProcessorNumber(VOID)
{
/* Forward to kernel */
return NtGetCurrentProcessorNumber();
}

View file

@ -43,6 +43,7 @@
<file>access.c</file>
<file>acl.c</file>
<file>actctx.c</file>
<file>atom.c</file>
<file>bitmap.c</file>
<file>bootdata.c</file>
@ -61,6 +62,7 @@
<file>handle.c</file>
<file>heap.c</file>
<file>image.c</file>
<file>interlck.c</file>
<file>message.c</file>
<file>largeint.c</file>
<file>luid.c</file>
@ -78,6 +80,7 @@
<file>resource.c</file>
<file>sd.c</file>
<file>security.c</file>
<file>slist.c</file>
<file>sid.c</file>
<file>sprintf.c</file>
<file>srw.c</file>

View file

@ -81,6 +81,29 @@ RtlImpersonateSelf(IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel)
return(Status);
}
/*
* @unimplemented
*/
NTSTATUS
NTAPI
RtlAcquirePrivilege(IN PULONG Privilege,
IN ULONG NumPriv,
IN ULONG Flags,
OUT PVOID *ReturnedState)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
/*
* @unimplemented
*/
VOID
NTAPI
RtlReleasePrivilege(IN PVOID ReturnedState)
{
UNIMPLEMENTED;
}
/*
* @implemented
@ -224,4 +247,26 @@ RtlSetSecurityObject(IN SECURITY_INFORMATION SecurityInformation,
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
/* EOF */
/*
* @unimplemented
*/
NTSTATUS
NTAPI
RtlRegisterSecureMemoryCacheCallback(IN PRTL_SECURE_MEMORY_CACHE_CALLBACK Callback)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
/*
* @unimplemented
*/
BOOLEAN
NTAPI
RtlFlushSecureMemoryCache(IN PVOID MemoryCache,
IN OPTIONAL SIZE_T MemoryLength)
{
UNIMPLEMENTED;
return FALSE;
}

39
reactos/lib/rtl/slist.c Normal file
View file

@ -0,0 +1,39 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Runtime Library
* PURPOSE: Slist Routines
* FILE: lib/rtl/slist.c
* PROGRAMERS: Stefan Ginsberg (stefan__100__@hotmail.com)
*/
/* INCLUDES *****************************************************************/
#include <rtl.h>
#define NDEBUG
#include <debug.h>
/* FUNCTIONS ***************************************************************/
VOID
NTAPI
RtlInitializeSListHead(IN PSLIST_HEADER ListHead)
{
UNIMPLEMENTED;
}
PSLIST_ENTRY
NTAPI
RtlFirstEntrySList(IN const SLIST_HEADER *ListHead)
{
UNIMPLEMENTED;
return NULL;
}
WORD
NTAPI
RtlQueryDepthSList(IN PSLIST_HEADER ListHead)
{
UNIMPLEMENTED;
return 0;
}

View file

@ -277,5 +277,16 @@ _NtCurrentTeb(VOID)
return NtCurrentTeb();
}
/* EOF */
NTSTATUS
NTAPI
RtlRemoteCall(IN HANDLE Process,
IN HANDLE Thread,
IN PVOID CallSite,
IN ULONG ArgumentCount,
IN PULONG Arguments,
IN BOOLEAN PassContext,
IN BOOLEAN AlreadySuspended)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}

View file

@ -2233,4 +2233,13 @@ RtlValidateUnicodeString(IN ULONG Flags,
}
}
/* EOF */
NTSTATUS
NTAPI
RtlFindCharInUnicodeString(IN ULONG Flags,
IN PUNICODE_STRING SearchString,
IN PCUNICODE_STRING MatchString,
OUT PUSHORT Position)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}

View file

@ -118,7 +118,7 @@ LdrShutdownThread(VOID)
PPEB
STDCALL
RtlpCurrentPeb(VOID)
RtlGetCurrentPeb(VOID)
{
return ((PEPROCESS)(KeGetCurrentThread()->ApcState.Process))->Peb;
}