mirror of
https://github.com/reactos/reactos.git
synced 2025-07-29 09:22:04 +00:00
[RTL] Implement dynamic function tables for x64
This commit is contained in:
parent
ef1311b7a4
commit
8521f6d7b5
6 changed files with 355 additions and 38 deletions
|
@ -107,6 +107,13 @@ RtlLookupFunctionTable(
|
|||
return Table;
|
||||
}
|
||||
|
||||
PRUNTIME_FUNCTION
|
||||
NTAPI
|
||||
RtlpLookupDynamicFunctionEntry(
|
||||
_In_ DWORD64 ControlPc,
|
||||
_Out_ PDWORD64 ImageBase,
|
||||
_In_ PUNWIND_HISTORY_TABLE HistoryTable);
|
||||
|
||||
/*! RtlLookupFunctionEntry
|
||||
* \brief Locates the RUNTIME_FUNCTION entry corresponding to a code address.
|
||||
* \ref http://msdn.microsoft.com/en-us/library/ms680597(VS.85).aspx
|
||||
|
@ -126,10 +133,10 @@ RtlLookupFunctionEntry(
|
|||
/* Find the corresponding table */
|
||||
FunctionTable = RtlLookupFunctionTable(ControlPc, ImageBase, &TableLength);
|
||||
|
||||
/* Fail, if no table is found */
|
||||
/* If no table is found, try dynamic function tables */
|
||||
if (!FunctionTable)
|
||||
{
|
||||
return NULL;
|
||||
return RtlpLookupDynamicFunctionEntry(ControlPc, ImageBase, HistoryTable);
|
||||
}
|
||||
|
||||
/* Use relative virtual address */
|
||||
|
@ -164,40 +171,6 @@ RtlLookupFunctionEntry(
|
|||
return NULL;
|
||||
}
|
||||
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
RtlAddFunctionTable(
|
||||
IN PRUNTIME_FUNCTION FunctionTable,
|
||||
IN DWORD EntryCount,
|
||||
IN DWORD64 BaseAddress)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
RtlDeleteFunctionTable(
|
||||
IN PRUNTIME_FUNCTION FunctionTable)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
RtlInstallFunctionTableCallback(
|
||||
IN DWORD64 TableIdentifier,
|
||||
IN DWORD64 BaseAddress,
|
||||
IN DWORD Length,
|
||||
IN PGET_RUNTIME_FUNCTION_CALLBACK Callback,
|
||||
IN PVOID Context,
|
||||
IN PCWSTR OutOfProcessCallbackDll)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static
|
||||
__inline
|
||||
ULONG
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue