Leaked source code of windows server 2003
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.
|
|
#include <windows.h>
#include <stdio.h>
int __cdecl main(int, char **, char **);
typedef void (__cdecl *_PVFV)(void);
#pragma data_seg(".CRT$XIA")
_PVFV __xi_a[] = { NULL };
#pragma data_seg(".CRT$XIZ")
_PVFV __xi_z[] = { NULL };
#pragma data_seg(".CRT$XCA")
_PVFV __xc_a[] = { NULL };
#pragma data_seg(".CRT$XCZ")
_PVFV __xc_z[] = { NULL };
#pragma data_seg(".CRT$XPA")
_PVFV __xp_a[] = { NULL };
#pragma data_seg(".CRT$XPZ")
_PVFV __xp_z[] = { NULL };
#pragma data_seg(".CRT$XTA")
_PVFV __xt_a[] = { NULL };
#pragma data_seg(".CRT$XTZ")
_PVFV __xt_z[] = { NULL };
#if defined(_IA64_)
#pragma comment(linker, "/merge:.CRT=.srdata")
#else
#pragma comment(linker, "/merge:.CRT=.rdata")
#endif
#pragma data_seg() /* reset */
_PVFV *__onexitbegin; _PVFV *__onexitend;
static void _initterm ( _PVFV * pfbegin, _PVFV * pfend ) { /*
* walk the table of function pointers from the bottom up, until * the end is encountered. Do not skip the first entry. The initial * value of pfbegin points to the first valid entry. Do not try to * execute what pfend points to. Only entries before pfend are valid. */ while ( pfbegin < pfend ) { /*
* if current table entry is non-NULL, call thru it. */ if ( *pfbegin != NULL ) (**pfbegin)(); ++pfbegin; } }
void mainNoCRTStartup( void ) { __try {
// do C initializations
_initterm( __xi_a, __xi_z ); // do C++ initializations
_initterm( __xc_a, __xc_z );
main(1, 0, 0);
} __except ( EXCEPTION_EXECUTE_HANDLER ) {
}
__try { // Do C++ terminators
_initterm(__onexitbegin, __onexitend);
// do pre-terminators
_initterm(__xp_a, __xp_z);
// do C terminiators
_initterm(__xt_a, __xt_z);
} __except(EXCEPTION_EXECUTE_HANDLER) {
} }
|