Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

62 lines
934 B

/*++
Copyright (c) 2002 Microsoft Corporation
Module Name:
IgnoreCRTExit.cpp
Abstract:
Prevent CRT shutdown routines from running. At some point MSVCRT didn't
actually call these, so some apps fault when they really do get called.
Notes:
This is a general purpose shim.
History:
05/09/2002 linstev Created
--*/
#include "precomp.h"
IMPLEMENT_SHIM_BEGIN(IgnoreCRTExit)
#include "ShimHookMacro.h"
typedef LPVOID (__cdecl *_pfn_atexit)(LPVOID);
typedef LPVOID (__cdecl *_pfn__onexit)(LPVOID);
APIHOOK_ENUM_BEGIN
APIHOOK_ENUM_ENTRY(atexit)
APIHOOK_ENUM_ENTRY(_onexit)
APIHOOK_ENUM_END
VOID
__cdecl
APIHOOK(atexit)(LPVOID lpFunc)
{
return;
}
LPVOID
__cdecl
APIHOOK(_onexit)(LPVOID lpFunc)
{
return lpFunc;
}
/*++
Register hooked functions
--*/
HOOK_BEGIN
APIHOOK_ENTRY(MSVCRT.DLL, atexit)
APIHOOK_ENTRY(MSVCRT.DLL, _onexit)
HOOK_END
IMPLEMENT_SHIM_END