ReactOS 0.4.16-dev-1946-g52006dd
crtdata.c
Go to the documentation of this file.
1/*
2* PROJECT: ReactOS CRT API tests
3* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4* PURPOSE: Tests for crt data exports
5* COPYRIGHT: Copyright 2021 Timo Kreuzer <timo.kreuzer@reactos.org>
6*/
7
8#include <apitest.h>
9#include <apitest_guard.h>
10
11#define WIN32_NO_STATUS
12#include <stdio.h>
13#include <stdlib.h>
14#include <time.h>
15#include <locale.h>
16#include <mbctype.h>
17
19extern char __ImageBase;
20static void* s_ImageEnd;
21
23{
24 return ((Address >= (void*)&__ImageBase) && (Address <= s_ImageEnd));
25}
26
27// Dynamically imported functions (Vista+)
28int* (__cdecl *p__daylight)(void);
29long* (__cdecl *p__dstbias)(void);
30errno_t (__cdecl *p_get_fmode)(int* _PMode);
31errno_t (__cdecl *p_get_osplatform)(unsigned int *pValue);
32int (__cdecl *p_get_pgmptr)(char** p);
33errno_t (__cdecl *p_get_wpgmptr)(_Outptr_result_z_ wchar_t **_Value);
34errno_t (__cdecl *p_get_winver)(_Out_ unsigned int *_Value);
35errno_t (__cdecl *p_get_winmajor)(_Out_ unsigned int *_Value);
36errno_t (__cdecl *p_get_winminor)(_Out_ unsigned int *_Value);
37errno_t (__cdecl *p_get_environ)(_Out_ char***);
38errno_t (__cdecl *p_get_wenviron)(_Out_ wchar_t***);
39
40
41#ifndef TEST_STATIC
42#define test_is_local_symbol(addr, is) ok_int(IsLocalSymbol(addr), (is))
43#else
44#define test_is_local_symbol(addr, is)
45#endif
46
47void Test___argc(void)
48{
49 void* p = &__argc;
51
52 #undef __argc
53 ok_ptr(&__argc, p);
54#ifdef _M_IX86
56#endif
57}
58
59void Test___argv(void)
60{
61 void* p = &__argv;
63
64 #undef __argv
65 ok_ptr(&__argv, p);
66#ifdef _M_IX86
68#endif
69}
70
72{
73 typedef struct _ioinfo ioinfo;
74 _CRTIMP extern ioinfo* __badioinfo[];
75 ok(__badioinfo != NULL, "__badioinfo is NULL\n");
76 ok(__badioinfo[0] != NULL, "__badioinfo is NULL\n");
77}
78
79#ifndef _M_ARM
81{
82 _CRTIMP extern char** __initenv;
83 ok(__initenv != NULL, "__initenv is NULL\n");
84 ok(*__initenv != NULL, "*__initenv is NULL\n");
85#ifdef _M_IX86
86 _CRTIMP char*** __p___initenv(void);
88#endif
89}
90
92{
93 _CRTIMP extern unsigned int __lc_codepage;
99}
100
102{
103 _CRTIMP extern int __lc_collate_cp;
110}
111#endif // !_M_ARM
112
114{
115 _CRTIMP int __lc_handle;
116 ok_int(__lc_handle, 0);
119 __lc_handle++;
121 __lc_handle--;
122}
123
125{
126 void* p = &__mb_cur_max;
129
130 #undef __mb_cur_max
131 _CRTIMP extern int __mb_cur_max;
133
135#ifdef _M_IX86
136 _CRTIMP int* __p___mb_cur_max(void);
138#endif
139 __mb_cur_max++;
140 if (s_osvi.dwMajorVersion >= 6)
141 {
143#ifdef _M_IX86
145#endif
146 }
147 else
148 {
150#ifdef _M_IX86
151 todo_ros ok_ptr(__p___mb_cur_max(), p); // wine code handles it like on Vista+
153#endif
154 }
155
156 __mb_cur_max--;
157}
158
160{
161
162}
163
164#ifndef _M_ARM
166{
167 _CRTIMP extern unsigned int __setlc_active;
169
170 _CRTIMP unsigned int ___setlc_active_func(void);
175}
176
178{
179 _CRTIMP extern unsigned int __unguarded_readlc_active;
182
185}
186#endif // !_M_ARM
187
188void Test___wargv(void)
189{
190 void* p = &__wargv;
192
193 #undef __wargv
194 _CRTIMP extern wchar_t ** __wargv;
195 ok_ptr(&__wargv, p);
196#ifdef _M_IX86
197 ok_ptr(__p___wargv(), p);
198#endif
199}
200
201#ifndef _M_ARM
203{
204 _CRTIMP extern wchar_t** __winitenv;
205 todo_ros ok(__winitenv == NULL, "__winitenv is not NULL\n");
206#ifdef _M_IX86
207 _CRTIMP wchar_t*** __p___winitenv(void);
209#endif
210}
211#endif
212
213void Test__acmdln(void)
214{
215 _CRTIMP extern char* _acmdln;
216 ok(_acmdln != NULL, "__winitenv is NULL\n");
217#ifdef _M_IX86
218 _CRTIMP char** __p__acmdln(void);
220#endif
221}
222
223#ifdef _M_IX86
224void Test__adjust_fdiv(void)
225{
226 _CRTIMP extern int _adjust_fdiv;
228}
229#endif
230
232{
233 typedef void (*_exit_t)(int exitcode);
234 _CRTIMP extern _exit_t _aexit_rtn;
235 // On Vista and Win 7 the pointer is encoded
236 if ((GetNTVersion() >= 0x600) && (GetNTVersion() <= 0x601))
237 {
239 }
240 else
241 {
243 }
244}
245
247{
248 void* p = &_commode;
250 ok_int(_commode, 0);
251
252 #undef _commode
253 _CRTIMP extern int _commode;
254 ok_ptr(&_commode, p);
255#ifdef _M_IX86
257#endif
258}
259
260void Test__ctype(void)
261{
262 _CRTIMP extern const unsigned short _ctype[];
263 ok_int(_ctype[0], 0);
265
266 #undef _pctype
267 _CRTIMP extern const unsigned short* _pctype;
268 ok(_pctype != &_ctype[0], "_pwctype should not match &_wctype[0]");
269 if (s_osvi.dwMajorVersion >= 6)
270 {
271 ok(_pctype != &_ctype[1], "_pwctype should not match &_wctype[1]");
272 }
273 else
274 {
275 ok(_pctype == &_ctype[1], "_pwctype should match &_wctype[1]");
276 }
277
278 ok(__pctype_func() != _ctype, "__pctype_func() should not match _ctype\n");
281#ifdef _M_IX86
282 _CRTIMP const unsigned short** __cdecl __p__pctype(void);
284#endif
285}
286
287void Test__wctype(void)
288{
289 ok_int(_wctype[0], 0);
291
292 #undef _pwctype
293 _CRTIMP extern const unsigned short* _pwctype;
294 ok_ptr(_pwctype, &_wctype[1]);
295
296 ok(__pwctype_func() != _wctype, "__pwctype_func() == _wctype\n");
299#ifdef _M_IX86
300 _CRTIMP const unsigned short** __cdecl __p__pwctype(void);
302#endif
303}
304
306{
307 void* p = &_daylight;
309
310 #undef _daylight
311 _CRTIMP extern int _daylight;
312 ok_ptr(&_daylight, p);
313
314#ifdef _M_IX86
315 _CRTIMP void* __p__daylight(void);
317#endif
318 if (p__daylight != NULL)
319 {
321 }
322}
323
324#ifndef _M_ARM
326{
327 void* p = &_dstbias;
329
330 #undef _dstbias
331 _CRTIMP extern long _dstbias;
332 ok_ptr(&_dstbias, p);
333#ifdef _M_IX86
334 _CRTIMP long* __cdecl __p__dstbias(void);
336#endif
337 if (p__dstbias != NULL)
338 {
340 }
341}
342
344{
345 void* p = &_environ;
346 ok(_environ != NULL, "_environ == NULL\n");
347
348 #undef _environ
349 _CRTIMP extern char** _environ;
350 ok_ptr(&_environ, p);
351#ifdef _M_IX86
353#endif
354 if (p_get_environ != NULL)
355 {
356 char** result_environ;
357 ok_int(p_get_environ(&result_environ), 0);
358 ok_ptr(result_environ, _environ);
359 }
360}
361
363{
364 _CRTIMP extern int _fileinfo;
365 ok_int(_fileinfo, -1);
366
367#ifdef _M_IX86
368 _CRTIMP int* __p__fileinfo();
370#endif
371}
372#endif // !_M_ARM
373
374void Test__fmode(void)
375{
376 void* p = &_fmode;
378 ok_int(_fmode, 0);
379
380 #undef _fmode
381 _CRTIMP extern int _fmode;
382 ok_ptr(&_fmode, p);
383
384#ifdef _M_IX86
386 ok_ptr(__p__fmode(), p);
387#endif
388
389 if (p_get_fmode != NULL)
390 {
391 _fmode = 1234;
392
393 int mode;
394 ok_int(p_get_fmode(&mode), 0);
396 _fmode = 0;
397 }
398}
399
400void Test__iob(void)
401{
402 void* p = &_iob;
404 ok_ptr(&_iob[0], stdin);
405 ok_ptr(&_iob[1], stdout);
406 ok_ptr(&_iob[2], stderr);
407
408 #undef _iob
409 _CRTIMP extern FILE _iob[];
410 ok_ptr(&_iob, p);
411
413
414#ifdef _M_IX86
415 _CRTIMP int* __cdecl __p__iob();
416 ok_ptr(__p__iob(), p);
417#endif
418}
419
421{
422 void* p = &_mbcasemap;
423 ok_int(_mbcasemap[0], 0);
424
425 #undef _mbcasemap
427
428#ifdef _M_IX86
429 _CRTIMP unsigned char* __cdecl __p__mbcasemap();
431#endif
432}
433
435{
436 void* p = &_mbctype;
437 ok_int(_mbctype[0], 0);
438
439 #undef _mbctype
440 ok_ptr(&_mbctype, p);
441
442#ifdef _M_IX86
443 _CRTIMP unsigned char* __cdecl __p__mbctype();
444 todo_ros ok_ptr(__p__mbctype(), &_mbctype); // wine implements thiss like on Vista
445#endif
446}
447
448#ifndef _M_ARM
450{
452 if (p_get_osplatform != NULL)
453 {
454 unsigned int result_osplatform;
455 ok_int(p_get_osplatform(&result_osplatform), 0);
456 ok_int(result_osplatform, _osplatform);
457 }
458}
459#endif
460
461void Test__osver(void)
462{
464
465#ifdef _M_IX86
468#endif
469}
470
471void Test__pgmptr(void)
472{
473 void* p = &_pgmptr;
474 ok(_pgmptr != NULL, "_pgmptr should not be NULL\n");
475
476 #undef _pgmptr
477 _CRTIMP extern char* _pgmptr;
478 ok_ptr(&_pgmptr, p);
479#ifdef _M_IX86
481#endif
482 if (p_get_pgmptr != NULL)
483 {
484 char *result_pgmptr;
485 ok_int(p_get_pgmptr(&result_pgmptr), 0);
486 ok_ptr(result_pgmptr, _pgmptr);
487 }
488}
489
491{
492 void* p = &_sys_errlist;
494 ok_int(strcmp(_sys_errlist[42], strerror(42)), 0);
495
496 #undef _sys_errlist
497 _CRTIMP extern char* _sys_errlist[];
499}
500
502{
503 void* p = &_sys_nerr;
504 ok_int(_sys_nerr, 43);
505
506 #undef _sys_nerr
507 _CRTIMP extern int _sys_nerr;
508 ok_ptr(&_sys_nerr, p);
509}
510
512{
513 void* p = &_timezone;
515
516 #undef _timezone
517 _CRTIMP extern long _timezone;
518 ok_ptr(&_timezone, p);
519
520#ifdef _M_IX86
521 _CRTIMP char** __p__timezone();
523#endif
524}
525
526void Test__tzname(void)
527{
528 void* p = &_tzname;
530 ok(_tzname[0] != NULL, "_tzname[0] == NULL\n");
531 ok(_tzname[0] != NULL, "_tzname[0] == NULL\n");
532
533 #undef _tzname
534 _CRTIMP extern char * _tzname[2];
535 ok_ptr(_tzname, p);
536
537#ifdef _M_IX86
538 _CRTIMP char** __p__tzname();
540#endif
541}
542
543void Test__wcmdln(void)
544{
545 _CRTIMP extern wchar_t* _wcmdln;
546#ifdef _M_IX86
547 _CRTIMP wchar_t** __p__wcmdln(void);
549#endif
550}
551
552#ifndef _M_ARM
554{
555 void* p = &_wenviron;
556 todo_ros ok(_wenviron == NULL, "_wenviron is not NULL\n");
557
558 #undef _wenviron
559 _CRTIMP extern wchar_t** _wenviron;
560 ok_ptr(&_wenviron, p);
561#ifdef _M_IX86
563#endif
564
565#if 0 // FIXME: This returns an error / NULL on Windows 10
566 if (p_get_wenviron != NULL)
567 {
568 wchar_t** result_wenviron;
569 ok_int(p_get_wenviron(&result_wenviron), 0);
570 ok_ptr(result_wenviron, _wenviron);
571 }
572#endif
573}
574#endif
575
577{
579#ifdef _M_IX86
580 _CRTIMP unsigned int* __cdecl __p__winmajor();
582#endif
583 if (p_get_winmajor != NULL)
584 {
585 unsigned int result_winmajor;
586 ok_int(p_get_winmajor(&result_winmajor), 0);
587 ok_int(result_winmajor, _winmajor);
588 }
589}
590
592{
594#ifdef _M_IX86
595 _CRTIMP unsigned int* __cdecl __p__winminor();
597#endif
598 if (p_get_winminor != NULL)
599 {
600 unsigned int result_winminor;
601 ok_int(p_get_winminor(&result_winminor), 0);
602 ok_int(result_winminor, _winminor);
603 }
604}
605
606#ifndef _M_ARM
607void Test__winver(void)
608{
610#ifdef _M_IX86
611 _CRTIMP unsigned int* __cdecl __p__winver();
613#endif
614 if (p_get_winver != NULL)
615 {
616 unsigned int result_winver;
617 ok_int(p_get_winver(&result_winver), 0);
618 ok_int(result_winver, _winver);
619 }
620}
621#endif
622
624{
625 void* p = _wpgmptr;
627
628 #undef _wpgmptr
629 ok_ptr(_wpgmptr, p);
630
631#ifdef _M_IX86
632 _CRTIMP wchar_t ** __cdecl __p__wpgmptr();
634#endif
635
636#if 0 // FIXME: This returns an error on Windows 10
637 if (p_get_wpgmptr != NULL)
638 {
639 wchar_t* result_wpgmptr;
640 ok_int(p_get_wpgmptr(&result_wpgmptr), 0);
641 ok_ptr(result_wpgmptr, _wpgmptr);
642 }
643#endif
644}
645
647{
648 /* Initialize image size */
650 PIMAGE_NT_HEADERS ntHeaders = (PIMAGE_NT_HEADERS)((PUCHAR)dosHeader + dosHeader->e_lfanew);
651 s_ImageEnd = (PUCHAR)dosHeader + ntHeaders->OptionalHeader.SizeOfImage;
652
653 /* initialize version info */
656
657 HMODULE hmsvcrt = GetModuleHandleA("msvcrt.dll");
658 p__daylight = (void*)GetProcAddress(hmsvcrt, "__daylight");
659 p__dstbias = (void*)GetProcAddress(hmsvcrt, "__dstbias");
660 p_get_fmode = (void*)GetProcAddress(hmsvcrt, "_get_fmode");
661 p_get_osplatform = (void*)GetProcAddress(hmsvcrt, "_get_osplatform");
662 p_get_pgmptr = (void*)GetProcAddress(hmsvcrt, "_get_pgmptr");
663 p_get_wpgmptr = (void*)GetProcAddress(hmsvcrt, "_get_wpgmptr");
664 p_get_winver = (void*)GetProcAddress(hmsvcrt, "_get_winver");
665 p_get_winmajor = (void*)GetProcAddress(hmsvcrt, "_get_winmajor");
666 p_get_winminor = (void*)GetProcAddress(hmsvcrt, "_get_winminor");
667 p_get_environ = (void*)GetProcAddress(hmsvcrt, "_get_environ");
668 p_get_wenviron = (void*)GetProcAddress(hmsvcrt, "_get_wenviron");
669
670 if (s_osvi.dwMajorVersion >= 6)
671 {
672 ok(p__daylight != NULL, "__daylight is NULL\n");
673 ok(p__dstbias != NULL, "__dstbias is NULL\n");
674 ok(p_get_fmode != NULL, "_get_fmode is NULL\n");
675 ok(p_get_osplatform != NULL, "_get_osplatform is NULL\n");
676 ok(p_get_pgmptr != NULL, "_get_pgmptr is NULL\n");
677 ok(p_get_wpgmptr != NULL, "_get_wpgmptr is NULL\n");
678 ok(p_get_winver != NULL, "_get_winver is NULL\n");
679 ok(p_get_winmajor != NULL, "_get_winmajor is NULL\n");
680 ok(p_get_winminor != NULL, "_get_winminor is NULL\n");
681 ok(p_get_environ != NULL, "_get_environ is NULL\n");
682 ok(p_get_wenviron != NULL, "_get_wenviron is NULL\n");
683 }
684
685 Test___argc();
686 Test___argv();
688#ifndef _M_ARM
692#endif
696#ifndef _M_ARM
699#endif
700 Test___wargv();
701#ifndef _M_ARM
703#endif
704 Test__acmdln();
705#ifdef _M_IX86
706 Test__adjust_fdiv();
707#endif
710 Test__ctype();
712#ifndef _M_ARM
716#endif
717 Test__fmode();
718 Test__iob();
721#ifndef _M_ARM
723#endif
724 Test__osver();
725 Test__pgmptr();
729 Test__tzname();
730 Test__wcmdln();
731 Test__wctype();
732#ifndef _M_ARM
734#endif
737#ifndef _M_ARM
738 Test__winver();
739#endif
741}
const wchar_t ** __p__wcmdln(void)
Definition: environ.c:376
const char ** __p__acmdln(void)
Definition: environ.c:368
void _exit(int exitcode)
Definition: _exit.c:25
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
#define __cdecl
Definition: accygwin.h:79
int _adjust_fdiv
Definition: adjust.c:2
aexit_t _aexit_rtn
Definition: amsg.c:39
#define GetNTVersion()
Definition: apitest.h:17
#define ok(value,...)
Definition: atltest.h:57
#define START_TEST(x)
Definition: atltest.h:75
#define ok_int(expression, result)
Definition: atltest.h:134
#define ok_ptr(expression, result)
Definition: atltest.h:108
#define _wcmdln
#define _acmdln
_In_ _Value
void Test__tzname(void)
Definition: crtdata.c:526
char __ImageBase
void Test__winminor(void)
Definition: crtdata.c:591
void Test__osplatform(void)
Definition: crtdata.c:449
void Test__osver(void)
Definition: crtdata.c:461
int IsLocalSymbol(void *Address)
Definition: crtdata.c:22
int *__cdecl * p__daylight(void)
void Test__dstbias(void)
Definition: crtdata.c:325
void Test__acmdln(void)
Definition: crtdata.c:213
void Test__mbcasemap(void)
Definition: crtdata.c:420
void Test__fileinfo(void)
Definition: crtdata.c:362
void Test___argc(void)
Definition: crtdata.c:47
void Test__sys_errlist(void)
Definition: crtdata.c:490
void Test__winver(void)
Definition: crtdata.c:607
void Test__wpgmptr(void)
Definition: crtdata.c:623
void Test___wargv(void)
Definition: crtdata.c:188
void Test__daylight(void)
Definition: crtdata.c:305
void Test___initenv(void)
Definition: crtdata.c:80
void Test__wenviron(void)
Definition: crtdata.c:553
void Test__mbctype(void)
Definition: crtdata.c:434
void Test___winitenv(void)
Definition: crtdata.c:202
void Test__fmode(void)
Definition: crtdata.c:374
void Test__ctype(void)
Definition: crtdata.c:260
void Test___setlc_active(void)
Definition: crtdata.c:165
long *__cdecl * p__dstbias(void)
static OSVERSIONINFOW s_osvi
Definition: crtdata.c:18
void Test__sys_nerr(void)
Definition: crtdata.c:501
void Test__pgmptr(void)
Definition: crtdata.c:471
void Test___argv(void)
Definition: crtdata.c:59
static void * s_ImageEnd
Definition: crtdata.c:20
void Test__aexit_rtn(void)
Definition: crtdata.c:231
void Test__environ(void)
Definition: crtdata.c:343
void Test___pioinfo(void)
Definition: crtdata.c:159
void Test__wcmdln(void)
Definition: crtdata.c:543
void Test__commode(void)
Definition: crtdata.c:246
void Test__iob(void)
Definition: crtdata.c:400
void Test___mb_cur_max(void)
Definition: crtdata.c:124
void Test__timezone(void)
Definition: crtdata.c:511
void Test__winmajor(void)
Definition: crtdata.c:576
void Test___lc_handle(void)
Definition: crtdata.c:113
void Test__wctype(void)
Definition: crtdata.c:287
void Test___unguarded_readlc_active(void)
Definition: crtdata.c:177
void Test___lc_collate_cp(void)
Definition: crtdata.c:101
void Test___badioinfo(void)
Definition: crtdata.c:71
#define test_is_local_symbol(addr, is)
Definition: crtdata.c:42
void Test___lc_codepage(void)
Definition: crtdata.c:91
const unsigned short ** __p__pwctype(void)
Definition: ctype.c:564
#define NULL
Definition: types.h:112
#define FALSE
Definition: types.h:117
char ** __initenv
Definition: environ.c:24
wchar_t ** __winitenv
Definition: environ.c:25
#define GetProcAddress(x, y)
Definition: compat.h:753
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
Definition: loader.c:812
BOOL WINAPI GetVersionExW(IN LPOSVERSIONINFOW lpVersionInformation)
Definition: version.c:37
void * __p__fileinfo()
Definition: stubs.c:17
int _fileinfo
Definition: stubs.c:14
void * __p__mbcasemap()
Definition: stubs.c:25
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS
Definition: ntddk_ex.h:187
struct _IMAGE_DOS_HEADER * PIMAGE_DOS_HEADER
PWCHAR pValue
GLenum mode
Definition: glext.h:6217
GLfloat GLfloat p
Definition: glext.h:8902
#define _CONTROL
Definition: ctype.h:71
#define __mb_cur_max
Definition: ctype.h:629
#define ___mb_cur_max_func()
Definition: ctype.h:636
_CRTIMP unsigned int __cdecl ___lc_collate_cp_func(void)
Definition: locale.c:637
_CRTIMP unsigned int __cdecl ___lc_codepage_func(void)
Definition: locale.c:629
#define stdout
Definition: stdio.h:99
_CRTIMP int _commode
Definition: environ.c:31
#define stderr
Definition: stdio.h:100
_CRTIMP FILE *__cdecl __iob_func(void)
Definition: file.c:682
#define stdin
Definition: stdio.h:98
#define __pwctype_func()
Definition: wctype.h:68
#define __pctype_func()
Definition: wctype.h:34
#define _pctype
Definition: wctype.h:43
#define _wctype
Definition: wctype.h:58
#define _pwctype
Definition: wctype.h:67
#define todo_ros
Definition: minitest.h:74
int *__cdecl __p___mb_cur_max(void)
Definition: environ.c:430
unsigned int *__cdecl __p__fmode(void)
Definition: fmode.c:9
const char * strerror(int err)
Definition: compat_str.c:23
#define _Outptr_result_z_
Definition: ms_sal.h:434
unsigned int _winminor
Definition: environ.c:12
unsigned int _winmajor
Definition: environ.c:13
unsigned int _osver
Definition: environ.c:11
unsigned int _osplatform
Definition: environ.c:10
unsigned int _winver
Definition: environ.c:14
#define _Out_
Definition: no_sal2.h:160
static WCHAR Address[46]
Definition: ping.c:68
_CRTIMP char * _sys_errlist[]
Definition: strerror.c:68
_CRTIMP char **__cdecl __p__pgmptr()
Definition: environ.c:454
_CRTIMP char ***__cdecl __p___argv()
Definition: getargs.c:483
_CRTIMP wchar_t ***__cdecl __p___wargv()
Definition: getargs.c:491
_CRTIMP wchar_t ***__cdecl __p__wenviron()
Definition: environ.c:392
_CRTIMP int _sys_nerr
Definition: strerror.c:80
_CRTIMP wchar_t **__cdecl __p__wpgmptr()
Definition: environ.c:477
_CRTIMP int *__cdecl __p___argc()
Definition: getargs.c:475
_CRTIMP char ***__cdecl __p__environ()
Definition: environ.c:384
#define __argv
Definition: stdlib.h:1154
#define __argc
Definition: stdlib.h:1153
#define _pgmptr
Definition: stdlib.h:253
#define _fmode
Definition: stdlib.h:255
#define _environ
Definition: stdlib.h:1171
#define _wpgmptr
Definition: stdlib.h:254
#define _wenviron
Definition: stdlib.h:1172
#define __wargv
Definition: stdlib.h:1155
#define _daylight
Definition: time.h:70
#define _dstbias
Definition: time.h:76
#define _timezone
Definition: time.h:82
#define _tzname
Definition: time.h:88
_CRTIMP ioinfo * __badioinfo[]
Definition: file.c:126
const unsigned short _ctype[257]
Definition: ctype.c:36
int __lc_collate_cp
unsigned int __lc_codepage
Definition: locale.c:36
LCID *CDECL ___lc_handle_func(void)
Definition: locale.c:621
unsigned int __unguarded_readlc_active
Definition: environ.c:17
unsigned int CDECL ___setlc_active_func(void)
Definition: locale.c:1483
const unsigned short ** __p__pctype(void)
Definition: locale.c:1520
unsigned int *CDECL ___unguarded_readlc_active_add_func(void)
Definition: locale.c:1492
unsigned int __setlc_active
Definition: environ.c:16
wchar_t *** __p___winitenv(void)
Definition: environ.c:408
unsigned int * __p__winminor(void)
Definition: environ.c:508
unsigned int * __p__winmajor(void)
Definition: environ.c:500
unsigned int * __p__winver(void)
Definition: environ.c:516
char *** __p___initenv(void)
Definition: environ.c:400
unsigned int * __p__osver(void)
Definition: environ.c:446
int * __p__commode(void)
Definition: environ.c:352
FILE _iob[_IOB_ENTRIES]
Definition: file.c:133
long * __p__dstbias(void)
Definition: timezone.c:69
void * __p__daylight(void)
Definition: timezone.c:37
char ** __p__tzname(void)
Definition: timezone.c:79
long * __p__timezone(void)
Definition: timezone.c:53
IMAGE_OPTIONAL_HEADER32 OptionalHeader
Definition: ntddk_ex.h:184
ULONG dwMinorVersion
Definition: rtltypes.h:248
ULONG dwPlatformId
Definition: rtltypes.h:250
ULONG dwOSVersionInfoSize
Definition: rtltypes.h:246
ULONG dwMajorVersion
Definition: rtltypes.h:247
ULONG dwBuildNumber
Definition: rtltypes.h:249
Definition: file.c:59
unsigned char * PUCHAR
Definition: typedefs.h:53
int errno_t
Definition: corecrt.h:615
#define _mbctype
Definition: mbctype.h:33
#define _mbcasemap
Definition: mbctype.h:34
_UCRT_DISABLE_CLANG_WARNINGS _CRT_BEGIN_C_HEADER _Check_return_ _ACRTIMP unsigned char *__cdecl __p__mbctype(void)
Definition: ismblead.c:48
#define _CRTIMP
Definition: vcruntime.h:54
PVOID WINAPI EncodePointer(PVOID)