91{
92 TRACE(
"(%p, %s, %p) pid(%lx), tid(%lx), tls(%lu)\n",
96
98 {
106 }
113 }
114#if defined(__x86_64__) && _MSVCR_VER>=140
115 if(!msvcrt_init_handler4()) {
121 }
122#endif
127#if _MSVCR_VER >= 100 && _MSVCR_VER <= 120
128 msvcrt_init_concurrency(hinstDLL);
129#endif
130#if _MSVCR_VER == 0
131
133#elif _MSVCR_VER >= 80
135#endif
137 TRACE(
"finished process init\n");
138 break;
140#if defined(__x86_64__) && _MSVCR_VER>=140
141 msvcrt_attach_handler4();
142#endif
143 break;
155#if defined(__x86_64__) && _MSVCR_VER>=140
156 msvcrt_free_handler4();
157#endif
159#if _MSVCR_VER >= 100 && _MSVCR_VER <= 120
160 msvcrt_free_scheduler_thread();
161 msvcrt_free_concurrency();
162#endif
164 TRACE(
"finished process free\n");
165 break;
168#if _MSVCR_VER >= 100 && _MSVCR_VER <= 120
169 msvcrt_free_scheduler_thread();
170#endif
171 TRACE(
"finished thread free\n");
172 break;
173 }
175}
static DWORD const fdwReason
#define DLL_THREAD_DETACH
#define DLL_PROCESS_ATTACH
#define DLL_PROCESS_DETACH
#define DLL_THREAD_ATTACH
void msvcrt_free_console(void)
void msvcrt_free_args(void)
void msvcrt_init_args(void)
void msvcrt_free_signals(void)
void msvcrt_init_signals(void)
void msvcrt_init_io(void)
void msvcrt_free_io(void)
BOOL msvcrt_init_heap(void)
void msvcrt_destroy_heap(void)
_ACRTIMP void __cdecl _free_locale(_locale_t)
_ACRTIMP int __cdecl _set_printf_count_output(int)
BOOL msvcrt_init_locale(void)
void msvcrt_init_mt_locks(void)
void msvcrt_free_locks(void)
static void msvcrt_free_tls_mem(void)
static const char * msvcrt_get_reason(DWORD reason)
static BOOL msvcrt_init_tls(void)
static BOOL msvcrt_free_tls(void)
void msvcrt_init_exception(void *)
void msvcrt_free_popen_data(void)
void msvcrt_init_clock(void)
NTSTATUS NTAPI LdrAddRefDll(_In_ ULONG Flags, _In_ PVOID BaseAddress)
#define LDR_ADDREF_DLL_PIN
static IN DWORD IN LPVOID lpvReserved
void msvcrt_init_math(void)
DWORD WINAPI GetCurrentThreadId(void)
DWORD WINAPI GetCurrentProcessId(void)