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

View file

@ -3239,4 +3239,29 @@ LdrProcessRelocationBlock(IN ULONG_PTR Address,
return (PIMAGE_BASE_RELOCATION)TypeOffset; 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; return UserMode;
} }
/*
* @implemented
*/
PPEB PPEB
NTAPI NTAPI
RtlpCurrentPeb(VOID) RtlGetCurrentPeb(VOID)
{ {
return NtCurrentPeb(); return NtCurrentPeb();
} }

View file

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

View file

@ -407,6 +407,13 @@ RtlNtStatusToDosError(
IN NTSTATUS Status IN NTSTATUS Status
); );
NTSYSAPI
ULONG
NTAPI
RtlNtStatusToDosErrorNoTeb(
IN NTSTATUS Status
);
NTSYSAPI NTSYSAPI
VOID VOID
NTAPI NTAPI
@ -567,6 +574,14 @@ RtlGetUserInfoHeap(
OUT PULONG UserFlags OUT PULONG UserFlags
); );
NTSYSAPI
PVOID
NTAPI
RtlProtectHeap(
IN PVOID HeapHandle,
IN BOOLEAN Protect
);
NTSYSAPI NTSYSAPI
PWSTR PWSTR
NTAPI NTAPI
@ -647,6 +662,14 @@ RtlValidateHeap(
PVOID P PVOID P
); );
NTSYSAPI
NTSTATUS
NTAPI
RtlWalkHeap(
IN HANDLE HeapHandle,
IN PVOID HeapEntry
);
#define RtlGetProcessHeap() (NtCurrentPeb()->ProcessHeap) #define RtlGetProcessHeap() (NtCurrentPeb()->ProcessHeap)
// //
@ -1883,6 +1906,13 @@ RtlFillMemoryUlong(
// //
// Process Management Functions // Process Management Functions
// //
NTSYSAPI
PPEB
NTAPI
RtlGetCurrentPeb(
VOID
);
NTSYSAPI NTSYSAPI
VOID VOID
NTAPI NTAPI
@ -1972,6 +2002,19 @@ VOID
NTAPI NTAPI
RtlReleasePebLock(VOID); 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 NTSYSAPI
VOID VOID
NTAPI NTAPI
@ -1981,6 +2024,13 @@ RtlSetProcessIsCritical(
IN BOOLEAN IsWinlogon IN BOOLEAN IsWinlogon
); );
NTSYSAPI
ULONG
NTAPI
RtlGetCurrentProcessorNumber(
VOID
);
#define NtCurrentPeb() (NtCurrentTeb()->ProcessEnvironmentBlock) #define NtCurrentPeb() (NtCurrentTeb()->ProcessEnvironmentBlock)
// //
@ -2771,6 +2821,15 @@ LdrRelocateImageWithBias(
// Activation Context Functions // Activation Context Functions
// //
#ifdef NTOS_MODE_USER #ifdef NTOS_MODE_USER
NTSYSAPI
VOID
NTAPI
RtlAddRefActivationContext(
PVOID Context
);
NTSYSAPI NTSYSAPI
NTSTATUS NTSTATUS
NTAPI NTAPI
@ -2800,6 +2859,14 @@ RtlReleaseActivationContext(
IN PVOID *Context IN PVOID *Context
); );
NTSYSAPI
NTSTATUS
NTAPI
RtlDeactivateActivationContext(
DWORD dwFlags,
ULONG_PTR ulCookie
);
NTSYSAPI NTSYSAPI
NTSTATUS NTSTATUS
NTAPI NTAPI
@ -2832,6 +2899,28 @@ RtlFindActivationContextSectionString(
IN PUNICODE_STRING SectionName, IN PUNICODE_STRING SectionName,
IN PVOID Unknown2 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 #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 #define NDEBUG
#include <debug.h> #include <debug.h>
PPEB NTAPI RtlpCurrentPeb(VOID);
/* FUNCTIONS *****************************************************************/ /* FUNCTIONS *****************************************************************/
/* /*
@ -508,7 +507,7 @@ RtlQueryEnvironmentVariable_U(PWSTR Environment,
if (Environment == NULL) if (Environment == NULL)
{ {
PPEB Peb = RtlpCurrentPeb(); PPEB Peb = RtlGetCurrentPeb();
if (Peb) { if (Peb) {
Environment = Peb->ProcessParameters->Environment; Environment = Peb->ProcessParameters->Environment;
SysEnvUsed = TRUE; SysEnvUsed = TRUE;

View file

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

View file

@ -169,4 +169,13 @@ RtlUnhandledExceptionFilter(IN struct _EXCEPTION_POINTERS* ExceptionInfo)
return ERROR_CALL_NOT_IMPLEMENTED; 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; 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); return (PVOID)((ULONG_PTR)Pointer ^ Cookie);
} }
/*
* @unimplemented
*/
PVOID
NTAPI
RtlEncodeSystemPointer(IN PVOID Pointer)
{
UNIMPLEMENTED;
return NULL;
}
/* /*
* @unimplemented * @unimplemented
*/ */
@ -343,4 +354,10 @@ RtlSetProcessIsCritical(
//TODO //TODO
} }
/* EOF */ ULONG
NTAPI
RtlGetCurrentProcessorNumber(VOID)
{
/* Forward to kernel */
return NtGetCurrentProcessorNumber();
}

View file

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

View file

@ -81,6 +81,29 @@ RtlImpersonateSelf(IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel)
return(Status); 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 * @implemented
@ -224,4 +247,26 @@ RtlSetSecurityObject(IN SECURITY_INFORMATION SecurityInformation,
UNIMPLEMENTED; UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED; 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(); return NtCurrentTeb();
} }
NTSTATUS
/* EOF */ 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 PPEB
STDCALL STDCALL
RtlpCurrentPeb(VOID) RtlGetCurrentPeb(VOID)
{ {
return ((PEPROCESS)(KeGetCurrentThread()->ApcState.Process))->Peb; return ((PEPROCESS)(KeGetCurrentThread()->ApcState.Process))->Peb;
} }