- Add exports for RtlInstallFunctionTableCallback and RtlRestoreContext (amd64 only)
[KERNEL32]
- Forward RtlCompareMemory, RtlCopyMemory, RtlDeleteFunctionTable and RtlInstallFunctionTableCallback to ntdll
- Fix build with MSVC amd64

svn path=/trunk/; revision=53343
This commit is contained in:
Timo Kreuzer 2011-08-20 19:04:55 +00:00
parent 7f5e1ecb95
commit 954922d0cd
5 changed files with 45 additions and 11 deletions

View file

@ -721,6 +721,7 @@
;@ stdcall RtlInitializeStackTraceDataBase ; 5.1 SP2 and SP3, and 5.2 only
@ stdcall RtlInsertElementGenericTable(ptr ptr long ptr)
@ stdcall RtlInsertElementGenericTableAvl(ptr ptr long ptr)
@ stdcall -arch=x86_64 RtlInstallFunctionTableCallback(double double long ptr ptr ptr)
@ stdcall RtlInt64ToUnicodeString(double long ptr)
@ stdcall RtlIntegerToChar(long long long ptr)
@ stdcall RtlIntegerToUnicodeString(long long ptr)
@ -855,6 +856,7 @@
@ stdcall RtlRemoveVectoredContinueHandler(ptr)
@ stdcall RtlRemoveVectoredExceptionHandler(ptr)
@ stdcall RtlResetRtlTranslations(ptr)
@ stdcall -arch=x86_64 RtlRestoreContext(ptr ptr)
@ stdcall RtlRestoreLastWin32Error(long) RtlSetLastWin32Error
;@ stdcall RtlRevertMemoryStream
@ stdcall RtlRunDecodeUnicodeString(long ptr)

View file

@ -8,20 +8,25 @@
#include <asm.inc>
.code64
PUBLIC BaseFiberStartup
.PROC BaseFiberStartup
FUNC BaseFiberStartup
.ENDPROLOG
UNIMPLEMENTED BaseFiberStartup
/* FIXME: TODO */
ret
.ENDP BaseFiberStartup
ENDFUNC BaseFiberStartup
PUBLIC SwitchToFiber
SwitchToFiber:
FUNC SwitchToFiber
.ENDPROLOG
UNIMPLEMENTED BaseFiberStartup
/* FIXME: TODO */
ret
ENDFUNC SwitchToFiber
END

View file

@ -7,16 +7,19 @@
*/
#include <asm.inc>
.code64
EXTERN BaseThreadStartup:PROC
EXTERN BaseProcessStartup:PROC
PUBLIC BaseThreadStartupThunk
PUBLIC BaseProcessStartThunk
BaseThreadStartupThunk:
/* Start out fresh */
xor rbp, rbp
push rbx /* lpParameter */
push rax /* lpStartAddress */
push 0 /* Return RIP */
@ -26,7 +29,7 @@ BaseProcessStartThunk:
/* Start out fresh */
xor rbp, rbp
push rax /* lpStartAddress */
push 0 /* Return RIP */
jmp BaseProcessStartup

View file

@ -974,11 +974,11 @@
@ stdcall lstrlenA(str)
@ stdcall lstrlenW(wstr)
@ cdecl -arch=x86_64 RtlAddFunctionTable(ptr long long) ntdll.RtlAddFunctionTable
@ stdcall -arch=x86_64 RtlCompareMemory(ptr ptr ptr)
@ stdcall -arch=x86_64 RtlCopyMemory(ptr ptr ptr)
@ stdcall -arch=x86_64 RtlDeleteFunctionTable(ptr)
@ stdcall -arch=x86_64 RtlInstallFunctionTableCallback(double double long ptr ptr ptr)
@ stdcall -arch=x86_64 RtlAddFunctionTable(ptr long long) ntdll.RtlAddFunctionTable
@ stdcall -arch=x86_64 RtlCompareMemory(ptr ptr ptr) ntdll.RtlCompareMemory
@ stdcall -arch=x86_64 RtlCopyMemory(ptr ptr ptr) ntdll.memcpy
@ stdcall -arch=x86_64 RtlDeleteFunctionTable(ptr) ntdll.RtlDeleteFunctionTable
@ stdcall -arch=x86_64 RtlInstallFunctionTableCallback(double double long ptr ptr ptr) ntdll.RtlInstallFunctionTableCallback
@ stdcall -arch=x86_64 RtlLookupFunctionEntry(ptr ptr ptr) ntdll.RtlLookupFunctionEntry
@ stdcall -arch=x86_64 RtlPcToFileHeader(ptr ptr) ntdll.RtlPcToFileHeader
@ stdcall -arch=x86_64 RtlRaiseException(ptr) ntdll.RtlRaiseException

View file

@ -51,3 +51,27 @@ RtlDispatchException(IN PEXCEPTION_RECORD ExceptionRecord,
UNIMPLEMENTED;
return FALSE;
}
NTSYSAPI
VOID
RtlRestoreContext(
PCONTEXT ContextRecord,
PEXCEPTION_RECORD ExceptionRecord)
{
UNIMPLEMENTED;
}
NTSYSAPI
BOOLEAN
RtlInstallFunctionTableCallback(
DWORD64 TableIdentifier,
DWORD64 BaseAddress,
DWORD Length,
PGET_RUNTIME_FUNCTION_CALLBACK Callback,
PVOID Context,
PCWSTR OutOfProcessCallbackDll)
{
UNIMPLREMENTED;
return FALSE;
}