windows-nt/Source/XPSP1/NT/base/ntdll/alpha/ldrctx.c
2020-09-26 16:20:57 +08:00

80 lines
1.1 KiB
C

/*++
Copyright (c) 1998 Microsoft Corporation
Module Name:
ldrctx.c
Abstract:
This module contains support for relocating executables.
Author:
Landy Wang (landyw) 8-Jul-1998
Environment:
User Mode only
Revision History:
--*/
#include <ntos.h>
#include <ldrp.h>
VOID
LdrpRelocateStartContext (
IN PCONTEXT Context,
IN LONG_PTR Diff
)
/*++
Routine Description:
This routine relocates the start context to mesh with the
executable that has just been relocated.
Arguments:
Context - Supplies a context that needs editing.
Diff - Supplies the difference from the based address to the relocated
address.
Return Value:
None.
--*/
{
Context->IntA0 += (ULONGLONG)Diff;
Context->IntGp += (ULONGLONG)Diff;
}
VOID
LdrpCorReplaceStartContext (
IN PCONTEXT Context
)
/*++
Routine Description:
This routine replaces the initial address to run by one in mscoree.dll.
Arguments:
Context - Supplies a context that needs editing.
Return Value:
None.
--*/
{
Context->IntA0 = (ULONGLONG)CorExeMain;
}