authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-07-02 11:56:43+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-07-02 13:02:32+02:00
log7f89b5860c765b76c0ef4f07c214e5110ed59bec
treef24fbdb9b41445c55c6f515c462842ae95322301
parente118484c098264fa930f25f19d66e90c8de269aa
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

libc: update MinGW-w64 sources to 31bd54ab7d5fe03c67ed2bb1a57e531b9c7f8cc4


121 files changed, 7523 insertions(+), 5006 deletions(-)

lib/libc/mingw/crt/crt_handler.c+40-197
...@@ -13,9 +13,14 @@...@@ -13,9 +13,14 @@
13#include <signal.h>13#include <signal.h>
14#include <stdio.h>14#include <stdio.h>
1515
16EXCEPTION_DISPOSITION __cdecl __mingw_SEH_error_handler(struct _EXCEPTION_RECORD *, void *, struct _CONTEXT *, void *);
17
18#if defined(__x86_64__) && !defined(_MSC_VER) && !defined(__SEH__)
19
16#pragma pack(push,1)20#pragma pack(push,1)
17typedef struct _UNWIND_INFO {21typedef struct _UNWIND_INFO {
18 BYTE VersionAndFlags;22 BYTE Version:3;
23 BYTE Flags:5;
19 BYTE PrologSize;24 BYTE PrologSize;
20 BYTE CountOfUnwindCodes;25 BYTE CountOfUnwindCodes;
21 BYTE FrameRegisterAndOffset;26 BYTE FrameRegisterAndOffset;
...@@ -27,16 +32,11 @@ PIMAGE_SECTION_HEADER _FindPESectionByName (const char *);...@@ -27,16 +32,11 @@ PIMAGE_SECTION_HEADER _FindPESectionByName (const char *);
27PIMAGE_SECTION_HEADER _FindPESectionExec (size_t);32PIMAGE_SECTION_HEADER _FindPESectionExec (size_t);
28PBYTE _GetPEImageBase (void);33PBYTE _GetPEImageBase (void);
2934
30int __mingw_init_ehandler (void);
31extern void _fpreset (void);
32
33#if defined(__x86_64__) && !defined(_MSC_VER) && !defined(__SEH__)
34EXCEPTION_DISPOSITION __mingw_SEH_error_handler(struct _EXCEPTION_RECORD *, void *, struct _CONTEXT *, void *);
35
36#define MAX_PDATA_ENTRIES 3235#define MAX_PDATA_ENTRIES 32
37static RUNTIME_FUNCTION emu_pdata[MAX_PDATA_ENTRIES];36static RUNTIME_FUNCTION emu_pdata[MAX_PDATA_ENTRIES];
38static UNWIND_INFO emu_xdata[MAX_PDATA_ENTRIES];37static UNWIND_INFO emu_xdata[MAX_PDATA_ENTRIES];
3938
39int __mingw_init_ehandler (void);
40int40int
41__mingw_init_ehandler (void)41__mingw_init_ehandler (void)
42{42{
...@@ -55,7 +55,8 @@ __mingw_init_ehandler (void)...@@ -55,7 +55,8 @@ __mingw_init_ehandler (void)
55 /* Fill tables and entries. */55 /* Fill tables and entries. */
56 while (e < MAX_PDATA_ENTRIES && (pSec = _FindPESectionExec (e)) != NULL)56 while (e < MAX_PDATA_ENTRIES && (pSec = _FindPESectionExec (e)) != NULL)
57 {57 {
58 emu_xdata[e].VersionAndFlags = 9; /* UNW_FLAG_EHANDLER | UNW_VERSION */58 emu_xdata[e].Version = 1;
59 emu_xdata[e].Flags = UNW_FLAG_EHANDLER;
59 emu_xdata[e].AddressOfExceptionHandler =60 emu_xdata[e].AddressOfExceptionHandler =
60 (DWORD)(size_t) ((LPBYTE)__mingw_SEH_error_handler - _ImageBase);61 (DWORD)(size_t) ((LPBYTE)__mingw_SEH_error_handler - _ImageBase);
61 emu_pdata[e].BeginAddress = pSec->VirtualAddress;62 emu_pdata[e].BeginAddress = pSec->VirtualAddress;
...@@ -74,203 +75,45 @@ __mingw_init_ehandler (void)...@@ -74,203 +75,45 @@ __mingw_init_ehandler (void)
74 return 1;75 return 1;
75}76}
7677
77extern void _fpreset (void);78#endif
7879
79EXCEPTION_DISPOSITION80#if defined(__i386__)
81/* We need to make sure that we align the stack to 16 bytes for the sake of SSE */
82__attribute__((force_align_arg_pointer))
83#endif
84EXCEPTION_DISPOSITION __cdecl
80__mingw_SEH_error_handler (struct _EXCEPTION_RECORD* ExceptionRecord,85__mingw_SEH_error_handler (struct _EXCEPTION_RECORD* ExceptionRecord,
81 void *EstablisherFrame __attribute__ ((unused)),86 void *EstablisherFrame __attribute__ ((unused)),
82 struct _CONTEXT* ContextRecord __attribute__ ((unused)),87 struct _CONTEXT* ContextRecord,
83 void *DispatcherContext __attribute__ ((unused)))88 void *DispatcherContext __attribute__ ((unused)))
84{89{
85 EXCEPTION_DISPOSITION action = ExceptionContinueSearch; /* EXCEPTION_CONTINUE_SEARCH; */90 long action;
86 void (*old_handler) (int);91
87 int reset_fpu = 0;92 if (ExceptionRecord->ExceptionFlags & EXCEPTION_UNWINDING)
8893 return ExceptionContinueSearch;
89 switch (ExceptionRecord->ExceptionCode)94
95 /* Despite that the CRT _XcptFilter() function is SEH __except filter function,
96 * it directly executes the handler registered by CRT signal() function. Normally
97 * the SEH __except handler is called based on the SEH __except filter result.
98 *
99 * If the CRT signal handler function (called by _XcptFilter() function) returns
100 * then the CRT _XcptFilter() returns back to us and the action is set to:
101 * EXCEPTION_CONTINUE_EXECUTION - execution of the process should continue
102 * EXCEPTION_EXECUTE_HANDLER - execution of the process should be aborted
103 * EXCEPTION_CONTINUE_SEARCH - parent SEH handler should be called
104 */
105 action = _XcptFilter(ExceptionRecord->ExceptionCode, &(EXCEPTION_POINTERS){.ExceptionRecord = ExceptionRecord, .ContextRecord = ContextRecord});
106 switch (action)
90 {107 {
91 case EXCEPTION_ACCESS_VIOLATION:108 case EXCEPTION_CONTINUE_SEARCH:
92 /* test if the user has set SIGSEGV */109 return ExceptionContinueSearch;
93 old_handler = signal (SIGSEGV, SIG_DFL);
94 if (old_handler == SIG_IGN)
95 {
96 /* this is undefined if the signal was raised by anything other
97 than raise (). */
98 signal (SIGSEGV, SIG_IGN);
99 action = 0; //EXCEPTION_CONTINUE_EXECUTION;
100 }
101 else if (old_handler != SIG_DFL)
102 {
103 /* This means 'old' is a user defined function. Call it */
104 (*old_handler) (SIGSEGV);
105 action = 0; // EXCEPTION_CONTINUE_EXECUTION;
106 }
107 else
108 action = 4; /* EXCEPTION_EXECUTE_HANDLER; */
109 break;
110 case EXCEPTION_ILLEGAL_INSTRUCTION:
111 case EXCEPTION_PRIV_INSTRUCTION:
112 /* test if the user has set SIGILL */
113 old_handler = signal (SIGILL, SIG_DFL);
114 if (old_handler == SIG_IGN)
115 {
116 /* this is undefined if the signal was raised by anything other
117 than raise (). */
118 signal (SIGILL, SIG_IGN);
119 action = 0; // EXCEPTION_CONTINUE_EXECUTION;
120 }
121 else if (old_handler != SIG_DFL)
122 {
123 /* This means 'old' is a user defined function. Call it */
124 (*old_handler) (SIGILL);
125 action = 0; // EXCEPTION_CONTINUE_EXECUTION;
126 }
127 else
128 action = 4; /* EXCEPTION_EXECUTE_HANDLER;*/
129 break;
130 case EXCEPTION_FLT_INVALID_OPERATION:
131 case EXCEPTION_FLT_DIVIDE_BY_ZERO:
132 case EXCEPTION_FLT_DENORMAL_OPERAND:
133 case EXCEPTION_FLT_OVERFLOW:
134 case EXCEPTION_FLT_UNDERFLOW:
135 case EXCEPTION_FLT_INEXACT_RESULT:
136 reset_fpu = 1;
137 /* fall through. */
138
139 case EXCEPTION_INT_DIVIDE_BY_ZERO:
140 /* test if the user has set SIGFPE */
141 old_handler = signal (SIGFPE, SIG_DFL);
142 if (old_handler == SIG_IGN)
143 {
144 signal (SIGFPE, SIG_IGN);
145 if (reset_fpu)
146 _fpreset ();
147 action = 0; // EXCEPTION_CONTINUE_EXECUTION;
148 }
149 else if (old_handler != SIG_DFL)
150 {
151 /* This means 'old' is a user defined function. Call it */
152 (*old_handler) (SIGFPE);
153 action = 0; // EXCEPTION_CONTINUE_EXECUTION;
154 }
155 break;
156 case EXCEPTION_DATATYPE_MISALIGNMENT:
157 case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
158 case EXCEPTION_FLT_STACK_CHECK:
159 case EXCEPTION_INT_OVERFLOW:
160 case EXCEPTION_INVALID_HANDLE:
161 /*case EXCEPTION_POSSIBLE_DEADLOCK: */
162 action = 0; // EXCEPTION_CONTINUE_EXECUTION;
163 break;
164 default:
165 break;
166 }
167 return action;
168}
169110
170#endif111 case EXCEPTION_CONTINUE_EXECUTION:
112 return ExceptionContinueExecution;
171113
172LPTOP_LEVEL_EXCEPTION_FILTER __mingw_oldexcpt_handler = NULL;114 case EXCEPTION_EXECUTE_HANDLER:
173
174long CALLBACK
175_gnu_exception_handler (EXCEPTION_POINTERS *exception_data);
176
177#define GCC_MAGIC (('G' << 16) | ('C' << 8) | 'C' | (1U << 29))
178
179long CALLBACK
180_gnu_exception_handler (EXCEPTION_POINTERS *exception_data)
181{
182 void (*old_handler) (int);
183 long action = EXCEPTION_CONTINUE_SEARCH;
184 int reset_fpu = 0;
185
186#ifdef __SEH__
187 if ((exception_data->ExceptionRecord->ExceptionCode & 0x20ffffff) == GCC_MAGIC)
188 {
189 if ((exception_data->ExceptionRecord->ExceptionFlags & EXCEPTION_NONCONTINUABLE) == 0)
190 return EXCEPTION_CONTINUE_EXECUTION;
191 }
192#endif
193
194 switch (exception_data->ExceptionRecord->ExceptionCode)
195 {
196 case EXCEPTION_ACCESS_VIOLATION:
197 /* test if the user has set SIGSEGV */
198 old_handler = signal (SIGSEGV, SIG_DFL);
199 if (old_handler == SIG_IGN)
200 {
201 /* this is undefined if the signal was raised by anything other
202 than raise (). */
203 signal (SIGSEGV, SIG_IGN);
204 action = EXCEPTION_CONTINUE_EXECUTION;
205 }
206 else if (old_handler != SIG_DFL)
207 {
208 /* This means 'old' is a user defined function. Call it */
209 (*old_handler) (SIGSEGV);
210 action = EXCEPTION_CONTINUE_EXECUTION;
211 }
212 break;
213
214 case EXCEPTION_ILLEGAL_INSTRUCTION:
215 case EXCEPTION_PRIV_INSTRUCTION:
216 /* test if the user has set SIGILL */
217 old_handler = signal (SIGILL, SIG_DFL);
218 if (old_handler == SIG_IGN)
219 {
220 /* this is undefined if the signal was raised by anything other
221 than raise (). */
222 signal (SIGILL, SIG_IGN);
223 action = EXCEPTION_CONTINUE_EXECUTION;
224 }
225 else if (old_handler != SIG_DFL)
226 {
227 /* This means 'old' is a user defined function. Call it */
228 (*old_handler) (SIGILL);
229 action = EXCEPTION_CONTINUE_EXECUTION;
230 }
231 break;
232
233 case EXCEPTION_FLT_INVALID_OPERATION:
234 case EXCEPTION_FLT_DIVIDE_BY_ZERO:
235 case EXCEPTION_FLT_DENORMAL_OPERAND:
236 case EXCEPTION_FLT_OVERFLOW:
237 case EXCEPTION_FLT_UNDERFLOW:
238 case EXCEPTION_FLT_INEXACT_RESULT:
239 reset_fpu = 1;
240 /* fall through. */
241
242 case EXCEPTION_INT_DIVIDE_BY_ZERO:
243 /* test if the user has set SIGFPE */
244 old_handler = signal (SIGFPE, SIG_DFL);
245 if (old_handler == SIG_IGN)
246 {
247 signal (SIGFPE, SIG_IGN);
248 if (reset_fpu)
249 _fpreset ();
250 action = EXCEPTION_CONTINUE_EXECUTION;
251 }
252 else if (old_handler != SIG_DFL)
253 {
254 /* This means 'old' is a user defined function. Call it */
255 (*old_handler) (SIGFPE);
256 action = EXCEPTION_CONTINUE_EXECUTION;
257 }
258 break;
259#ifdef _WIN64
260 case EXCEPTION_DATATYPE_MISALIGNMENT:
261 case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
262 case EXCEPTION_FLT_STACK_CHECK:
263 case EXCEPTION_INT_OVERFLOW:
264 case EXCEPTION_INVALID_HANDLE:
265 /*case EXCEPTION_POSSIBLE_DEADLOCK: */
266 action = EXCEPTION_CONTINUE_EXECUTION;
267 break;
268#endif
269 default:115 default:
270 break;116 /* msvc CRT EXE exception handler just exit process with exception code */
117 _exit(ExceptionRecord->ExceptionCode);
271 }118 }
272
273 if (action == EXCEPTION_CONTINUE_SEARCH && __mingw_oldexcpt_handler)
274 action = (*__mingw_oldexcpt_handler)(exception_data);
275 return action;
276}119}
lib/libc/mingw/crt/crtdll.c+3-2
...@@ -4,7 +4,6 @@...@@ -4,7 +4,6 @@
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */5 */
66
7#include <oscalls.h>
8#include <internal.h>7#include <internal.h>
9#include <stdlib.h>8#include <stdlib.h>
10#include <windows.h>9#include <windows.h>
...@@ -147,7 +146,9 @@ DllMainCRTStartup (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)...@@ -147,7 +146,9 @@ DllMainCRTStartup (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
147{146{
148 WINBOOL retcode = TRUE;147 WINBOOL retcode = TRUE;
149148
150 __mingw_app_type = 0;149 if (dwReason == DLL_PROCESS_ATTACH)
150 __mingw_app_type = 0;
151
151 __native_dllmain_reason = dwReason;152 __native_dllmain_reason = dwReason;
152 if (dwReason == DLL_PROCESS_DETACH && __proc_attached <= 0)153 if (dwReason == DLL_PROCESS_DETACH && __proc_attached <= 0)
153 {154 {
lib/libc/mingw/crt/crtexe.c+144-121
...@@ -4,25 +4,37 @@...@@ -4,25 +4,37 @@
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */5 */
66
7#include <oscalls.h>
8#include <internal.h>7#include <internal.h>
8#include <excpt.h>
9#include <process.h>9#include <process.h>
10#include <signal.h>10#include <signal.h>
11#include <math.h>11#include <math.h>
12#include <stdlib.h>12#include <stdlib.h>
13#include <stdio.h>
13#include <tchar.h>14#include <tchar.h>
14#include <sect_attribs.h>15#include <sect_attribs.h>
15#include <locale.h>16#include <locale.h>
17#include <float.h>
16#include <corecrt_startup.h>18#include <corecrt_startup.h>
1719
18#if defined(__SEH__) && (!defined(__clang__) || __clang_major__ >= 7)20#if defined(__SEH__) && (!defined(__clang__) || __clang_major__ >= 7)
19#define SEH_INLINE_ASM21#define SEH_INLINE_ASM
22#ifdef __arm__
23#define ASM_SEH_EXCEPT "%%except"
24#else
25#define ASM_SEH_EXCEPT "@except"
26#endif
27#ifdef __arm64ec__
28#define ASM_SEH_PREFIX "\"#"
29#define ASM_SEH_SUFFIX "\""
30#else
31#define ASM_SEH_PREFIX ""
32#define ASM_SEH_SUFFIX ""
33#endif
20#endif34#endif
2135
22extern IMAGE_DOS_HEADER __ImageBase;36extern IMAGE_DOS_HEADER __ImageBase;
2337
24extern void _fpreset (void);
25
26int *__cdecl __p__commode(void);38int *__cdecl __p__commode(void);
2739
28#undef _fmode40#undef _fmode
...@@ -30,8 +42,7 @@ extern int _fmode;...@@ -30,8 +42,7 @@ extern int _fmode;
30#undef _commode42#undef _commode
31extern int _commode;43extern int _commode;
32extern int _dowildcard;44extern int _dowildcard;
3345extern int __globallocalestatus;
34extern _CRTIMP void __cdecl _initterm(_PVFV *, _PVFV *);
3546
36static int __cdecl check_managed_app (void);47static int __cdecl check_managed_app (void);
3748
...@@ -51,19 +62,15 @@ extern void __main(void);...@@ -51,19 +62,15 @@ extern void __main(void);
51static _TCHAR **argv;62static _TCHAR **argv;
52static _TCHAR **envp;63static _TCHAR **envp;
5364
54static int mainret=0;
55static int managedapp;65static int managedapp;
56static int has_cctor = 0;66static int has_cctor = 0;
57extern LPTOP_LEVEL_EXCEPTION_FILTER __mingw_oldexcpt_handler;
5867
59extern void _pei386_runtime_relocator (void);68extern void _pei386_runtime_relocator (void);
60long CALLBACK _gnu_exception_handler (EXCEPTION_POINTERS * exception_data);69EXCEPTION_DISPOSITION __cdecl __mingw_SEH_error_handler (struct _EXCEPTION_RECORD *, void *, struct _CONTEXT *, void *);
61static void duplicate_ppstrings (int ac, _TCHAR ***av);70#if defined(__x86_64__) && !defined(SEH_INLINE_ASM)
6271int __mingw_init_ehandler (void);
63static int __cdecl pre_c_init (void);72#endif
64static void __cdecl pre_cpp_init (void);73static int duplicate_ppstrings (int ac, _TCHAR ***av);
65_CRTALLOC(".CRT$XIAA") _PIFV __mingw_pcinit = pre_c_init;
66_CRTALLOC(".CRT$XCAA") _PVFV __mingw_pcppinit = pre_cpp_init;
6774
68extern int _MINGW_INSTALL_DEBUG_MATHERR;75extern int _MINGW_INSTALL_DEBUG_MATHERR;
6976
...@@ -85,112 +92,58 @@ __mingw_invalidParameterHandler (const wchar_t * __UNUSED_PARAM_1(expression),...@@ -85,112 +92,58 @@ __mingw_invalidParameterHandler (const wchar_t * __UNUSED_PARAM_1(expression),
85#endif92#endif
86}93}
8794
88static int __cdecl95#define GCC_MAGIC (('G' << 16) | ('C' << 8) | 'C' | (1U << 29))
89pre_c_init (void)
90{
91 int ret;
92 managedapp = check_managed_app ();
93 if (__mingw_app_type)
94 __set_app_type(_GUI_APP);
95 else
96 __set_app_type (_CONSOLE_APP);
97
98 * __p__fmode() = _fmode;
99 * __p__commode() = _commode;
10096
101#ifdef _UNICODE97#if defined(__i386__) || defined(_X86_)
102 ret = _wsetargv();98/* We need to make sure that we align the stack to 16 bytes for the sake of SSE */
103#else99__attribute__((force_align_arg_pointer))
104 ret = _setargv();
105#endif100#endif
106 if (ret < 0)101static LONG WINAPI
107 _amsg_exit(8); /* _RT_SPACEARG */102cpp_unhandled_exception_filter (EXCEPTION_POINTERS *exception_data)
108 if (_MINGW_INSTALL_DEBUG_MATHERR == 1)103{
109 {104 /* C++ gcc SEH exception is thrown by the libgcc __cxa_throw() function
110 __setusermatherr (_matherr);105 * (which calls _Unwind_RaiseException()) or _Unwind_ForcedUnwind() function
111 }106 * as a normal continuable SEH exception with the STATUS_GCC_THROW (0x20474343)
112107 * or STATUS_GCC_FORCED (0x22474343) exception code via the WinAPI RaiseException()
113 if (__globallocalestatus == -1)108 * call. Both _Unwind_RaiseException() and _Unwind_ForcedUnwind() are expected
114 {109 * to return back to the caller (for example __cxa_throw()) if the exception
115 }110 * was not handled. So if the gcc SEH exception reaches the application
116 return 0;111 * top-level exception handler then handler needs to return execution back to
112 * the place which called the RaiseException(). This is done by returning the
113 * EXCEPTION_CONTINUE_EXECUTION value from the handler itself.
114 * This is needed for proper propagation of unhandled C++ gcc exceptions
115 * into the std::terminate() call or into the application handler
116 * registered by the std::set_terminate() call.
117 */
118 if ((exception_data->ExceptionRecord->ExceptionCode & 0x20ffffff) == GCC_MAGIC &&
119 !(exception_data->ExceptionRecord->ExceptionFlags & EXCEPTION_NONCONTINUABLE))
120 return EXCEPTION_CONTINUE_EXECUTION;
121
122 return EXCEPTION_CONTINUE_SEARCH;
117}123}
118124
119static void __cdecl125static void
120pre_cpp_init (void)126safe_flush (void)
121{127{
122 _startupinfo startinfo;128 fflush (NULL);
123 int argret;
124
125 startinfo.newmode = _newmode;
126
127#ifdef _UNICODE
128 argret = __wgetmainargs(&argc,&argv,&envp,_dowildcard,&startinfo);
129#else
130 argret = __getmainargs(&argc,&argv,&envp,_dowildcard,&startinfo);
131#endif
132 if (argret < 0)
133 _amsg_exit(8); /* _RT_SPACEARG */
134}129}
135130
136static int __tmainCRTStartup (void);131static int __tmainCRTStartup (void);
137132
138int WinMainCRTStartup (void);133int WinMainCRTStartup (void);
139
140__attribute__((used)) /* required due to GNU LD bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30300 */134__attribute__((used)) /* required due to GNU LD bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30300 */
141int WinMainCRTStartup (void)135int WinMainCRTStartup (void)
142{136{
143 int ret = 255;
144#ifdef SEH_INLINE_ASM
145 asm ("\t.l_startw:\n");
146#endif
147 __mingw_app_type = 1;137 __mingw_app_type = 1;
148 ret = __tmainCRTStartup ();138 return __tmainCRTStartup ();
149#ifdef SEH_INLINE_ASM
150 asm ("\tnop\n"
151 "\t.l_endw: nop\n"
152#ifdef __arm__
153 "\t.seh_handler __C_specific_handler, %except\n"
154#else
155 "\t.seh_handler __C_specific_handler, @except\n"
156#endif
157 "\t.seh_handlerdata\n"
158 "\t.long 1\n"
159 "\t.rva .l_startw, .l_endw, _gnu_exception_handler ,.l_endw\n"
160 "\t.text");
161#endif
162 return ret;
163}139}
164140
165int mainCRTStartup (void);141int mainCRTStartup (void);
166
167#if defined(__x86_64__) && !defined(__SEH__)
168int __mingw_init_ehandler (void);
169#endif
170
171__attribute__((used)) /* required due to GNU LD bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30300 */142__attribute__((used)) /* required due to GNU LD bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30300 */
172int mainCRTStartup (void)143int mainCRTStartup (void)
173{144{
174 int ret = 255;
175#ifdef SEH_INLINE_ASM
176 asm ("\t.l_start:\n");
177#endif
178 __mingw_app_type = 0;145 __mingw_app_type = 0;
179 ret = __tmainCRTStartup ();146 return __tmainCRTStartup ();
180#ifdef SEH_INLINE_ASM
181 asm ("\tnop\n"
182 "\t.l_end: nop\n"
183#ifdef __arm__
184 "\t.seh_handler __C_specific_handler, %except\n"
185#else
186 "\t.seh_handler __C_specific_handler, @except\n"
187#endif
188 "\t.seh_handlerdata\n"
189 "\t.long 1\n"
190 "\t.rva .l_start, .l_end, _gnu_exception_handler ,.l_end\n"
191 "\t.text");
192#endif
193 return ret;
194}147}
195148
196static149static
...@@ -202,9 +155,27 @@ __attribute__((force_align_arg_pointer))...@@ -202,9 +155,27 @@ __attribute__((force_align_arg_pointer))
202__declspec(noinline) int155__declspec(noinline) int
203__tmainCRTStartup (void)156__tmainCRTStartup (void)
204{157{
158 /* Registration of SEH error handler __mingw_SEH_error_handler used for
159 * delivering SEH exceptions to registered CRT signal handlers. */
160#if defined(__i386__)
161 EXCEPTION_REGISTRATION_RECORD exception_record = {
162 .Next = (EXCEPTION_REGISTRATION_RECORD *)__readfsdword (0),
163 .Handler = (PEXCEPTION_ROUTINE)(INT_PTR)__mingw_SEH_error_handler,
164 };
165 __writefsdword (0, (DWORD)&exception_record); /* dynamically register SEH error handler, it is active until manually unregistered */
166#elif defined(SEH_INLINE_ASM)
167 asm volatile (".seh_handler " ASM_SEH_PREFIX "%c0" ASM_SEH_SUFFIX ", " ASM_SEH_EXCEPT :: "i" (__mingw_SEH_error_handler)); /* statically register SEH error handler, it is active only in the current function */
168#elif defined(__x86_64__)
169 __mingw_init_ehandler (); /* dynamically register SEH error handler for all functions, it is active until program terminates */
170#else
171#error unsupported platform
172#endif
173
205 void *lock_free = NULL;174 void *lock_free = NULL;
206 void *fiberid = ((PNT_TIB)NtCurrentTeb())->StackBase;175 void *fiberid = ((PNT_TIB)NtCurrentTeb())->StackBase;
207 BOOL nested = FALSE;176 BOOL nested = FALSE;
177 _startupinfo startinfo;
178 int ret = 0;
208 while((lock_free = InterlockedCompareExchangePointer (&__native_startup_lock,179 while((lock_free = InterlockedCompareExchangePointer (&__native_startup_lock,
209 fiberid, NULL)) != 0)180 fiberid, NULL)) != 0)
210 {181 {
...@@ -222,48 +193,97 @@ __tmainCRTStartup (void)...@@ -222,48 +193,97 @@ __tmainCRTStartup (void)
222 else if (__native_startup_state == __uninitialized)193 else if (__native_startup_state == __uninitialized)
223 {194 {
224 __native_startup_state = __initializing;195 __native_startup_state = __initializing;
196
197 /* Before the UCRT stderr could be opened in full buffering
198 * mode, for example when output goes to a pipe.
199 *
200 * The C standard disallows full buffering on stderr. Note
201 * that line buffering is the same as full buffering in the
202 * Windows CRT, so we have to disable buffering altogether.
203 */
204 setvbuf (stderr, NULL, _IONBF, 0);
205
206 /* The C RunTime library flushes stdio streams in response to
207 * DLL_PROCESS_DETACH. This is not entirely safe; other DLLs
208 * may cause instant termination during process shutdown.
209 * Here we add an exit handler to flush streams safely.
210 */
211 if (atexit (safe_flush) != 0)
212 abort ();
213
214 _pei386_runtime_relocator ();
215 _set_invalid_parameter_handler (__mingw_invalidParameterHandler);
216 _fpreset ();
217
218 managedapp = check_managed_app ();
219 if (__mingw_app_type)
220 __set_app_type (_GUI_APP);
221 else
222 __set_app_type (_CONSOLE_APP);
223
224 *__p__fmode () = _fmode;
225 *__p__commode () = _commode;
226
227#ifdef _UNICODE
228 ret = _wsetargv ();
229#else
230 ret = _setargv ();
231#endif
232 if (ret < 0)
233 _amsg_exit (8); /* _RT_SPACEARG */
234
235 if (_MINGW_INSTALL_DEBUG_MATHERR == 1)
236 __setusermatherr (_matherr);
237
238 if (__globallocalestatus == -1)
239 _configthreadlocale (-1);
240
225 if (_initterm_e (__xi_a, __xi_z) != 0)241 if (_initterm_e (__xi_a, __xi_z) != 0)
226 return 255;242 _amsg_exit (10); /* _RT_ABORT */
227 }
228 else
229 has_cctor = 1;
230243
231 if (__native_startup_state == __initializing)244 startinfo.newmode = _newmode;
232 {245#ifdef _UNICODE
246 ret = __wgetmainargs (&argc, &argv, &envp, _dowildcard, &startinfo);
247#else
248 ret = __getmainargs (&argc, &argv, &envp, _dowildcard, &startinfo);
249#endif
250 if (ret < 0)
251 _amsg_exit (8); /* _RT_SPACEARG */
252
253 ret = duplicate_ppstrings (argc, &argv);
254 if (ret != 0)
255 _amsg_exit (8); /* _RT_SPACEARG */
256
257 SetUnhandledExceptionFilter (cpp_unhandled_exception_filter);
233 _initterm (__xc_a, __xc_z);258 _initterm (__xc_a, __xc_z);
259 __main (); /* C++ initialization. */
260
234 __native_startup_state = __initialized;261 __native_startup_state = __initialized;
235 }262 }
236 _ASSERTE(__native_startup_state == __initialized);263 else
264 has_cctor = 1;
237 if (! nested)265 if (! nested)
238 (VOID)InterlockedExchangePointer (&__native_startup_lock, NULL);266 (VOID)InterlockedExchangePointer (&__native_startup_lock, NULL);
239 267
240 if (__dyn_tls_init_callback != NULL)268 if (__dyn_tls_init_callback != NULL)
241 __dyn_tls_init_callback (NULL, DLL_THREAD_ATTACH, NULL);269 __dyn_tls_init_callback (NULL, DLL_THREAD_ATTACH, NULL);
242
243 _pei386_runtime_relocator ();
244 __mingw_oldexcpt_handler = SetUnhandledExceptionFilter (_gnu_exception_handler);
245#if defined(__x86_64__) && !defined(__SEH__)
246 __mingw_init_ehandler ();
247#endif
248 _set_invalid_parameter_handler (__mingw_invalidParameterHandler);
249
250 _fpreset ();
251270
252 duplicate_ppstrings (argc, &argv);
253 __main (); /* C++ initialization. */
254#ifdef _UNICODE271#ifdef _UNICODE
255 __winitenv = envp;272 __winitenv = envp;
256#else273#else
257 __initenv = envp;274 __initenv = envp;
258#endif275#endif
259 mainret = _tmain (argc, argv, envp);276 ret = _tmain (argc, argv, envp);
260 if (!managedapp)277 if (!managedapp)
261 exit (mainret);278 exit (ret);
262279
263 if (has_cctor == 0)280 if (has_cctor == 0)
264 _cexit ();281 _cexit ();
265282
266 return mainret;283#if defined(__i386__)
284 __writefsdword (0, (DWORD)exception_record.Next); /* dynamically unregister SEH error handler */
285#endif
286 return ret;
267}287}
268288
269extern int __mingw_initltsdrot_force;289extern int __mingw_initltsdrot_force;
...@@ -307,21 +327,24 @@ check_managed_app (void)...@@ -307,21 +327,24 @@ check_managed_app (void)
307 return 0;327 return 0;
308}328}
309329
310static void duplicate_ppstrings (int ac, _TCHAR ***av)330static int duplicate_ppstrings (int ac, _TCHAR ***av)
311{331{
312 _TCHAR **avl;332 _TCHAR **avl;
313 int i;333 int i;
314 _TCHAR **n = (_TCHAR **) malloc (sizeof (_TCHAR *) * (ac + 1));334 _TCHAR **n = (_TCHAR **) malloc (sizeof (_TCHAR *) * (ac + 1));
335 if (!n) return 1;
315 336
316 avl=*av;337 avl=*av;
317 for (i=0; i < ac; i++)338 for (i=0; i < ac; i++)
318 {339 {
319 size_t l = sizeof (_TCHAR) * (_tcslen (avl[i]) + 1);340 size_t l = sizeof (_TCHAR) * (_tcslen (avl[i]) + 1);
320 n[i] = (_TCHAR *) malloc (l);341 n[i] = (_TCHAR *) malloc (l);
342 if (!n[i]) return 1;
321 memcpy (n[i], avl[i], l);343 memcpy (n[i], avl[i], l);
322 }344 }
323 n[i] = NULL;345 n[i] = NULL;
324 *av = n;346 *av = n;
347 return 0;
325}348}
326349
327int __cdecl atexit (_PVFV func)350int __cdecl atexit (_PVFV func)
lib/libc/mingw/crt/crtexewin.c+1-5
...@@ -7,10 +7,6 @@...@@ -7,10 +7,6 @@
7#include <tchar.h>7#include <tchar.h>
8#include <corecrt_startup.h>8#include <corecrt_startup.h>
99
10#ifndef _UNICODE
11#include <mbctype.h>
12#endif
13
14#define SPACECHAR _T(' ')10#define SPACECHAR _T(' ')
15#define DQUOTECHAR _T('\"')11#define DQUOTECHAR _T('\"')
1612
...@@ -40,7 +36,7 @@ int _tmain (int __UNUSED_PARAM(argc),...@@ -40,7 +36,7 @@ int _tmain (int __UNUSED_PARAM(argc),
40 if (*lpCmdLine == DQUOTECHAR)36 if (*lpCmdLine == DQUOTECHAR)
41 inDoubleQuote = !inDoubleQuote;37 inDoubleQuote = !inDoubleQuote;
42#ifndef _UNICODE38#ifndef _UNICODE
43 if (_ismbblead (*lpCmdLine))39 if (IsDBCSLeadByte (*lpCmdLine))
44 {40 {
45 if (lpCmdLine[1])41 if (lpCmdLine[1])
46 ++lpCmdLine;42 ++lpCmdLine;
lib/libc/mingw/crt/gccmain.c+1
...@@ -49,6 +49,7 @@ __do_global_ctors (void)...@@ -49,6 +49,7 @@ __do_global_ctors (void)
4949
50static int initialized = 0;50static int initialized = 0;
5151
52__attribute__((used)) /* required for gcc -flto -Ofast */
52void53void
53__main (void)54__main (void)
54{55{
lib/libc/mingw/crt/pseudo-reloc.c+2-6
...@@ -141,8 +141,7 @@ __report_error (const char *msg, ...)...@@ -141,8 +141,7 @@ __report_error (const char *msg, ...)
141 cygwin_internal (CW_EXIT_PROCESS,141 cygwin_internal (CW_EXIT_PROCESS,
142 STATUS_ILLEGAL_DLL_PSEUDO_RELOCATION,142 STATUS_ILLEGAL_DLL_PSEUDO_RELOCATION,
143 1);143 1);
144 /* not reached, but silences noreturn warning */144 __builtin_unreachable ();
145 abort ();
146#else145#else
147 va_list argp;146 va_list argp;
148 va_start (argp, msg);147 va_start (argp, msg);
...@@ -196,7 +195,6 @@ mark_section_writable (LPVOID addr)...@@ -196,7 +195,6 @@ mark_section_writable (LPVOID addr)
196 if (!h)195 if (!h)
197 {196 {
198 __report_error ("Address %p has no image-section", addr);197 __report_error ("Address %p has no image-section", addr);
199 return;
200 }198 }
201 the_secs[i].hash = h;199 the_secs[i].hash = h;
202 the_secs[i].old_protect = 0;200 the_secs[i].old_protect = 0;
...@@ -206,7 +204,6 @@ mark_section_writable (LPVOID addr)...@@ -206,7 +204,6 @@ mark_section_writable (LPVOID addr)
206 {204 {
207 __report_error (" VirtualQuery failed for %d bytes at address %p",205 __report_error (" VirtualQuery failed for %d bytes at address %p",
208 (int) h->Misc.VirtualSize, the_secs[i].sec_start);206 (int) h->Misc.VirtualSize, the_secs[i].sec_start);
209 return;
210 }207 }
211208
212 if (b.Protect != PAGE_EXECUTE_READWRITE && b.Protect != PAGE_READWRITE209 if (b.Protect != PAGE_EXECUTE_READWRITE && b.Protect != PAGE_READWRITE
...@@ -380,7 +377,6 @@ do_pseudo_reloc (void * start, void * end, void * base)...@@ -380,7 +377,6 @@ do_pseudo_reloc (void * start, void * end, void * base)
380 {377 {
381 __report_error (" Unknown pseudo relocation protocol version %d.\n",378 __report_error (" Unknown pseudo relocation protocol version %d.\n",
382 (int) v2_hdr->version);379 (int) v2_hdr->version);
383 return;
384 }380 }
385381
386 /*************************382 /*************************
...@@ -480,7 +476,7 @@ do_pseudo_reloc (void * start, void * end, void * base)...@@ -480,7 +476,7 @@ do_pseudo_reloc (void * start, void * end, void * base)
480 }476 }
481}477}
482478
483__attribute__((used)) /* required due to bug in gcc / ld */479__attribute__((used)) /* required due to GNU LD bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30343 */
484void480void
485_pei386_runtime_relocator (void)481_pei386_runtime_relocator (void)
486{482{
lib/libc/mingw/ctype/_iscsym_l.c created+22
...@@ -0,0 +1,22 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#undef __MSVCRT_VERSION__
8#define __MSVCRT_VERSION__ 0x0800
9
10#define _CTYPE_DISABLE_MACROS
11#include <ctype.h>
12
13/**
14 * See ctype.h for rationale.
15 *
16 * Note that import symbol __MINGW_IMP_SYMBOL(_iscsym_l) is not provided on
17 * purpose.
18 */
19
20int __cdecl _iscsym_l (wint_t _C, _locale_t _Locale) {
21 return (_isalnum_l (_C, _Locale) || _C == '_');
22}
lib/libc/mingw/ctype/_iscsymf_l.c created+22
...@@ -0,0 +1,22 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#undef __MSVCRT_VERSION__
8#define __MSVCRT_VERSION__ 0x0800
9
10#define _CTYPE_DISABLE_MACROS
11#include <ctype.h>
12
13/**
14 * See ctype.h for rationale.
15 *
16 * Note that import symbol __MINGW_IMP_SYMBOL(_iscsymf_l) is not provided on
17 * purpose.
18 */
19
20int __cdecl _iscsymf_l (wint_t _C, _locale_t _Locale) {
21 return (_isalpha_l (_C, _Locale) || _C == '_');
22}
lib/libc/mingw/ctype/iswctype.c created+43
...@@ -0,0 +1,43 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#define _CTYPE_DISABLE_MACROS
8#include <wctype.h>
9
10/**
11 * CRT's `iswctype` has inconsistent behavior for TAB character when used with
12 * `wctype_t` objects returned by `wctype` function which contain `_BLANK` bit.
13 *
14 * In all CRTs up to msvcrt.dll version 6.1, it returns zero in "C" locale
15 * and non-zero otherwise.
16 *
17 * Since msvcr70.dll up to msvcr110.dll it always returns non-zero;
18 * OS-specific versions of msvcrt.dll follow this behavior.
19 *
20 * In msvcr120.dll and UCRT it always returns zero.
21 *
22 * This behavior affects both `iswblank` and `iswprint` functions;
23 * either or both of them have non-conforming behavior.
24 */
25
26/**
27 * This is CRT's `iswctype` renamed to `__msvcrt_iswctype`.
28 */
29extern int (__cdecl *__MINGW_IMP_SYMBOL(__msvcrt_iswctype)) (wint_t, wctype_t);
30
31int iswctype (wint_t _C, wctype_t _Type) {
32 /**
33 * `wctype_t` object returned for "print" character class contains _BLANK;
34 * make sure TAB is handled correctly.
35 */
36 if (_C == L'\t' && (_Type & _BLANK)) {
37 return (_Type == _BLANK ? _BLANK : 0);
38 }
39
40 return __MINGW_IMP_SYMBOL (__msvcrt_iswctype) (_C, _Type);
41}
42
43int (__cdecl *__MINGW_IMP_SYMBOL (iswctype)) (wint_t, wctype_t) = iswctype;
lib/libc/mingw/ctype/towctrans.c created+33
...@@ -0,0 +1,33 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#define _CTYPE_DISABLE_MACROS
8#include <wctype.h>
9
10/**
11 * Both `wctrans` and `towctrans` functions were added in msvcr120.dll.
12 *
13 * CRT's `towctrans` does not properly handle case when second argument is
14 * `(wctrans_t)0`.
15 */
16
17/**
18 * This is CRT's `towctrans` renamed to `__msvcrt_towctrans`.
19 */
20extern wint_t (__cdecl *__MINGW_IMP_SYMBOL (__msvcrt_towctrans)) (wint_t, wctrans_t);
21
22wint_t __cdecl towctrans (wint_t _C, wctrans_t _Type) {
23 /**
24 * POSIX requires that if `_Type` is zero, `_C` is returned unchanged.
25 */
26 if (_Type == (wctrans_t) 0) {
27 return _C;
28 }
29
30 return __MINGW_IMP_SYMBOL (__msvcrt_towctrans) (_C, _Type);
31}
32
33wint_t (__cdecl *__MINGW_IMP_SYMBOL (towctrans)) (wint_t, wctrans_t) = towctrans;
lib/libc/mingw/def-include/crt-aliases.def.in+45-18
...@@ -64,20 +64,13 @@ ADD_UNDERSCORE(filelength)...@@ -64,20 +64,13 @@ ADD_UNDERSCORE(filelength)
64ADD_UNDERSCORE(fileno)64ADD_UNDERSCORE(fileno)
65; ADD_UNDERSCORE(flushall)65; ADD_UNDERSCORE(flushall)
66ADD_UNDERSCORE(fputchar)66ADD_UNDERSCORE(fputchar)
67#ifdef FIXED_SIZE_SYMBOLS67#if defined(UCRTBASE)
68#ifndef CRTDLL
69ADD_UNDERSCORE(fstat)
70#endif
71#else
72F32(fstat == _fstat32)68F32(fstat == _fstat32)
73F64(fstat == _fstat64i32)69F64(fstat == _fstat64i32)
74#endif
75#ifdef FIXED_SIZE_SYMBOLS
76ADD_UNDERSCORE(ftime)
77#else70#else
78F32(ftime == _ftime32)71; fstat for non-UCRT is provided by mingw to workaround S_IFDIR issue in _fstat
79F64(ftime == _ftime64)
80#endif72#endif
73; ftime is provided in misc/ftime32.c or misc/ftime64.c as MS _ftime is not ABI compatible with POSIX ftime
81#if defined(UCRTBASE)74#if defined(UCRTBASE)
82; HUGE alias and _HUGE variable are provided by math/_huge.c75; HUGE alias and _HUGE variable are provided by math/_huge.c
83#elif defined(CRTDLL)76#elif defined(CRTDLL)
...@@ -232,7 +225,7 @@ ADD_UNDERSCORE(wcsupr)...@@ -232,7 +225,7 @@ ADD_UNDERSCORE(wcsupr)
232#ifdef UCRTBASE225#ifdef UCRTBASE
233; hypot is natively exported from UCRT226; hypot is natively exported from UCRT
234#else227#else
235ADD_UNDERSCORE(hypot)228; hypot is provided by math/hypot.c as a wrapper around _hypot
236#endif229#endif
237ADD_UNDERSCORE(j0)230ADD_UNDERSCORE(j0)
238ADD_UNDERSCORE(j1)231ADD_UNDERSCORE(j1)
...@@ -248,9 +241,6 @@ getwchar == _fgetwchar...@@ -248,9 +241,6 @@ getwchar == _fgetwchar
248putwc == fputwc241putwc == fputwc
249putwchar == _fputwchar242putwchar == _fputwchar
250#endif243#endif
251#ifdef USE_WCSTOK_S_FOR_WCSTOK
252wcstok == wcstok_s
253#endif
254244
255; This is list of symbol aliases for C99 functions245; This is list of symbol aliases for C99 functions
256; ADD_UNDERSCORE(logb)246; ADD_UNDERSCORE(logb)
...@@ -292,29 +282,46 @@ ADD_DOUBLE_UNDERSCORE(toascii)...@@ -292,29 +282,46 @@ ADD_DOUBLE_UNDERSCORE(toascii)
292ADD_UNDERSCORE(pclose)282ADD_UNDERSCORE(pclose)
293ADD_UNDERSCORE(popen)283ADD_UNDERSCORE(popen)
294#endif284#endif
285fseeko == fseek
286ftello == ftell
287ftruncate == _chsize
295; ADD_UNDERSCORE(scalb)288; ADD_UNDERSCORE(scalb)
296289
297; This is list of symbol aliases for Large File Specification (extension to Single UNIX Specification)290; This is list of symbol aliases for Large File Specification (extension to Single UNIX Specification)
291; https://unix.org/version2/whatsnew/lfs20mar.html#3.1 section 3.1 Transitional Extensions
292creat64 == _creat
293open64 == _open
294fopen64 == fopen
295freopen64 == freopen
296#ifndef NO_TMPFILE_ALIAS
297tmpfile64 == tmpfile
298#endif
298#ifndef NO_FPOS64_ALIASES299#ifndef NO_FPOS64_ALIASES
299; fgetpos and fsetpos are already 64-bit300; fgetpos and fsetpos are already 64-bit
300fgetpos64 == fgetpos301fgetpos64 == fgetpos
301fsetpos64 == fsetpos302fsetpos64 == fsetpos
303lseek64 == _lseeki64
302#endif304#endif
303#ifdef UCRTBASE305#ifdef UCRTBASE
306fstat32 == _fstat32
307fstat32i64 == _fstat32i64
308fstat64 == _fstat64
309fstat64i32 == _fstat64i32
304stat32 == _stat32310stat32 == _stat32
305stat32i64 == _stat32i64311stat32i64 == _stat32i64
306stat64 == _stat64312stat64 == _stat64
307stat64i32 == _stat64i32313stat64i32 == _stat64i32
308#else314#else
315; fstat for non-UCRT is provided by mingw to workaround S_IFDIR issue in _fstat
309; stat for non-UCRT is provided by mingw to workaround trailing slash issue in _stat316; stat for non-UCRT is provided by mingw to workaround trailing slash issue in _stat
310#endif317#endif
311#ifdef FIXED_SIZE_SYMBOLS318#ifdef FIXED_SIZE_SYMBOLS
312// NO_FIXED_SIZE_64_ALIAS means that DLL provides the native _fstat64 symbol319#ifdef WITH_FSEEKO64_ALIAS
313#if defined(NO_FIXED_SIZE_64_ALIAS) && !defined(NO_FSTAT64_ALIAS)320fseeko64 == _fseeki64
314fstat64 == _fstat64
315#endif321#endif
316#else322#else
317fstat64 == _fstat64323fseeko64 == _fseeki64
324ftello64 == _ftelli64
318#endif325#endif
319326
320; This is list of symbol aliases for GNU functions which are not part of POSIX or ISO C327; This is list of symbol aliases for GNU functions which are not part of POSIX or ISO C
...@@ -325,6 +332,25 @@ strncasecmp == _strnicmp...@@ -325,6 +332,25 @@ strncasecmp == _strnicmp
325; Some symbols in some version of CRT library were added and some other symbols were removed or renamed332; Some symbols in some version of CRT library were added and some other symbols were removed or renamed
326; This list provides some level of backward and forward compatibility333; This list provides some level of backward and forward compatibility
327334
335#ifdef WITH_SETJMP3_ALIAS
336; crtdll.dll and msvcrt10.dll have only old _setjmp function which does not take
337; additional variadic arguments and uses smaller jmpbuf structure.
338; mingw-w64 calls _setjmp3 only with zero additional arguments and because number
339; of additional arguments is passed on the stack which is cleanup by the caller,
340; it means that the mingw-w64 usage of _setjmp3 is ABI compatible with the old
341; _setjmp function which is available also in crtdll.dll and msvcrt10.dll libs.
342; It heavily depends on the mingw-w64-headers/crt/setjmp.h implementation.
343; So this definition allows crtdll.dll and msvcrt10.dll applications to call
344; setjmp() macro from setjmp.h, which expands to _setjmp3() function call and
345; which is aliased to _setjmp symbol for crtdll.dll and msvcrt10.dll libraries.
346F_I386(_setjmp3 == _setjmp)
347#endif
348
349#ifdef UCRTBASE
350F_NON_ARM64(_setjmp == __intrinsic_setjmp)
351F64(_setjmpex == __intrinsic_setjmpex)
352#endif
353
328#ifndef NO_STRCMPI_ALIAS354#ifndef NO_STRCMPI_ALIAS
329_strcmpi == _stricmp355_strcmpi == _stricmp
330#endif356#endif
...@@ -551,6 +577,7 @@ __p__daylight == __daylight...@@ -551,6 +577,7 @@ __p__daylight == __daylight
551__p__dstbias == __dstbias577__p__dstbias == __dstbias
552__p__timezone == __timezone578__p__timezone == __timezone
553__p__tzname == __tzname579__p__tzname == __tzname
580_XcptFilter == _seh_filter_exe
554#endif581#endif
555582
556; This is list of printf/scanf symbol aliases with __ms_ prefix583; This is list of printf/scanf symbol aliases with __ms_ prefix
lib/libc/mingw/def-include/func.def.in+16-4
...@@ -16,29 +16,35 @@...@@ -16,29 +16,35 @@
16#define F64(x) x16#define F64(x) x
17#define F_X64(x) x17#define F_X64(x) x
18#define F_X86_ANY(x) x18#define F_X86_ANY(x) x
19#define F_X86_NATIVE(x) x
19#define F_NON_I386(x) x20#define F_NON_I386(x) x
20#define F_NON_ARM64(x) x21#define F_NON_ARM64(x) x
22#if defined(__arm64ec__)
23#define F_ARM_ANY(x) x
24#undef F_X86_NATIVE
25#endif
21#elif defined(__i386__)26#elif defined(__i386__)
22#define F32(x) x27#define F32(x) x
23#define F_I386(x) x28#define F_I386(x) x
24#define F_X86_ANY(x) x29#define F_X86_ANY(x) x
30#define F_X86_NATIVE(x) x
25#define F_NON_X64(x) x31#define F_NON_X64(x) x
26#define F_NON_ARM64(x) x32#define F_NON_ARM64(x) x
27#elif defined(__arm__)33#elif defined(__arm__)
28#define F32(x) x34#define F32(x) x
29#define F_ARM32(x) x35#define F_ARM32(x) x
30#define F_ARM_ANY(x) x36#define F_ARM_NATIVE(x) x
31#define F_NON_I386(x) x37#define F_NON_I386(x) x
32#define F_NON_X64(x) x38#define F_NON_X64(x) x
33#define F_NON_ARM64(x) x39#define F_NON_ARM64(x) x
34#elif defined(__aarch64__)40#elif defined(__aarch64__)
35#define F64(x) x41#define F64(x) x
36#define F_ARM64(x) x42#define F_ARM64(x) x
37#define F_ARM_ANY(x) x43#define F_ARM_NATIVE(x) x
38#define F_NON_I386(x) x44#define F_NON_I386(x) x
39#define F_NON_X64(x) x45#define F_NON_X64(x) x
40#else46#else
41#error No DEF_<ARCH> is defined47#error Unrecognized architecture
42#endif48#endif
4349
44#ifndef F3250#ifndef F32
...@@ -50,14 +56,20 @@...@@ -50,14 +56,20 @@
50#ifndef F_X86_ANY56#ifndef F_X86_ANY
51#define F_X86_ANY(x)57#define F_X86_ANY(x)
52#endif58#endif
59#ifndef F_X86_NATIVE(x)
60#define F_X86_NATIVE(x)
61#endif
53#ifndef F_I38662#ifndef F_I386
54#define F_I386(x)63#define F_I386(x)
55#endif64#endif
56#ifndef F_X6465#ifndef F_X64
57#define F_X64(x)66#define F_X64(x)
58#endif67#endif
68#ifndef F_ARM_NATIVE
69#define F_ARM_NATIVE(x)
70#endif
59#ifndef F_ARM_ANY71#ifndef F_ARM_ANY
60#define F_ARM_ANY(x)72#define F_ARM_ANY(x) F_ARM_NATIVE(x)
61#endif73#endif
62#ifndef F_ARM3274#ifndef F_ARM32
63#define F_ARM32(x)75#define F_ARM32(x)
lib/libc/mingw/gdtoa/dtoa.c+1-1
...@@ -109,7 +109,7 @@ char *__dtoa (double d0, int mode, int ndigits, int *decpt, int *sign, char **rv...@@ -109,7 +109,7 @@ char *__dtoa (double d0, int mode, int ndigits, int *decpt, int *sign, char **rv
109 */109 */
110110
111 int bbits, b2, b5, be, dig, i, ieps, ilim, ilim0, ilim1,111 int bbits, b2, b5, be, dig, i, ieps, ilim, ilim0, ilim1,
112 j, j2, k, k0, k_check, leftright, m2, m5, s2, s5,112 j, j2 = 0, k, k0, k_check, leftright, m2, m5, s2, s5,
113 spec_case, try_quick;113 spec_case, try_quick;
114 Long L;114 Long L;
115#ifndef Sudden_Underflow115#ifndef Sudden_Underflow
lib/libc/mingw/gdtoa/g__fmt.c+1-1
...@@ -172,7 +172,7 @@ __add_nanbits_D2A(char *b, size_t blen, ULong *bits, int nb)...@@ -172,7 +172,7 @@ __add_nanbits_D2A(char *b, size_t blen, ULong *bits, int nb)
172 char *rv;172 char *rv;
173 int i, j;173 int i, j;
174 size_t L;174 size_t L;
175 static char Hexdig[16] = "0123456789abcdef";175 static char Hexdig[17] = "0123456789abcdef";
176176
177 while(!bits[--nb])177 while(!bits[--nb])
178 if (!nb)178 if (!nb)
lib/libc/mingw/include/oscalls.h deleted-60
...@@ -1,60 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#ifndef _INC_OSCALLS
8#define _INC_OSCALLS
9
10#ifndef _CRTBLD
11#error ERROR: Use of C runtime library internal header file.
12#endif
13
14#include <crtdefs.h>
15
16#ifdef NULL
17#undef NULL
18#endif
19
20#define NOMINMAX
21
22#define _WIN32_FUSION 0x0100
23#include <windows.h>
24
25#ifndef NULL
26#ifdef __cplusplus
27#define NULL 0
28#else
29#define NULL ((void *)0)
30#endif
31#endif
32
33#ifdef _MSC_VER
34#pragma warning(push)
35#pragma warning(disable:4214)
36#endif
37
38typedef struct _FTIME
39{
40 unsigned short twosecs : 5;
41 unsigned short minutes : 6;
42 unsigned short hours : 5;
43} FTIME;
44
45typedef FTIME *PFTIME;
46
47typedef struct _FDATE
48{
49 unsigned short day : 5;
50 unsigned short month : 4;
51 unsigned short year : 7;
52} FDATE;
53
54#ifdef _MSC_VER
55#pragma warning(pop)
56#endif
57
58typedef FDATE *PFDATE;
59
60#endif
lib/libc/mingw/include/sect_attribs.h+43-50
...@@ -6,60 +6,54 @@...@@ -6,60 +6,54 @@
66
7#if defined(_MSC_VER)7#if defined(_MSC_VER)
88
9#if defined(_M_IA64) || defined(_M_AMD64)
10#define _ATTRIBUTES
11#else
12#define _ATTRIBUTES shared
13#endif
14
15/* Reference list of existing section for msvcrt. */9/* Reference list of existing section for msvcrt. */
16#pragma section(".CRTMP$XCA",long,_ATTRIBUTES)10#pragma section(".CRTMP$XCA", long, read)
17#pragma section(".CRTMP$XCZ",long,_ATTRIBUTES)11#pragma section(".CRTMP$XCZ", long, read)
18#pragma section(".CRTMP$XIA",long,_ATTRIBUTES)12#pragma section(".CRTMP$XIA", long, read)
19#pragma section(".CRTMP$XIZ",long,_ATTRIBUTES)13#pragma section(".CRTMP$XIZ", long, read)
2014
21#pragma section(".CRTMA$XCA",long,_ATTRIBUTES)15#pragma section(".CRTMA$XCA", long, read)
22#pragma section(".CRTMA$XCZ",long,_ATTRIBUTES)16#pragma section(".CRTMA$XCZ", long, read)
23#pragma section(".CRTMA$XIA",long,_ATTRIBUTES)17#pragma section(".CRTMA$XIA", long, read)
24#pragma section(".CRTMA$XIZ",long,_ATTRIBUTES)18#pragma section(".CRTMA$XIZ", long, read)
2519
26#pragma section(".CRTVT$XCA",long,_ATTRIBUTES)20#pragma section(".CRTVT$XCA", long, read)
27#pragma section(".CRTVT$XCZ",long,_ATTRIBUTES)21#pragma section(".CRTVT$XCZ", long, read)
2822
29#pragma section(".CRT$XCA",long,_ATTRIBUTES)23#pragma section(".CRT$XCA", long, read)
30#pragma section(".CRT$XCAA",long,_ATTRIBUTES)24#pragma section(".CRT$XCAA", long, read)
31#pragma section(".CRT$XCC",long,_ATTRIBUTES)25#pragma section(".CRT$XCC", long, read)
32#pragma section(".CRT$XCZ",long,_ATTRIBUTES)26#pragma section(".CRT$XCZ", long, read)
33#pragma section(".CRT$XDA",long,_ATTRIBUTES)27#pragma section(".CRT$XDA", long, read)
34#pragma section(".CRT$XDC",long,_ATTRIBUTES)28#pragma section(".CRT$XDC", long, read)
35#pragma section(".CRT$XDZ",long,_ATTRIBUTES)29#pragma section(".CRT$XDZ", long, read)
36#pragma section(".CRT$XIA",long,_ATTRIBUTES)30#pragma section(".CRT$XIA", long, read)
37#pragma section(".CRT$XIAA",long,_ATTRIBUTES)31#pragma section(".CRT$XIAA", long, read)
38#pragma section(".CRT$XIC",long,_ATTRIBUTES)32#pragma section(".CRT$XIC", long, read)
39#pragma section(".CRT$XID",long,_ATTRIBUTES)33#pragma section(".CRT$XID", long, read)
40#pragma section(".CRT$XIY",long,_ATTRIBUTES)34#pragma section(".CRT$XIY", long, read)
41#pragma section(".CRT$XIZ",long,_ATTRIBUTES)35#pragma section(".CRT$XIZ", long, read)
42#pragma section(".CRT$XLA",long,_ATTRIBUTES)36#pragma section(".CRT$XLA", long, read)
43#pragma section(".CRT$XLC",long,_ATTRIBUTES)37#pragma section(".CRT$XLC", long, read)
44#pragma section(".CRT$XLD",long,_ATTRIBUTES)38#pragma section(".CRT$XLD", long, read)
45#pragma section(".CRT$XLZ",long,_ATTRIBUTES)39#pragma section(".CRT$XLZ", long, read)
46#pragma section(".CRT$XPA",long,_ATTRIBUTES)40#pragma section(".CRT$XPA", long, read)
47#pragma section(".CRT$XPX",long,_ATTRIBUTES)41#pragma section(".CRT$XPX", long, read)
48#pragma section(".CRT$XPXA",long,_ATTRIBUTES)42#pragma section(".CRT$XPXA", long, read)
49#pragma section(".CRT$XPZ",long,_ATTRIBUTES)43#pragma section(".CRT$XPZ", long, read)
50#pragma section(".CRT$XTA",long,_ATTRIBUTES)44#pragma section(".CRT$XTA", long, read)
51#pragma section(".CRT$XTB",long,_ATTRIBUTES)45#pragma section(".CRT$XTB", long, read)
52#pragma section(".CRT$XTX",long,_ATTRIBUTES)46#pragma section(".CRT$XTX", long, read)
53#pragma section(".CRT$XTZ",long,_ATTRIBUTES)47#pragma section(".CRT$XTZ", long, read)
54#pragma section(".rdata$T",long,read)48#pragma section(".rdata$T", long, read)
55#pragma section(".rtc$IAA",long,read)49#pragma section(".rtc$IAA", long, read)
56#pragma section(".rtc$IZZ",long,read)50#pragma section(".rtc$IZZ", long, read)
57#pragma section(".rtc$TAA",long,read)51#pragma section(".rtc$TAA", long, read)
58#pragma section(".rtc$TZZ",long,read)52#pragma section(".rtc$TZZ", long, read)
59/* for tlssup.c: */53/* for tlssup.c: */
60#pragma section(".tls",long,read,write)54#pragma section(".tls", long)
61#pragma section(".tls$AAA",long,read,write)55#pragma section(".tls$AAA", long)
62#pragma section(".tls$ZZZ",long,read,write)56#pragma section(".tls$ZZZ", long)
63#endif /* _MSC_VER */57#endif /* _MSC_VER */
6458
65#if defined(_MSC_VER)59#if defined(_MSC_VER)
...@@ -69,4 +63,3 @@...@@ -69,4 +63,3 @@
69#else63#else
70#error Your compiler is not supported.64#error Your compiler is not supported.
71#endif65#endif
72
lib/libc/mingw/lib-common/api-ms-win-crt-convert-l1-1-0.def.in+2-2
...@@ -93,7 +93,7 @@ atof...@@ -93,7 +93,7 @@ atof
93atoi93atoi
94atol94atol
95atoll95atoll
96btowc96; btowc ; replaced for consistency with wctob
97c16rtomb97c16rtomb
98c32rtomb98c32rtomb
99mbrtoc1699mbrtoc16
...@@ -128,7 +128,7 @@ wcstombs_s...@@ -128,7 +128,7 @@ wcstombs_s
128wcstoul128wcstoul
129wcstoull129wcstoull
130wcstoumax130wcstoumax
131wctob131; wctob ; replaced, CRT version may sign-extend its return value
132wctomb132wctomb
133wctomb_s133wctomb_s
134wctrans134wctrans
lib/libc/mingw/lib-common/api-ms-win-crt-filesystem-l1-1-0.def.in+3
...@@ -37,10 +37,13 @@ F64(_fstat == _fstat64i32)...@@ -37,10 +37,13 @@ F64(_fstat == _fstat64i32)
37F32(_fstati64 == _fstat32i64)37F32(_fstati64 == _fstat32i64)
38F64(_fstati64 == _fstat64)38F64(_fstati64 == _fstat64)
39_fstat3239_fstat32
40fstat32 == _fstat32
40_fstat32i6441_fstat32i64
42fstat32i64 == _fstat32i64
41_fstat6443_fstat64
42fstat64 == _fstat6444fstat64 == _fstat64
43_fstat64i3245_fstat64i32
46fstat64i32 == _fstat64i32
44_fullpath47_fullpath
45_getdiskfree48_getdiskfree
46_getdrive49_getdrive
lib/libc/mingw/lib-common/api-ms-win-crt-math-l1-1-0.def.in+1-1
...@@ -266,7 +266,7 @@ expm1...@@ -266,7 +266,7 @@ expm1
266expm1f266expm1f
267F_LD64(expm1l) ; Can't use long double functions from the CRT on x86267F_LD64(expm1l) ; Can't use long double functions from the CRT on x86
268fabs268fabs
269F_ARM_ANY(fabsf)269F_ARM_NATIVE(fabsf)
270fdim270fdim
271fdimf271fdimf
272F_LD64(fdiml) ; Can't use long double functions from the CRT on x86272F_LD64(fdiml) ; Can't use long double functions from the CRT on x86
lib/libc/mingw/lib-common/api-ms-win-crt-private-l1-1-0.def.in+4-2
...@@ -12,8 +12,8 @@ _FindAndUnlinkFrame...@@ -12,8 +12,8 @@ _FindAndUnlinkFrame
12F_X64(_GetImageBase)12F_X64(_GetImageBase)
13F_X64(_GetThrowImageBase)13F_X64(_GetThrowImageBase)
14_IsExceptionObjectToBeDestroyed14_IsExceptionObjectToBeDestroyed
15F_I386(_NLG_Dispatch2@4)15F_I386(_NLG_Dispatch2) ; msvc symbol is without decoration but callee pop stack (like stdcall @4)
16F_I386(_NLG_Return@12)16F_I386(_NLG_Return) ; msvc symbol is without decoration but callee pop stack (like stdcall @12)
17F_I386(_NLG_Return2)17F_I386(_NLG_Return2)
18F_X64(_SetImageBase)18F_X64(_SetImageBase)
19F_X64(_SetThrowImageBase)19F_X64(_SetThrowImageBase)
...@@ -46,7 +46,9 @@ __dcrt_get_wide_environment_from_os...@@ -46,7 +46,9 @@ __dcrt_get_wide_environment_from_os
46__dcrt_initial_narrow_environment DATA46__dcrt_initial_narrow_environment DATA
47F_I386(__intrinsic_abnormal_termination)47F_I386(__intrinsic_abnormal_termination)
48F_NON_ARM64(__intrinsic_setjmp)48F_NON_ARM64(__intrinsic_setjmp)
49F_NON_ARM64(_setjmp == __intrinsic_setjmp)
49F64(__intrinsic_setjmpex)50F64(__intrinsic_setjmpex)
51F64(_setjmpex == __intrinsic_setjmpex)
50__processing_throw52__processing_throw
51__report_gsfailure53__report_gsfailure
52__std_exception_copy54__std_exception_copy
lib/libc/mingw/lib-common/api-ms-win-crt-runtime-l1-1-0.def.in+2-1
...@@ -24,7 +24,7 @@ __threadid...@@ -24,7 +24,7 @@ __threadid
24__wcserror24__wcserror
25__wcserror_s25__wcserror_s
26; DATA set manually26; DATA set manually
27_assert27__msvcrt_assert DATA == _assert ; mingw-w64 provides _assert() function as wrapper around renamed __msvcrt_assert symbol
28_beginthread28_beginthread
29_beginthreadex29_beginthreadex
30_c_exit30_c_exit
...@@ -73,6 +73,7 @@ _register_thread_local_exe_atexit_callback...@@ -73,6 +73,7 @@ _register_thread_local_exe_atexit_callback
73_resetstkoflw73_resetstkoflw
74_seh_filter_dll74_seh_filter_dll
75_seh_filter_exe75_seh_filter_exe
76_XcptFilter == _seh_filter_exe
76_set_abort_behavior77_set_abort_behavior
77_set_app_type78_set_app_type
78__set_app_type == _set_app_type79__set_app_type == _set_app_type
lib/libc/mingw/lib-common/api-ms-win-crt-stdio-l1-1-0.def+11
...@@ -25,12 +25,14 @@ __stdio_common_vswprintf_s...@@ -25,12 +25,14 @@ __stdio_common_vswprintf_s
25__stdio_common_vswscanf25__stdio_common_vswscanf
26_chsize26_chsize
27chsize == _chsize27chsize == _chsize
28ftruncate == _chsize
28_chsize_s29_chsize_s
29_close30_close
30close == _close31close == _close
31_commit32_commit
32_creat33_creat
33creat == _creat34creat == _creat
35creat64 == _creat
34_dup36_dup
35dup == _dup37dup == _dup
36_dup238_dup2
...@@ -63,10 +65,12 @@ _fread_nolock...@@ -63,10 +65,12 @@ _fread_nolock
63_fread_nolock_s65_fread_nolock_s
64_fseek_nolock66_fseek_nolock
65_fseeki6467_fseeki64
68fseeko64 == _fseeki64
66_fseeki64_nolock69_fseeki64_nolock
67_fsopen70_fsopen
68_ftell_nolock71_ftell_nolock
69_ftelli6472_ftelli64
73ftello64 == _ftelli64
70_ftelli64_nolock74_ftelli64_nolock
71_fwrite_nolock75_fwrite_nolock
72_get_fmode76_get_fmode
...@@ -91,11 +95,13 @@ _locking...@@ -91,11 +95,13 @@ _locking
91_lseek95_lseek
92lseek == _lseek96lseek == _lseek
93_lseeki6497_lseeki64
98lseek64 == _lseeki64
94_mktemp99_mktemp
95mktemp == _mktemp100mktemp == _mktemp
96_mktemp_s101_mktemp_s
97_open102_open
98open == _open103open == _open
104open64 == _open
99_open_osfhandle105_open_osfhandle
100_pclose106_pclose
101pclose == _pclose107pclose == _pclose
...@@ -160,6 +166,7 @@ fgets...@@ -160,6 +166,7 @@ fgets
160fgetwc166fgetwc
161fgetws167fgetws
162fopen168fopen
169fopen64 == fopen
163fopen_s170fopen_s
164fputc171fputc
165fputs172fputs
...@@ -168,11 +175,14 @@ fputws...@@ -168,11 +175,14 @@ fputws
168fread175fread
169fread_s176fread_s
170freopen177freopen
178freopen64 == freopen
171freopen_s179freopen_s
172fseek180fseek
181fseeko == fseek
173fsetpos182fsetpos
174fsetpos64 == fsetpos183fsetpos64 == fsetpos
175ftell184ftell
185ftello == ftell
176fwrite186fwrite
177getc187getc
178getchar188getchar
...@@ -189,6 +199,7 @@ rewind...@@ -189,6 +199,7 @@ rewind
189setbuf199setbuf
190setvbuf200setvbuf
191tmpfile201tmpfile
202tmpfile64 == tmpfile
192tmpfile_s203tmpfile_s
193tmpnam204tmpnam
194tmpnam_s205tmpnam_s
lib/libc/mingw/lib-common/api-ms-win-crt-string-l1-1-0.def+2-2
...@@ -147,7 +147,7 @@ iswalpha...@@ -147,7 +147,7 @@ iswalpha
147iswascii147iswascii
148iswblank148iswblank
149iswcntrl149iswcntrl
150iswctype150__msvcrt_iswctype DATA == iswctype ; mingw-w64 provides real iswctype as a wrapper around renamed __msvcrt_iswctype
151iswdigit151iswdigit
152iswgraph152iswgraph
153iswlower153iswlower
...@@ -183,7 +183,7 @@ strtok_s...@@ -183,7 +183,7 @@ strtok_s
183strxfrm183strxfrm
184tolower184tolower
185toupper185toupper
186towctrans186__msvcrt_towctrans DATA == towctrans ; mingw-w64 provides real towctrans as a wrapper around renamed __msvcrt_towctrans
187towlower187towlower
188towupper188towupper
189wcscat189wcscat
lib/libc/mingw/lib-common/kernel32.def.in+7
...@@ -203,6 +203,8 @@ CreateActCtxWWorker...@@ -203,6 +203,8 @@ CreateActCtxWWorker
203CreateBoundaryDescriptorA203CreateBoundaryDescriptorA
204CreateBoundaryDescriptorW204CreateBoundaryDescriptorW
205CreateConsoleScreenBuffer205CreateConsoleScreenBuffer
206CreateDirectory2A
207CreateDirectory2W
206CreateDirectoryA208CreateDirectoryA
207CreateDirectoryExA209CreateDirectoryExA
208CreateDirectoryExW210CreateDirectoryExW
...@@ -217,6 +219,7 @@ CreateEventW...@@ -217,6 +219,7 @@ CreateEventW
217CreateFiber219CreateFiber
218CreateFiberEx220CreateFiberEx
219CreateFile2221CreateFile2
222CreateFile3
220CreateFileA223CreateFileA
221CreateFileMappingA224CreateFileMappingA
222CreateFileMappingFromApp225CreateFileMappingFromApp
...@@ -302,6 +305,8 @@ DeleteAtom...@@ -302,6 +305,8 @@ DeleteAtom
302DeleteBoundaryDescriptor305DeleteBoundaryDescriptor
303DeleteCriticalSection306DeleteCriticalSection
304DeleteFiber307DeleteFiber
308DeleteFile2A
309DeleteFile2W
305DeleteFileA310DeleteFileA
306DeleteFileTransactedA311DeleteFileTransactedA
307DeleteFileTransactedW312DeleteFileTransactedW
...@@ -1290,6 +1295,8 @@ ReleaseSRWLockExclusive...@@ -1290,6 +1295,8 @@ ReleaseSRWLockExclusive
1290ReleaseSRWLockShared1295ReleaseSRWLockShared
1291ReleaseSemaphore1296ReleaseSemaphore
1292ReleaseSemaphoreWhenCallbackReturns1297ReleaseSemaphoreWhenCallbackReturns
1298RemoveDirectory2A
1299RemoveDirectory2W
1293RemoveDirectoryA1300RemoveDirectoryA
1294RemoveDirectoryTransactedA1301RemoveDirectoryTransactedA
1295RemoveDirectoryTransactedW1302RemoveDirectoryTransactedW
lib/libc/mingw/lib-common/ntdll.def.in+7-7
...@@ -228,7 +228,7 @@ LdrSetMUICacheType...@@ -228,7 +228,7 @@ LdrSetMUICacheType
228LdrShutdownProcess228LdrShutdownProcess
229LdrShutdownThread229LdrShutdownThread
230LdrStandardizeSystemPath230LdrStandardizeSystemPath
231LdrSystemDllInitBlock F_ARM_ANY(DATA)231LdrSystemDllInitBlock DATA
232LdrUnloadAlternateResourceModule232LdrUnloadAlternateResourceModule
233LdrUnloadAlternateResourceModuleEx233LdrUnloadAlternateResourceModuleEx
234LdrUnloadDll234LdrUnloadDll
...@@ -455,7 +455,7 @@ NtLoadDriver...@@ -455,7 +455,7 @@ NtLoadDriver
455NtLoadEnclaveData455NtLoadEnclaveData
456NtLoadKey456NtLoadKey
457NtLoadKey2457NtLoadKey2
458F_ARM_ANY(NtLoadKey3)458NtLoadKey3
459NtLoadKeyEx459NtLoadKeyEx
460NtLockFile460NtLockFile
461NtLockProductActivationKeys461NtLockProductActivationKeys
...@@ -1643,8 +1643,8 @@ F_X86_ANY(RtlUTF8StringToUnicodeString)...@@ -1643,8 +1643,8 @@ F_X86_ANY(RtlUTF8StringToUnicodeString)
1643RtlUTF8ToUnicodeN1643RtlUTF8ToUnicodeN
1644RtlUdiv1281644RtlUdiv128
1645F_X64(RtlUmsThreadYield)1645F_X64(RtlUmsThreadYield)
1646F_ARM_ANY(RtlUlongByteSwap)1646F_ARM_NATIVE(RtlUlongByteSwap)
1647F_ARM_ANY(RtlUlonglongByteSwap)1647F_ARM_NATIVE(RtlUlonglongByteSwap)
1648RtlUnhandledExceptionFilter1648RtlUnhandledExceptionFilter
1649RtlUnhandledExceptionFilter21649RtlUnhandledExceptionFilter2
1650RtlUnicodeStringToAnsiSize1650RtlUnicodeStringToAnsiSize
...@@ -1690,7 +1690,7 @@ RtlUpperString...@@ -1690,7 +1690,7 @@ RtlUpperString
1690F_X86_ANY(RtlUsageHeap)1690F_X86_ANY(RtlUsageHeap)
1691RtlUserFiberStart1691RtlUserFiberStart
1692RtlUserThreadStart1692RtlUserThreadStart
1693F_ARM_ANY(RtlUshortByteSwap)1693F_ARM_NATIVE(RtlUshortByteSwap)
1694RtlValidAcl1694RtlValidAcl
1695RtlValidProcessProtection1695RtlValidProcessProtection
1696RtlValidRelativeSecurityDescriptor1696RtlValidRelativeSecurityDescriptor
...@@ -1758,7 +1758,7 @@ RtlpConvertRelativeToAbsoluteSecurityAttribute...@@ -1758,7 +1758,7 @@ RtlpConvertRelativeToAbsoluteSecurityAttribute
1758RtlpCreateProcessRegistryInfo1758RtlpCreateProcessRegistryInfo
1759RtlpEnsureBufferSize1759RtlpEnsureBufferSize
1760F_X64(RtlpExecuteUmsThread)1760F_X64(RtlpExecuteUmsThread)
1761RtlpFreezeTimeBias F_ARM_ANY(DATA)1761RtlpFreezeTimeBias DATA
1762RtlpGetDeviceFamilyInfoEnum1762RtlpGetDeviceFamilyInfoEnum
1763RtlpGetLCIDFromLangInfoNode1763RtlpGetLCIDFromLangInfoNode
1764RtlpGetNameFromLangInfoNode1764RtlpGetNameFromLangInfoNode
...@@ -2114,7 +2114,7 @@ ZwLoadDriver...@@ -2114,7 +2114,7 @@ ZwLoadDriver
2114ZwLoadEnclaveData2114ZwLoadEnclaveData
2115ZwLoadKey2115ZwLoadKey
2116ZwLoadKey22116ZwLoadKey2
2117F_ARM_ANY(ZwLoadKey3)2117ZwLoadKey3
2118ZwLoadKeyEx2118ZwLoadKeyEx
2119ZwLockFile2119ZwLockFile
2120ZwLockProductActivationKeys2120ZwLockProductActivationKeys
lib/libc/mingw/lib-common/ntdllcrt.def.in+168-140
...@@ -1,225 +1,253 @@...@@ -1,225 +1,253 @@
1#include "func.def.in"1#include "func.def.in"
22
3LIBRARY "ntdll.dll"3LIBRARY "NTDLL.dll"
4EXPORTS4EXPORTS
5#ifdef __i386__5
6_CIcos6; This is list of symbols available since Windows NT 3.5
7_CIlog7; Windows NT 3.1, Win32s and Win9x versions do not contain any CRT symbol
8_CIpow8F_I386(_CIpow)
9_CIsin9; _abnormal_termination ; removed in Windows NT 3.51
10_CIsqrt10; F_I386(_chkstk)
11#endif11; _except_handler2 ; removed in Windows NT 3.51
12F_NON_I386(__C_specific_handler)
13F_NON_I386(;__chkstk)
14__isascii
15__iscsym
16__iscsymf
17F_X64(__misaligned_access)
18F_ARM32(__jump_unwind)
19__toascii
20#ifdef __i386__
21_alldiv
22_alldvrm@16
23_allmul@16
24_alloca_probe
25_alloca_probe_16
26_alloca_probe_8
27_allrem@16
28_allshl
29_allshr
30#endif
31_atoi64
32#ifdef __i386__
33_aulldiv@16
34_aulldvrm@16
35_aullrem@16
36_aullshr
37;_chkstk
38#endif
39_errno
40F_I386(_except_handler4_common)
41_fltused DATA12_fltused DATA
42#ifdef __i386__13F_I386(_ftol)
43_ftol14; _global_unwind2 ; removed in Windows NT 3.51
44_ftol2
45_ftol2_sse
46#endif
47_i64toa
48_i64toa_s
49_i64tow
50_i64tow_s
51_itoa15_itoa
52_itoa_s16; _local_unwind2 ; removed in Windows NT 3.51
53_itow
54_itow_s
55_lfind
56F64(_local_unwind)
57F_I386(_local_unwind4)
58_ltoa17_ltoa
59_ltoa_s
60_ltow
61_ltow_s
62_makepath_s
63_memccpy18_memccpy
64_memicmp19_memicmp
65F_X64(_setjmp)
66F_ARM32(_setjmp)
67F_NON_I386(_setjmpex)
68_snprintf20_snprintf
69_snprintf_s
70_snscanf_s
71_snwprintf21_snwprintf
72_snwprintf_s
73_snwscanf_s
74_splitpath22_splitpath
75_splitpath_s
76_strcmpi23_strcmpi
77_stricmp24_stricmp
78_strlwr25_strlwr
79strlwr == _strlwr26strlwr == _strlwr ; manual alias
80_strlwr_s
81_strnicmp27_strnicmp
82_strnset_s
83_strset_s
84_strupr28_strupr
85_strupr_s
86_swprintf
87F_X86_ANY(_tolower)
88F_X86_ANY(_toupper)
89_ui64toa
90_ui64toa_s
91_ui64tow
92_ui64tow_s
93_ultoa29_ultoa
94_ultoa_s
95_ultow
96_ultow_s
97_vscprintf
98_vscwprintf
99_vsnprintf30_vsnprintf
100_vsnprintf_s
101_vsnwprintf
102_vsnwprintf_s
103_vswprintf
104_wcsicmp31_wcsicmp
105_wcslwr32_wcslwr
106wcslwr == _wcslwr33wcslwr == _wcslwr ; manual alias
107_wcslwr_s
108_wcsnicmp34_wcsnicmp
109_wcsnset_s
110_wcsset_s
111_wcstoi64
112_wcstoui64
113_wcsupr35_wcsupr
114_wcsupr_s
115_wmakepath_s
116_wsplitpath_s
117_wtoi
118_wtoi64
119_wtol
120abs36abs
121atan F_X86_ANY(DATA)37atan F_X86_ANY(DATA) ; replaced by emu
122atan2
123atoi38atoi
124atol39atol
125bsearch
126bsearch_s
127ceil40ceil
128cos F_X86_ANY(DATA)41cos F_X86_ANY(DATA) ; replaced by emu
129fabs F_X86_ANY(DATA)42fabs F_X86_ANY(DATA) ; replaced by emu
130floor F_X86_ANY(DATA)43floor F_X86_ANY(DATA) ; replaced by emu
131isalnum
132isalpha44isalpha
133iscntrl
134isdigit45isdigit
135isgraph
136islower46islower
137isprint47isprint
138ispunct
139isspace48isspace
140isupper49isupper
141iswalnum
142iswalpha50iswalpha
143iswascii
144iswctype51iswctype
145iswdigit
146iswgraph
147iswlower
148iswprint
149iswspace
150iswxdigit
151isxdigit52isxdigit
152labs53labs
153log54log
154F_NON_I386(longjmp)
155mbstowcs55mbstowcs
156memchr56memchr
157memcmp57memcmp
158memcpy58memcpy
159memcpy_s
160memmove59memmove
161memmove_s
162memset60memset
163pow61pow
164qsort62qsort
165qsort_s
166sin63sin
167sprintf64sprintf
168sprintf_s
169sqrt65sqrt
170sscanf66sscanf
171sscanf_s
172strcat67strcat
173strcat_s
174strchr68strchr
175strcmp69strcmp
176strcpy70strcpy
177strcpy_s
178strcspn71strcspn
179strlen72strlen
180strncat73strncat
181strncat_s
182strncmp74strncmp
183strncpy75strncpy
184strncpy_s
185strnlen
186strpbrk76strpbrk
187strrchr77strrchr
188strspn78strspn
189strstr79strstr
190strtok_s
191strtol
192strtoul
193swprintf80swprintf
194swprintf_s
195swscanf_s
196tan81tan
197tolower82tolower
198toupper83toupper
199towlower84towlower
200towupper85towupper
201vsprintf86vsprintf
202vsprintf_s
203vswprintf_s
204wcscat87wcscat
205wcscat_s
206wcschr88wcschr
207wcscmp89wcscmp
208wcscpy90wcscpy
209wcscpy_s
210wcscspn91wcscspn
211wcslen92wcslen
212wcsncat93wcsncat
213wcsncat_s
214wcsncmp94wcsncmp
215wcsncpy95wcsncpy
216wcsncpy_s
217wcsnlen
218wcspbrk96wcspbrk
219wcsrchr97wcsrchr
220wcsspn98wcsspn
221wcsstr99wcsstr
222wcstok_s100; wcstok ; removed in Windows NT 4.0
223wcstol101wcstol
224wcstombs102wcstombs
225wcstoul103wcstoul
104
105; This is list of symbols added in Windows NT 3.51
106F_I386(_alloca_probe)
107
108; This is list of symbols added in Windows NT 4.0
109__isascii
110__iscsym
111__iscsymf
112__toascii
113F_I386(_alldiv@16) ; stdcall
114F_I386(_allmul@16) ; stdcall
115F_I386(_allrem@16) ; stdcall
116F_I386(_allshl)
117F_I386(_allshr)
118_atoi64
119F_I386(_aulldiv@16) ; stdcall
120F_I386(_aullrem@16) ; stdcall
121F_I386(_aullshr)
122_i64toa
123_i64tow
124_itow
125_ltow
126F_X86_ANY(_tolower) ; removed in Windows Vista
127F_X86_ANY(_toupper) ; removed in Windows Vista
128_ultow
129_wtoi
130_wtoi64
131_wtol
132isalnum
133iscntrl
134isgraph
135ispunct
136strtol
137strtoul
138
139; This is list of symbols added in Windows 2000
140_ui64toa
141iswdigit
142iswlower
143iswspace
144iswxdigit
145
146; This is list of symbols added in Windows XP
147F_I386(_CIcos)
148F_I386(_CIlog)
149F_I386(_CIsin)
150F_I386(_CIsqrt)
151F_I386(_alldvrm@16) ; stdcall
152F_I386(_aulldvrm@16) ; stdcall
153_lfind
154_ui64tow
155_vsnwprintf
156bsearch
157
158; This is list of symbols added in Windows Server 2003
159_vscwprintf
160_wcstoui64
161
162; This is list of symbols added in Windows Server 2003 SP1 / Windows XP x64 SP1
163F_NON_I386(__C_specific_handler)
164; F_NON_I386(__chkstk)
165F_X64(__misaligned_access)
166F64(_local_unwind)
167F_NON_I386(F_NON_ARM64(_setjmp))
168F_NON_I386(_setjmpex)
169F_NON_I386(longjmp)
170
171; This is list of symbols added in Windows Vista
172F_I386(_alloca_probe_16)
173F_I386(_alloca_probe_8)
174_swprintf
175_vswprintf
176
177; This is list of symbols added in Windows 7
178_i64toa_s
179_i64tow_s
180_itoa_s
181_itow_s
182_ltoa_s
183_ltow_s
184_makepath_s
185_snprintf_s
186_snscanf_s
187_snwprintf_s
188_snwscanf_s
189_splitpath_s
190_strnset_s
191_strset_s
192_ui64toa_s
193_ui64tow_s
194_ultoa_s
195_ultow_s
196_vsnprintf_s
197_vsnwprintf_s
198_wcsnset_s
199_wcsset_s
200_wmakepath_s
201_wsplitpath_s
202memcpy_s
203memmove_s
204sprintf_s
205sscanf_s
206strcat_s
207strcpy_s
208strncat_s
209strncpy_s
210strnlen
211strtok_s
212swprintf_s
213swscanf_s
214vsprintf_s
215vswprintf_s
216wcscat_s
217wcscpy_s
218wcsncat_s
219wcsncpy_s
220wcsnlen
221
222; This is list of symbols added in Windows 8
223F_ARM32(__jump_unwind)
224_errno
225F_I386(_except_handler4_common)
226F_I386(_ftol2)
227F_I386(_ftol2_sse)
228F_I386(_local_unwind4)
229_strlwr_s
230_strupr_s
231_wcslwr_s
232_wcstoi64
233_wcsupr_s
234iswalnum
235iswascii
236iswgraph
237iswprint
238qsort_s
239wcstok_s
240
241; This is list of symbols added in Windows 10 (Threshold / 1507)
242atan2
243
244; This is list of symbols added in Windows 10 Creators Update (Redstone 2 / 1703)
245bsearch_s
246
247; This is list of symbols added in Windows 10 Fall Creators Update (Redstone 3 / 1709)
248_vscprintf
249
250; This is list of symbols added in Windows 11 2024 Update (Hudson Valley / 24H2) (WoW64 version)
251; _libm_sse2_cos_precise
252; _libm_sse2_sin_precise
253; _libm_sse2_sqrt_precise
lib/libc/mingw/lib-common/oleacc.def+10-5
...@@ -1,10 +1,13 @@...@@ -1,10 +1,13 @@
1;1;
2; Definition file of OLEACC.dll2; Definition file of OLEACC.dll
3; Automatic generated by gendef3; Automatic generated by gendef 1.1
4; written by Kai Tietz 2008-20144; written by Kai Tietz 2008
5; The def file has to be processed by --kill-at (-k) option of dlltool or ld
5;6;
6LIBRARY "OLEACC.dll"7LIBRARY "OLEACC.dll"
7EXPORTS8EXPORTS
9;DllRegisterServer
10;DllUnregisterServer
8AccGetRunningUtilityState11AccGetRunningUtilityState
9AccNotifyTouchInteraction12AccNotifyTouchInteraction
10AccSetRunningUtilityState13AccSetRunningUtilityState
...@@ -16,15 +19,17 @@ AccessibleObjectFromWindowTimeout...@@ -16,15 +19,17 @@ AccessibleObjectFromWindowTimeout
16CreateStdAccessibleObject19CreateStdAccessibleObject
17CreateStdAccessibleProxyA20CreateStdAccessibleProxyA
18CreateStdAccessibleProxyW21CreateStdAccessibleProxyW
22;DllCanUnloadNow
23;DllGetClassObject
19GetOleaccVersionInfo24GetOleaccVersionInfo
20GetProcessHandleFromHwnd25GetProcessHandleFromHwnd
21GetRoleTextA26GetRoleTextA
22GetRoleTextW27GetRoleTextW
23GetStateTextA28GetStateTextA
24GetStateTextW29GetStateTextW
25IID_IAccessible30;IID_IAccessible DATA
26IID_IAccessibleHandler31;IID_IAccessibleHandler DATA
27LIBID_Accessibility32;LIBID_Accessibility DATA
28LresultFromObject33LresultFromObject
29ObjectFromLresult34ObjectFromLresult
30PropMgrClient_LookupProp35PropMgrClient_LookupProp
lib/libc/mingw/lib-common/ucrtbase-common.def.in+9-9
...@@ -75,8 +75,8 @@ _IsExceptionObjectToBeDestroyed...@@ -75,8 +75,8 @@ _IsExceptionObjectToBeDestroyed
75_LCbuild75_LCbuild
76_LCmulcc76_LCmulcc
77_LCmulcr77_LCmulcr
78F_I386(_NLG_Dispatch2@4)78F_I386(_NLG_Dispatch2) ; msvc symbol is without decoration but callee pop stack (like stdcall @4)
79F_I386(_NLG_Return@12)79F_I386(_NLG_Return) ; msvc symbol is without decoration but callee pop stack (like stdcall @12)
80F_I386(_NLG_Return2)80F_I386(_NLG_Return2)
81F_X64(_SetImageBase)81F_X64(_SetImageBase)
82F_X64(_SetThrowImageBase)82F_X64(_SetThrowImageBase)
...@@ -246,7 +246,7 @@ _aligned_realloc...@@ -246,7 +246,7 @@ _aligned_realloc
246F_DEBUG(_aligned_realloc_dbg)246F_DEBUG(_aligned_realloc_dbg)
247_aligned_recalloc247_aligned_recalloc
248F_DEBUG(_aligned_recalloc_dbg)248F_DEBUG(_aligned_recalloc_dbg)
249_assert249__msvcrt_assert DATA == _assert ; mingw-w64 provides _assert() function as wrapper around renamed __msvcrt_assert symbol
250_atodbl250_atodbl
251_atodbl_l251_atodbl_l
252_atof_l252_atof_l
...@@ -1656,7 +1656,7 @@ _o_exp2f...@@ -1656,7 +1656,7 @@ _o_exp2f
1656F_LD64(_o_exp2l) ; Can't use long double functions from the CRT on x861656F_LD64(_o_exp2l) ; Can't use long double functions from the CRT on x86
1657F_NON_I386(_o_expf)1657F_NON_I386(_o_expf)
1658_o_fabs1658_o_fabs
1659F_ARM_ANY(_o_fabsf)1659F_ARM_NATIVE(_o_fabsf)
1660_o_fclose1660_o_fclose
1661_o_feof1661_o_feof
1662_o_ferror1662_o_ferror
...@@ -2233,7 +2233,7 @@ atol...@@ -2233,7 +2233,7 @@ atol
2233atoll2233atoll
2234bsearch2234bsearch
2235bsearch_s2235bsearch_s
2236btowc2236; btowc ; replaced for consistency with wctob
2237c16rtomb2237c16rtomb
2238c32rtomb2238c32rtomb
2239cabs2239cabs
...@@ -2338,7 +2338,7 @@ expm1...@@ -2338,7 +2338,7 @@ expm1
2338expm1f2338expm1f
2339F_LD64(expm1l) ; Can't use long double functions from the CRT on x862339F_LD64(expm1l) ; Can't use long double functions from the CRT on x86
2340fabs2340fabs
2341F_ARM_ANY(fabsf)2341F_ARM_NATIVE(fabsf)
2342fclose2342fclose
2343fdim2343fdim
2344fdimf2344fdimf
...@@ -2424,7 +2424,7 @@ iswalpha...@@ -2424,7 +2424,7 @@ iswalpha
2424iswascii2424iswascii
2425iswblank2425iswblank
2426iswcntrl2426iswcntrl
2427iswctype2427__msvcrt_iswctype DATA == iswctype ; mingw-w64 provides real iswctype as a wrapper around renamed __msvcrt_iswctype
2428iswdigit2428iswdigit
2429iswgraph2429iswgraph
2430iswlower2430iswlower
...@@ -2609,7 +2609,7 @@ tmpnam...@@ -2609,7 +2609,7 @@ tmpnam
2609tmpnam_s2609tmpnam_s
2610tolower2610tolower
2611toupper2611toupper
2612towctrans2612__msvcrt_towctrans DATA == towctrans ; mingw-w64 provides real towctrans as a wrapper around renamed __msvcrt_towctrans
2613towlower2613towlower
2614towupper2614towupper
2615trunc2615trunc
...@@ -2656,7 +2656,7 @@ wcstoul...@@ -2656,7 +2656,7 @@ wcstoul
2656wcstoull2656wcstoull
2657wcstoumax2657wcstoumax
2658wcsxfrm2658wcsxfrm
2659wctob2659; wctob ; replaced, CRT version may sign-extend its return value
2660wctomb2660wctomb
2661wctomb_s2661wctomb_s
2662wctrans2662wctrans
lib/libc/mingw/lib-common/vcruntime140-common.def.in+2-2
...@@ -4,8 +4,8 @@ F_NON_I386(_CxxThrowException)...@@ -4,8 +4,8 @@ F_NON_I386(_CxxThrowException)
4F_I386(_EH_prolog)4F_I386(_EH_prolog)
5_FindAndUnlinkFrame5_FindAndUnlinkFrame
6_IsExceptionObjectToBeDestroyed6_IsExceptionObjectToBeDestroyed
7F_I386(_NLG_Dispatch2@4)7F_I386(_NLG_Dispatch2) ; msvc symbol is without decoration but callee pop stack (like stdcall @4)
8F_I386(_NLG_Return@12)8F_I386(_NLG_Return) ; msvc symbol is without decoration but callee pop stack (like stdcall @12)
9F_I386(_NLG_Return2)9F_I386(_NLG_Return2)
10_SetWinRTOutOfMemoryExceptionCallback10_SetWinRTOutOfMemoryExceptionCallback
11__AdjustPointer11__AdjustPointer
lib/libc/mingw/lib32/advapi32.def+843-653
...@@ -1,369 +1,80 @@...@@ -1,369 +1,80 @@
1;
2; Definition file of ADVAPI32.dll
3; Automatic generated by gendef
4; written by Kai Tietz 2008
5;
6LIBRARY "ADVAPI32.dll"1LIBRARY "ADVAPI32.dll"
7EXPORTS2EXPORTS
8ord_1000@8 @10003
9I_ScGetCurrentGroupStateW@124; This file is a comprehensive documentation for 32-bit x86 advapi32.dll symbols.
10A_SHAFinal@85; It covers all 3 platforms (Win32s, Win9x and WinNT) and contains information
11A_SHAInit@46; from native advapi32.dll libraries on 32-bit Windows systems and also from
12A_SHAUpdate@127; 32-bit WoW64 advapi32.dll libraries on 64-bit Windows systems. Symbols in this
8; file are ordered by increasing Windows version in which they were introduced.
9; First are Win32s versions, then followed by Win9x versions and then WinNT
10; because logically Win32s symbols are a subset of Win9x symbols which are a
11; subset of WinNT symbols. Comments contains additional information with exceptions.
12;
13; BEWARE that this file contains only information about symbol availability and
14; whether it is possible to load an application or library which references these
15; symbols. It does not contain information if the particular Windows version
16; supports or implements corresponding API functions. Lots of -W functions are
17; unimplemented on Win32s and Win9x platforms and simply signal
18; ERROR_CALL_NOT_IMPLEMENTED.
19
20; This is list of symbols available in all Windows versions (Win32s since Win32s 1.1;
21; Win9x since Windows 95; WinNT since Windows NT 3.1)
13AbortSystemShutdownA@422AbortSystemShutdownA@4
14AbortSystemShutdownW@423AbortSystemShutdownW@4
15AccessCheck@3224AccessCheck@32
16AccessCheckAndAuditAlarmA@4425AccessCheckAndAuditAlarmA@44
17AccessCheckAndAuditAlarmW@4426AccessCheckAndAuditAlarmW@44
18AccessCheckByType@44
19AccessCheckByTypeAndAuditAlarmA@64
20AccessCheckByTypeAndAuditAlarmW@64
21AccessCheckByTypeResultList@44
22AccessCheckByTypeResultListAndAuditAlarmA@64
23AccessCheckByTypeResultListAndAuditAlarmByHandleA@68
24AccessCheckByTypeResultListAndAuditAlarmByHandleW@68
25AccessCheckByTypeResultListAndAuditAlarmW@64
26AddAccessAllowedAce@1627AddAccessAllowedAce@16
27AddAccessAllowedAceEx@20
28AddAccessAllowedObjectAce@28
29AddAccessDeniedAce@1628AddAccessDeniedAce@16
30AddAccessDeniedAceEx@20
31AddAccessDeniedObjectAce@28
32AddAce@2029AddAce@20
33AddAuditAccessAce@2430AddAuditAccessAce@24
34AddAuditAccessAceEx@28
35AddAuditAccessObjectAce@36
36AddConditionalAce@32
37AddMandatoryAce@20
38AddUsersToEncryptedFile@8
39AddUsersToEncryptedFileEx@16
40AdjustTokenGroups@2431AdjustTokenGroups@24
41AdjustTokenPrivileges@2432AdjustTokenPrivileges@24
42AllocateAndInitializeSid@4433AllocateAndInitializeSid@44
43AllocateLocallyUniqueId@434AllocateLocallyUniqueId@4
44AreAllAccessesGranted@835AreAllAccessesGranted@8
45AreAnyAccessesGranted@836AreAnyAccessesGranted@8
46AuditComputeEffectivePolicyBySid@16
47AuditComputeEffectivePolicyByToken@16
48AuditEnumerateCategories@8
49AuditEnumeratePerUserPolicy@4
50AuditEnumerateSubCategories@16
51AuditFree@4
52AuditLookupCategoryGuidFromCategoryId@8
53AuditLookupCategoryIdFromCategoryGuid@8
54AuditLookupCategoryNameA@8
55AuditLookupCategoryNameW@8
56AuditLookupSubCategoryNameA@8
57AuditLookupSubCategoryNameW@8
58AuditQueryGlobalSaclA@8
59AuditQueryGlobalSaclW@8
60AuditQueryPerUserPolicy@16
61AuditQuerySecurity@8
62AuditQuerySystemPolicy@12
63AuditSetGlobalSaclA@8
64AuditSetGlobalSaclW@8
65AuditSetPerUserPolicy@12
66AuditSetSecurity@8
67AuditSetSystemPolicy@8
68BackupEventLogA@837BackupEventLogA@8
69BackupEventLogW@838BackupEventLogW@8
70BaseRegCloseKey@4
71BaseRegCreateKey@32
72BaseRegDeleteKeyEx@16
73BaseRegDeleteValue@8
74BaseRegFlushKey@4
75BaseRegGetVersion@8
76BaseRegLoadKey@12
77BaseRegOpenKey@20
78BaseRegRestoreKey@12
79BaseRegSaveKeyEx@16
80BaseRegSetKeySecurity@12
81BaseRegSetValue@20
82BaseRegUnLoadKey@8
83BuildExplicitAccessWithNameA@20
84BuildExplicitAccessWithNameW@20
85BuildImpersonateExplicitAccessWithNameA@24
86BuildImpersonateExplicitAccessWithNameW@24
87BuildImpersonateTrusteeA@8
88BuildImpersonateTrusteeW@8
89BuildSecurityDescriptorA@36
90BuildSecurityDescriptorW@36
91BuildTrusteeWithNameA@8
92BuildTrusteeWithNameW@8
93BuildTrusteeWithObjectsAndNameA@24
94BuildTrusteeWithObjectsAndNameW@24
95BuildTrusteeWithObjectsAndSidA@20
96BuildTrusteeWithObjectsAndSidW@20
97BuildTrusteeWithSidA@8
98BuildTrusteeWithSidW@8
99CancelOverlappedAccess@4
100ChangeServiceConfig2A@12
101ChangeServiceConfig2W@12
102ChangeServiceConfigA@4439ChangeServiceConfigA@44
103ChangeServiceConfigW@4440ChangeServiceConfigW@44
104CheckForHiberboot@8
105CheckTokenMembership@12
106ClearEventLogA@841ClearEventLogA@8
107ClearEventLogW@842ClearEventLogW@8
108CloseCodeAuthzLevel@4
109CloseEncryptedFileRaw@4
110CloseEventLog@443CloseEventLog@4
111CloseServiceHandle@444CloseServiceHandle@4
112CloseThreadWaitChainSession@4
113CloseTrace@8
114CommandLineFromMsiDescriptor@12
115ComputeAccessTokenFromCodeAuthzLevel@20
116ControlService@1245ControlService@12
117ControlServiceExA@16
118ControlServiceExW@16
119ControlTraceA@20
120ControlTraceW@20
121ConvertAccessToSecurityDescriptorA@20
122ConvertAccessToSecurityDescriptorW@20
123ConvertSDToStringSDDomainW@28
124ConvertSDToStringSDRootDomainA@24
125ConvertSDToStringSDRootDomainW@24
126ConvertSecurityDescriptorToAccessA@28
127ConvertSecurityDescriptorToAccessNamedA@28
128ConvertSecurityDescriptorToAccessNamedW@28
129ConvertSecurityDescriptorToAccessW@28
130ConvertSecurityDescriptorToStringSecurityDescriptorA@20
131ConvertSecurityDescriptorToStringSecurityDescriptorW@20
132ConvertSidToStringSidA@8
133ConvertSidToStringSidW@8
134ConvertStringSDToSDDomainA@24
135ConvertStringSDToSDDomainW@24
136ConvertStringSDToSDRootDomainA@20
137ConvertStringSDToSDRootDomainW@20
138ConvertStringSecurityDescriptorToSecurityDescriptorA@16
139ConvertStringSecurityDescriptorToSecurityDescriptorW@16
140ConvertStringSidToSidA@8
141ConvertStringSidToSidW@8
142ConvertToAutoInheritPrivateObjectSecurity@24
143CopySid@1246CopySid@12
144CreateCodeAuthzLevel@20
145CreatePrivateObjectSecurity@2447CreatePrivateObjectSecurity@24
146CreatePrivateObjectSecurityEx@32
147CreatePrivateObjectSecurityWithMultipleInheritance@36
148CreateProcessAsUserA@44
149CreateProcessAsUserW@44
150CreateProcessWithLogonW@44
151CreateProcessWithTokenW@36
152CreateRestrictedToken@36
153CreateServiceA@5248CreateServiceA@52
154CreateServiceW@5249CreateServiceW@52
155CreateTraceInstanceId@8
156CreateWellKnownSid@16
157CredBackupCredentials@20
158CredDeleteA@12
159CredDeleteW@12
160CredEncryptAndMarshalBinaryBlob@12
161CredEnumerateA@16
162CredEnumerateW@16
163CredFindBestCredentialA@16
164CredFindBestCredentialW@16
165CredFree@4
166CredGetSessionTypes@8
167CredGetTargetInfoA@12
168CredGetTargetInfoW@12
169CredIsMarshaledCredentialA@4
170CredIsMarshaledCredentialW@4
171CredIsProtectedA@8
172CredIsProtectedW@8
173CredMarshalCredentialA@12
174CredMarshalCredentialW@12
175CredProfileLoaded@0
176CredProfileUnloaded@0
177CredProtectA@24
178CredProtectW@24
179CredReadA@16
180CredReadByTokenHandle@20
181CredReadDomainCredentialsA@16
182CredReadDomainCredentialsW@16
183CredReadW@16
184CredRenameA@16
185CredRenameW@16
186CredRestoreCredentials@16
187CredUnmarshalCredentialA@12
188CredUnmarshalCredentialW@12
189CredUnprotectA@20
190CredUnprotectW@20
191CredWriteA@8
192CredWriteDomainCredentialsA@12
193CredWriteDomainCredentialsW@12
194CredWriteW@8
195CredpConvertCredential@16
196CredpConvertOneCredentialSize@8
197CredpConvertTargetInfo@16
198CredpDecodeCredential@4
199CredpEncodeCredential@4
200CredpEncodeSecret@20
201CryptAcquireContextA@20
202CryptAcquireContextW@20
203CryptContextAddRef@12
204CryptCreateHash@20
205CryptDecrypt@24
206CryptDeriveKey@20
207CryptDestroyHash@4
208CryptDestroyKey@4
209CryptDuplicateHash@16
210CryptDuplicateKey@16
211CryptEncrypt@28
212CryptEnumProviderTypesA@24
213CryptEnumProviderTypesW@24
214CryptEnumProvidersA@24
215CryptEnumProvidersW@24
216CryptExportKey@24
217CryptGenKey@16
218CryptGenRandom@12
219CryptGetDefaultProviderA@20
220CryptGetDefaultProviderW@20
221CryptGetHashParam@20
222CryptGetKeyParam@20
223CryptGetProvParam@20
224CryptGetUserKey@12
225CryptHashData@16
226CryptHashSessionKey@12
227CryptImportKey@24
228CryptReleaseContext@8
229CryptSetHashParam@16
230CryptSetKeyParam@16
231CryptSetProvParam@16
232CryptSetProviderA@8
233CryptSetProviderExA@16
234CryptSetProviderExW@16
235CryptSetProviderW@8
236CryptSignHashA@24
237CryptSignHashW@24
238CryptVerifySignatureA@24
239CryptVerifySignatureW@24
240CveEventWrite@8
241DecryptFileA@8
242DecryptFileW@8
243DeleteAce@850DeleteAce@8
244DeleteService@451DeleteService@4
245DeregisterEventSource@452DeregisterEventSource@4
246DestroyPrivateObjectSecurity@453DestroyPrivateObjectSecurity@4
247DuplicateEncryptionInfoFile@20
248DuplicateToken@1254DuplicateToken@12
249DuplicateTokenEx@24
250ElfBackupEventLogFileA@8
251ElfBackupEventLogFileW@8
252ElfChangeNotify@8
253ElfClearEventLogFileA@8
254ElfClearEventLogFileW@8
255ElfCloseEventLog@4
256ElfDeregisterEventSource@4
257ElfFlushEventLog@4
258ElfNumberOfRecords@8
259ElfOldestRecord@8
260ElfOpenBackupEventLogA@12
261ElfOpenBackupEventLogW@12
262ElfOpenEventLogA@12
263ElfOpenEventLogW@12
264ElfReadEventLogA@28
265ElfReadEventLogW@28
266ElfRegisterEventSourceA@12
267ElfRegisterEventSourceW@12
268ElfReportEventA@48
269ElfReportEventAndSourceW@60
270ElfReportEventW@48
271EnableTrace@24
272EnableTraceEx2@44
273EnableTraceEx@48
274EncryptFileA@4
275EncryptFileW@4
276EncryptedFileKeyInfo@12
277EncryptionDisable@8
278EnumDependentServicesA@2455EnumDependentServicesA@24
279EnumDependentServicesW@2456EnumDependentServicesW@24
280EnumDynamicTimeZoneInformation@8
281EnumServiceGroupW@36
282EnumServicesStatusA@3257EnumServicesStatusA@32
283EnumServicesStatusExA@40
284EnumServicesStatusExW@40
285EnumServicesStatusW@3258EnumServicesStatusW@32
286EnumerateTraceGuids@12
287EnumerateTraceGuidsEx@24
288EqualDomainSid@12
289EqualPrefixSid@859EqualPrefixSid@8
290EqualSid@860EqualSid@8
291EventAccessControl@20
292EventAccessQuery@12
293EventAccessRemove@4
294EventActivityIdControl@8
295EventEnabled@12
296EventProviderEnabled@20
297EventRegister@16
298EventSetInformation@20
299EventUnregister@8
300EventWrite@20
301EventWriteEndScenario@20
302EventWriteEx@40
303EventWriteStartScenario@20
304EventWriteString@24
305EventWriteTransfer@28
306FileEncryptionStatusA@8
307FileEncryptionStatusW@8
308FindFirstFreeAce@861FindFirstFreeAce@8
309FlushEfsCache@4
310FlushTraceA@16
311FlushTraceW@16
312FreeEncryptedFileKeyInfo@4
313FreeEncryptedFileMetadata@4
314FreeEncryptionCertificateHashList@4
315FreeInheritedFromArray@12
316FreeSid@462FreeSid@4
317GetAccessPermissionsForObjectA@36
318GetAccessPermissionsForObjectW@36
319GetAce@1263GetAce@12
320GetAclInformation@1664GetAclInformation@16
321GetAuditedPermissionsFromAclA@16
322GetAuditedPermissionsFromAclW@16
323GetCurrentHwProfileA@4
324GetCurrentHwProfileW@4
325GetDynamicTimeZoneInformationEffectiveYears@12
326GetEffectiveRightsFromAclA@12
327GetEffectiveRightsFromAclW@12
328GetEncryptedFileMetadata@12
329GetEventLogInformation@20
330GetExplicitEntriesFromAclA@12
331GetExplicitEntriesFromAclW@12
332GetFileSecurityA@2065GetFileSecurityA@20
333GetFileSecurityW@2066GetFileSecurityW@20
334GetInformationCodeAuthzLevelW@20
335GetInformationCodeAuthzPolicyW@24
336GetInheritanceSourceA@40
337GetInheritanceSourceW@40
338GetKernelObjectSecurity@2067GetKernelObjectSecurity@20
339GetLengthSid@468GetLengthSid@4
340GetLocalManagedApplicationData@12
341GetLocalManagedApplications@12
342GetManagedApplicationCategories@8
343GetManagedApplications@20
344GetMangledSiteSid@12
345GetMultipleTrusteeA@4
346GetMultipleTrusteeOperationA@4
347GetMultipleTrusteeOperationW@4
348GetMultipleTrusteeW@4
349GetNamedSecurityInfoA@32
350GetNamedSecurityInfoExA@36
351GetNamedSecurityInfoExW@36
352GetNamedSecurityInfoW@32
353GetNumberOfEventLogRecords@869GetNumberOfEventLogRecords@8
354GetOldestEventLogRecord@870GetOldestEventLogRecord@8
355GetOverlappedAccessResults@16
356GetPrivateObjectSecurity@2071GetPrivateObjectSecurity@20
357GetSecurityDescriptorControl@1272GetSecurityDescriptorControl@12
358GetSecurityDescriptorDacl@1673GetSecurityDescriptorDacl@16
359GetSecurityDescriptorGroup@1274GetSecurityDescriptorGroup@12
360GetSecurityDescriptorLength@475GetSecurityDescriptorLength@4
361GetSecurityDescriptorOwner@1276GetSecurityDescriptorOwner@12
362GetSecurityDescriptorRMControl@8
363GetSecurityDescriptorSacl@1677GetSecurityDescriptorSacl@16
364GetSecurityInfo@32
365GetSecurityInfoExA@36
366GetSecurityInfoExW@36
367GetServiceDisplayNameA@1678GetServiceDisplayNameA@16
368GetServiceDisplayNameW@1679GetServiceDisplayNameW@16
369GetServiceKeyNameA@1680GetServiceKeyNameA@16
...@@ -372,65 +83,20 @@ GetSidIdentifierAuthority@4...@@ -372,65 +83,20 @@ GetSidIdentifierAuthority@4
372GetSidLengthRequired@483GetSidLengthRequired@4
373GetSidSubAuthority@884GetSidSubAuthority@8
374GetSidSubAuthorityCount@485GetSidSubAuthorityCount@4
375GetStringConditionFromBinary@16
376GetSiteDirectoryA@12
377GetSiteDirectoryW@12
378GetSiteNameFromSid@8
379GetSiteSidFromToken@4
380GetSiteSidFromUrl@4
381GetThreadWaitChain@28
382GetTokenInformation@2086GetTokenInformation@20
383GetTraceEnableFlags@8
384GetTraceEnableLevel@8
385GetTraceLoggerHandle@4
386GetTrusteeFormA@4
387GetTrusteeFormW@4
388GetTrusteeNameA@4
389GetTrusteeNameW@4
390GetTrusteeTypeA@4
391GetTrusteeTypeW@4
392GetUserNameA@887GetUserNameA@8
393GetUserNameW@888GetUserNameW@8
394GetWindowsAccountDomainSid@12
395I_QueryTagInformation@12
396I_ScIsSecurityProcess@0
397I_ScPnPGetServiceName@12
398I_ScQueryServiceConfig@12
399I_ScSendPnPMessage@24
400I_ScSendTSMessage@16
401I_ScSetServiceBitsA@20
402I_ScSetServiceBitsW@20
403I_ScValidatePnPService@12
404IdentifyCodeAuthzLevelW@16
405ImpersonateAnonymousToken@4
406ImpersonateLoggedOnUser@4
407ImpersonateNamedPipeClient@489ImpersonateNamedPipeClient@4
408ImpersonateSelf@490ImpersonateSelf@4
409InitializeAcl@1291InitializeAcl@12
410InitializeSecurityDescriptor@892InitializeSecurityDescriptor@8
411InitializeSid@1293InitializeSid@12
412InitiateShutdownA@20
413InitiateShutdownW@20
414InitiateSystemShutdownA@2094InitiateSystemShutdownA@20
415InitiateSystemShutdownExA@24
416InitiateSystemShutdownExW@24
417InitiateSystemShutdownW@2095InitiateSystemShutdownW@20
418InstallApplication@4
419IsProcessRestricted@0
420IsTextUnicode@12
421IsTokenRestricted@4
422IsTokenUntrusted@4
423IsValidAcl@496IsValidAcl@4
424IsValidRelativeSecurityDescriptor@12
425IsValidSecurityDescriptor@497IsValidSecurityDescriptor@4
426IsValidSid@498IsValidSid@4
427IsWellKnownSid@8
428LockServiceDatabase@499LockServiceDatabase@4
429LogonUserA@24
430LogonUserExA@40
431LogonUserExExW@44
432LogonUserExW@40
433LogonUserW@24
434LookupAccountNameA@28100LookupAccountNameA@28
435LookupAccountNameW@28101LookupAccountNameW@28
436LookupAccountSidA@28102LookupAccountSidA@28
...@@ -441,115 +107,18 @@ LookupPrivilegeNameA@16...@@ -441,115 +107,18 @@ LookupPrivilegeNameA@16
441LookupPrivilegeNameW@16107LookupPrivilegeNameW@16
442LookupPrivilegeValueA@12108LookupPrivilegeValueA@12
443LookupPrivilegeValueW@12109LookupPrivilegeValueW@12
444LookupSecurityDescriptorPartsA@28
445LookupSecurityDescriptorPartsW@28
446LsaAddAccountRights@16
447LsaAddPrivilegesToAccount@8
448LsaClearAuditLog@4
449LsaClose@4
450LsaConfigureAutoLogonCredentials@0
451LsaCreateAccount@16
452LsaCreateSecret@16
453LsaCreateTrustedDomain@16
454LsaCreateTrustedDomainEx@20
455LsaDelete@4
456LsaDeleteTrustedDomain@8
457LsaDisableUserArso@4
458LsaEnableUserArso@4
459LsaEnumerateAccountRights@16
460LsaEnumerateAccounts@20
461LsaEnumerateAccountsWithUserRight@16
462LsaEnumeratePrivileges@20
463LsaEnumeratePrivilegesOfAccount@8
464LsaEnumerateTrustedDomains@20
465LsaEnumerateTrustedDomainsEx@20
466LsaFreeMemory@4
467LsaGetAppliedCAPIDs@12
468LsaGetDeviceRegistrationInfo@4
469LsaGetQuotasForAccount@8
470LsaGetRemoteUserName@12
471LsaGetSystemAccessAccount@8
472LsaGetUserName@8
473LsaICLookupNames@40
474LsaICLookupNamesWithCreds@48
475LsaICLookupSids@36
476LsaICLookupSidsWithCreds@48
477LsaInvokeTrustScanner@16
478LsaIsUserArsoAllowed@4
479LsaIsUserArsoEnabled@8
480LsaLookupNames2@24
481LsaLookupNames@20
482LsaLookupPrivilegeDisplayName@16
483LsaLookupPrivilegeName@12
484LsaLookupPrivilegeValue@12
485LsaLookupSids2@24
486LsaLookupSids@20
487LsaManageSidNameMapping@12
488LsaNtStatusToWinError@4
489LsaOpenAccount@16
490LsaOpenPolicy@16
491LsaOpenPolicySce@16
492LsaOpenSecret@16
493LsaOpenTrustedDomain@16
494LsaOpenTrustedDomainByName@16
495LsaProfileDeleted@4
496LsaQueryCAPs@16
497LsaQueryDomainInformationPolicy@12
498LsaQueryForestTrustInformation2@16
499LsaQueryForestTrustInformation@12
500LsaQueryInfoTrustedDomain@12
501LsaQueryInformationPolicy@12
502LsaQuerySecret@20
503LsaQuerySecurityObject@12
504LsaQueryTrustedDomainInfo@16
505LsaQueryTrustedDomainInfoByName@16
506LsaRemoveAccountRights@20
507LsaRemovePrivilegesFromAccount@12
508LsaRetrievePrivateData@12
509LsaSetCAPs@12
510LsaSetDomainInformationPolicy@12
511LsaSetForestTrustInformation2@24
512LsaSetForestTrustInformation@20
513LsaSetInformationPolicy@12
514LsaSetInformationTrustedDomain@12
515LsaSetQuotasForAccount@8
516LsaSetSecret@12
517LsaSetSecurityObject@12
518LsaSetSystemAccessAccount@8
519LsaSetTrustedDomainInfoByName@16
520LsaSetTrustedDomainInformation@16
521LsaStorePrivateData@12
522LsaValidateProcUniqueLuid@4
523MD4Final@4
524MD4Init@4
525MD4Update@12
526MD5Final@4
527MD5Init@4
528MD5Update@12
529MSChapSrvChangePassword2@28
530MSChapSrvChangePassword@28
531MakeAbsoluteSD2@8
532MakeAbsoluteSD@44110MakeAbsoluteSD@44
533MakeSelfRelativeSD@12111MakeSelfRelativeSD@12
534MapGenericMask@8112MapGenericMask@8
535NotifyBootConfigStatus@4113NotifyBootConfigStatus@4
536NotifyChangeEventLog@8
537NotifyServiceStatusChange@12
538NotifyServiceStatusChangeA@12
539NotifyServiceStatusChangeW@12
540NpGetUserName@12
541ObjectCloseAuditAlarmA@12114ObjectCloseAuditAlarmA@12
542ObjectCloseAuditAlarmW@12115ObjectCloseAuditAlarmW@12
543ObjectDeleteAuditAlarmA@12
544ObjectDeleteAuditAlarmW@12
545ObjectOpenAuditAlarmA@48116ObjectOpenAuditAlarmA@48
546ObjectOpenAuditAlarmW@48117ObjectOpenAuditAlarmW@48
547ObjectPrivilegeAuditAlarmA@24118ObjectPrivilegeAuditAlarmA@24
548ObjectPrivilegeAuditAlarmW@24119ObjectPrivilegeAuditAlarmW@24
549OpenBackupEventLogA@8120OpenBackupEventLogA@8
550OpenBackupEventLogW@8121OpenBackupEventLogW@8
551OpenEncryptedFileRawA@12
552OpenEncryptedFileRawW@12
553OpenEventLogA@8122OpenEventLogA@8
554OpenEventLogW@8123OpenEventLogW@8
555OpenProcessToken@12124OpenProcessToken@12
...@@ -558,97 +127,28 @@ OpenSCManagerW@12...@@ -558,97 +127,28 @@ OpenSCManagerW@12
558OpenServiceA@12127OpenServiceA@12
559OpenServiceW@12128OpenServiceW@12
560OpenThreadToken@16129OpenThreadToken@16
561OpenThreadWaitChainSession@8
562OpenTraceA@4
563OpenTraceW@4
564OperationEnd@4
565OperationStart@4
566PerfAddCounters@12
567PerfCloseQueryHandle@4
568PerfCreateInstance@16
569PerfDecrementULongCounterValue@16
570PerfDecrementULongLongCounterValue@20
571PerfDeleteCounters@12
572PerfDeleteInstance@8
573PerfEnumerateCounterSet@16
574PerfEnumerateCounterSetInstances@20
575PerfIncrementULongCounterValue@16
576PerfIncrementULongLongCounterValue@20
577PerfOpenQueryHandle@8
578PerfQueryCounterData@16
579PerfQueryCounterInfo@16
580PerfQueryCounterSetRegistrationInfo@28
581PerfQueryInstance@16
582PerfRegCloseKey@4
583PerfRegEnumKey@24
584PerfRegEnumValue@32
585PerfRegQueryInfoKey@44
586PerfRegQueryValue@28
587PerfRegSetValue@24
588PerfSetCounterRefValue@16
589PerfSetCounterSetInfo@12
590PerfSetULongCounterValue@16
591PerfSetULongLongCounterValue@20
592PerfStartProvider@12
593PerfStartProviderEx@12
594PerfStopProvider@4
595PrivilegeCheck@12130PrivilegeCheck@12
596PrivilegedServiceAuditAlarmA@20131PrivilegedServiceAuditAlarmA@20
597PrivilegedServiceAuditAlarmW@20132PrivilegedServiceAuditAlarmW@20
598ProcessIdleTasks@0
599ProcessIdleTasksW@16
600ProcessTrace@16
601QueryAllTracesA@12
602QueryAllTracesW@12
603QueryRecoveryAgentsOnEncryptedFile@8
604QuerySecurityAccessMask@8
605QueryServiceConfig2A@20
606QueryServiceConfig2W@20
607QueryServiceConfigA@16133QueryServiceConfigA@16
608QueryServiceConfigW@16134QueryServiceConfigW@16
609QueryServiceDynamicInformation@12
610QueryServiceLockStatusA@16135QueryServiceLockStatusA@16
611QueryServiceLockStatusW@16136QueryServiceLockStatusW@16
612QueryServiceObjectSecurity@20137QueryServiceObjectSecurity@20
613QueryServiceStatus@8138QueryServiceStatus@8
614QueryServiceStatusEx@20
615QueryTraceA@16
616QueryTraceProcessingHandle@32
617QueryTraceW@16
618QueryUsersOnEncryptedFile@8
619QueryWindows31FilesMigration@4
620ReadEncryptedFileRaw@12
621ReadEventLogA@28139ReadEventLogA@28
622ReadEventLogW@28140ReadEventLogW@28
623RegCloseKey@4141RegCloseKey@4
624RegConnectRegistryA@12142RegConnectRegistryA@12
625RegConnectRegistryExA@16
626RegConnectRegistryExW@16
627RegConnectRegistryW@12143RegConnectRegistryW@12
628RegCopyTreeA@12
629RegCopyTreeW@12
630RegCreateKeyA@12144RegCreateKeyA@12
631RegCreateKeyExA@36145RegCreateKeyExA@36
632RegCreateKeyExW@36146RegCreateKeyExW@36
633RegCreateKeyTransactedA@44
634RegCreateKeyTransactedW@44
635RegCreateKeyW@12147RegCreateKeyW@12
636RegDeleteKeyA@8148RegDeleteKeyA@8
637RegDeleteKeyW@8149RegDeleteKeyW@8
638RegDeleteKeyExA@16
639RegDeleteKeyExW@16
640RegDeleteKeyTransactedA@24
641RegDeleteKeyTransactedW@24
642RegDeleteKeyValueA@12
643RegDeleteKeyValueW@12
644RegDeleteTreeA@8
645RegDeleteTreeW@8
646RegDeleteValueA@8150RegDeleteValueA@8
647RegDeleteValueW@8151RegDeleteValueW@8
648RegDisablePredefinedCache@0
649RegDisablePredefinedCacheEx@0
650RegDisableReflectionKey@4
651RegEnableReflectionKey@4
652RegEnumKeyA@16152RegEnumKeyA@16
653RegEnumKeyExA@32153RegEnumKeyExA@32
654RegEnumKeyExW@32154RegEnumKeyExW@32
...@@ -657,45 +157,26 @@ RegEnumValueA@32...@@ -657,45 +157,26 @@ RegEnumValueA@32
657RegEnumValueW@32157RegEnumValueW@32
658RegFlushKey@4158RegFlushKey@4
659RegGetKeySecurity@16159RegGetKeySecurity@16
660RegGetValueA@28
661RegGetValueW@28
662RegLoadAppKeyA@20
663RegLoadAppKeyW@20
664RegLoadKeyA@12160RegLoadKeyA@12
665RegLoadKeyW@12161RegLoadKeyW@12
666RegLoadMUIStringA@28
667RegLoadMUIStringW@28
668RegNotifyChangeKeyValue@20162RegNotifyChangeKeyValue@20
669RegOpenCurrentUser@8
670RegOpenKeyA@12163RegOpenKeyA@12
671RegOpenKeyExA@20164RegOpenKeyExA@20
672RegOpenKeyExW@20165RegOpenKeyExW@20
673RegOpenKeyTransactedA@28
674RegOpenKeyTransactedW@28
675RegOpenKeyW@12166RegOpenKeyW@12
676RegOpenUserClassesRoot@16
677RegOverridePredefKey@8
678RegQueryInfoKeyA@48167RegQueryInfoKeyA@48
679RegQueryInfoKeyW@48168RegQueryInfoKeyW@48
680RegQueryMultipleValuesA@20
681RegQueryMultipleValuesW@20
682RegQueryReflectionKey@8
683RegQueryValueA@16169RegQueryValueA@16
684RegQueryValueExA@24170RegQueryValueExA@24
685RegQueryValueExW@24171RegQueryValueExW@24
686RegQueryValueW@16172RegQueryValueW@16
687RegRenameKey@12
688RegReplaceKeyA@16173RegReplaceKeyA@16
689RegReplaceKeyW@16174RegReplaceKeyW@16
690RegRestoreKeyA@12175RegRestoreKeyA@12
691RegRestoreKeyW@12176RegRestoreKeyW@12
692RegSaveKeyA@12177RegSaveKeyA@12
693RegSaveKeyExA@16
694RegSaveKeyExW@16
695RegSaveKeyW@12178RegSaveKeyW@12
696RegSetKeySecurity@12179RegSetKeySecurity@12
697RegSetKeyValueA@24
698RegSetKeyValueW@24
699RegSetValueA@20180RegSetValueA@20
700RegSetValueExA@24181RegSetValueExA@24
701RegSetValueExW@24182RegSetValueExW@24
...@@ -704,88 +185,92 @@ RegUnLoadKeyA@8...@@ -704,88 +185,92 @@ RegUnLoadKeyA@8
704RegUnLoadKeyW@8185RegUnLoadKeyW@8
705RegisterEventSourceA@8186RegisterEventSourceA@8
706RegisterEventSourceW@8187RegisterEventSourceW@8
707RegisterIdleTask@16
708RegisterServiceCtrlHandlerA@8188RegisterServiceCtrlHandlerA@8
709RegisterServiceCtrlHandlerExA@12
710RegisterServiceCtrlHandlerExW@12
711RegisterServiceCtrlHandlerW@8189RegisterServiceCtrlHandlerW@8
712RegisterTraceGuidsA@32
713RegisterTraceGuidsW@32
714RegisterWaitChainCOMCallback@8
715RemoteRegEnumKeyWrapper@20
716RemoteRegEnumValueWrapper@28
717RemoteRegQueryInfoKeyWrapper@40
718RemoteRegQueryMultipleValues2Wrapper@24
719RemoteRegQueryMultipleValuesWrapper@20
720RemoteRegQueryValueWrapper@24
721RemoveTraceCallback@4
722RemoveUsersFromEncryptedFile@8
723ReportEventA@36190ReportEventA@36
724ReportEventW@36191ReportEventW@36
725RevertToSelf@0192RevertToSelf@0
726SafeBaseRegGetKeySecurity@16
727SaferCloseLevel@4
728SaferComputeTokenFromLevel@20
729SaferCreateLevel@20
730SaferGetLevelInformation@20
731SaferGetPolicyInformation@24
732SaferIdentifyLevel@16
733SaferRecordEventLogEntry@12
734SaferSetLevelInformation@16
735SaferSetPolicyInformation@20
736SaferiChangeRegistryScope@8
737SaferiCompareTokenLevels@12
738SaferiIsDllAllowed@12
739SaferiIsExecutableFileType@8
740SaferiPopulateDefaultsInRegistry@8
741SaferiRecordEventLogEntry@12
742SaferiSearchMatchingHashRules@24
743SetAclInformation@16193SetAclInformation@16
744SetEncryptedFileMetadata@24
745SetEntriesInAccessListA@24
746SetEntriesInAccessListW@24
747SetEntriesInAclA@16
748SetEntriesInAclW@16
749SetEntriesInAuditListA@24
750SetEntriesInAuditListW@24
751SetFileSecurityA@12194SetFileSecurityA@12
752SetFileSecurityW@12195SetFileSecurityW@12
753SetInformationCodeAuthzLevelW@16
754SetInformationCodeAuthzPolicyW@20
755SetKernelObjectSecurity@12196SetKernelObjectSecurity@12
756SetNamedSecurityInfoA@28
757SetNamedSecurityInfoExA@36
758SetNamedSecurityInfoExW@36
759SetNamedSecurityInfoW@28
760SetPrivateObjectSecurity@20197SetPrivateObjectSecurity@20
761SetPrivateObjectSecurityEx@24
762SetSecurityAccessMask@8
763SetSecurityDescriptorControl@12
764SetSecurityDescriptorDacl@16198SetSecurityDescriptorDacl@16
765SetSecurityDescriptorGroup@12199SetSecurityDescriptorGroup@12
766SetSecurityDescriptorOwner@12200SetSecurityDescriptorOwner@12
767SetSecurityDescriptorRMControl@8
768SetSecurityDescriptorSacl@16201SetSecurityDescriptorSacl@16
769SetSecurityInfo@28
770SetSecurityInfoExA@36
771SetSecurityInfoExW@36
772SetServiceBits@16
773SetServiceObjectSecurity@12202SetServiceObjectSecurity@12
774SetServiceStatus@8203SetServiceStatus@8
775SetThreadToken@8
776SetTokenInformation@16204SetTokenInformation@16
777SetTraceCallback@8
778SetUserFileEncryptionKey@4
779SetUserFileEncryptionKeyEx@16
780StartServiceA@12205StartServiceA@12
781StartServiceCtrlDispatcherA@4206StartServiceCtrlDispatcherA@4
782StartServiceCtrlDispatcherW@4207StartServiceCtrlDispatcherW@4
783StartServiceW@12208StartServiceW@12
784StartTraceA@12209UnlockServiceDatabase@4
785StartTraceW@12210
786SynchronizeWindows31FilesAndWindowsNTRegistry@16211; This is list of symbols added in Win32s 1.20 and available in all Win9x and WinNT versions
787StopTraceA@16212SetThreadToken@8
788StopTraceW@16213
214; This is list of symbols added in Win32s 1.20 and available in all WinNT versions, but not in Win9x
215ElfBackupEventLogFileA@8 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
216ElfBackupEventLogFileW@8 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
217ElfChangeNotify@8 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
218ElfClearEventLogFileA@8 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
219ElfClearEventLogFileW@8 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
220ElfCloseEventLog@4 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
221ElfDeregisterEventSource@4 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
222ElfNumberOfRecords@8 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
223ElfOldestRecord@8 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
224ElfOpenBackupEventLogA@12 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
225ElfOpenBackupEventLogW@12 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
226ElfOpenEventLogA@12 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
227ElfOpenEventLogW@12 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
228ElfReadEventLogA@28 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
229ElfReadEventLogW@28 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
230ElfRegisterEventSourceA@12 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
231ElfRegisterEventSourceW@12 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
232ElfReportEventA@48 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
233ElfReportEventW@48 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
234I_ScSetServiceBitsA@20
235I_ScSetServiceBitsW@20
236LsaAddPrivilegesToAccount@8
237LsaClearAuditLog@4
238LsaClose@4
239LsaCreateAccount@16
240LsaCreateSecret@16
241LsaCreateTrustedDomain@16
242LsaDelete@4
243LsaEnumerateAccounts@20
244LsaEnumeratePrivileges@20
245LsaEnumeratePrivilegesOfAccount@8
246LsaEnumerateTrustedDomains@20
247LsaFreeMemory@4
248LsaGetQuotasForAccount@8
249LsaGetSystemAccessAccount@8
250LsaICLookupNames@40 ; Win32s has ABI "LsaICLookupNames@40", Windows NT 3.1-4.0 has ABI "LsaICLookupNames@28", Windows 2000 has ABI "LsaICLookupNames@32", Windows XP and new has ABI "LsaICLookupNames@40"
251LsaICLookupSids@36 ; Win32s has ABI "LsaICLookupSids@36", Windows NT 3.1-4.0 has ABI "LsaICLookupSids@28", Windows 2000 has ABI "LsaICLookupSids@32", Windows XP and new has ABI "LsaICLookupSids@36"
252LsaLookupNames@20
253LsaLookupPrivilegeDisplayName@16
254LsaLookupPrivilegeName@12
255LsaLookupPrivilegeValue@12
256LsaLookupSids@20
257LsaOpenAccount@16
258LsaOpenPolicy@16
259LsaOpenSecret@16
260LsaOpenTrustedDomain@16
261LsaQueryInfoTrustedDomain@12
262LsaQueryInformationPolicy@12
263LsaQuerySecret@20
264LsaQuerySecurityObject@12
265LsaRemovePrivilegesFromAccount@12
266LsaSetInformationPolicy@12
267LsaSetInformationTrustedDomain@12
268LsaSetQuotasForAccount@8
269LsaSetSecret@12
270LsaSetSecurityObject@12
271LsaSetSystemAccessAccount@8
272QueryWindows31FilesMigration@4 ; removed in Windows Server 2003
273SynchronizeWindows31FilesAndWindowsNTRegistry@16 ; removed in Windows Server 2003
789SystemFunction001@12274SystemFunction001@12
790SystemFunction002@12275SystemFunction002@12
791SystemFunction003@8276SystemFunction003@8
...@@ -817,61 +302,766 @@ SystemFunction028@8...@@ -817,61 +302,766 @@ SystemFunction028@8
817SystemFunction029@8302SystemFunction029@8
818SystemFunction030@8303SystemFunction030@8
819SystemFunction031@8304SystemFunction031@8
305
306; This is list of symbols added in Win32s 1.20, available in all Win9x versions and since Windows NT 3.5
307IsTextUnicode@12
308NotifyChangeEventLog@8
309SetServiceBits@16
310
311; This is list of symbols added in Win32s 1.20, available since Windows NT 3.5, but not available in Win9x
820SystemFunction032@8312SystemFunction032@8
821SystemFunction033@8313SystemFunction033@8
822SystemFunction034@12314
823SystemFunction035@4315; This is list of symbols added in Win32s 1.25, available in all Win9x versions and since Windows NT 3.51
824SystemFunction036@8316CreateProcessAsUserA@44
825SystemFunction040@12317CreateProcessAsUserW@44
826SystemFunction041@12318ImpersonateLoggedOnUser@4
827TraceEvent@12319LogonUserA@24
828TraceEventInstance@20320LogonUserW@24
829TraceMessage321
830TraceMessageVa@24322; This is list of symbols added in Win32s 1.25, available since Windows NT 3.51, but not available in Win9x
831TraceQueryInformation@24323LsaAddAccountRights@16
832TraceSetInformation@20324LsaDeleteTrustedDomain@8
833TreeResetNamedSecurityInfoA@44325LsaEnumerateAccountRights@16
834TreeResetNamedSecurityInfoW@44326LsaEnumerateAccountsWithUserRight@16
835TreeSetNamedSecurityInfoA@44327LsaQueryTrustedDomainInfo@16
836TreeSetNamedSecurityInfoW@44328LsaRemoveAccountRights@20
329LsaRetrievePrivateData@12
330LsaSetTrustedDomainInformation@16
331LsaStorePrivateData@12
332
333; This is list of symbols added in Win32s 1.30, available in all Win9x versions and since Windows NT 3.51
334RegQueryMultipleValuesA@20
335RegQueryMultipleValuesW@20
336
337; This is list of symbols added in Win32s 1.30, available since Windows NT 3.51, but not available in Win9x
338LsaNtStatusToWinError@4
339
340;; This is end of Win32s symbols ;;
341
342; This is list of symbols available in all Win9x versions, but not available in Win32s and WinNT
343; RegRemapPreDefKey@8
344
345; This is list of symbols added in Windows 95 OSR2 and also since Windows NT 4.0, but not available in Win32s
346CryptAcquireContextA@20
347CryptCreateHash@20
348CryptDecrypt@24
349CryptDeriveKey@20
350CryptDestroyHash@4
351CryptDestroyKey@4
352CryptEncrypt@28
353CryptExportKey@24
354CryptGenKey@16
355CryptGenRandom@12
356CryptGetHashParam@20
357CryptGetKeyParam@20
358CryptGetProvParam@20
359CryptGetUserKey@12
360CryptHashData@16
361CryptHashSessionKey@12
362CryptImportKey@24
363CryptReleaseContext@8
364CryptSetHashParam@16
365CryptSetKeyParam@16
366CryptSetProvParam@16
367CryptSetProviderA@8
368CryptSignHashA@24
369CryptVerifySignatureA@24
370
371; This is list of symbols added in Windows 98 and also since Windows NT 4.0, but not available in Win32s
372BuildExplicitAccessWithNameA@20
373BuildExplicitAccessWithNameW@20
374BuildImpersonateExplicitAccessWithNameA@24
375BuildImpersonateExplicitAccessWithNameW@24
376BuildImpersonateTrusteeA@8
377BuildImpersonateTrusteeW@8
378BuildSecurityDescriptorA@36
379BuildSecurityDescriptorW@36
380BuildTrusteeWithNameA@8
381BuildTrusteeWithNameW@8
382BuildTrusteeWithSidA@8
383BuildTrusteeWithSidW@8
384CryptAcquireContextW@20
385CryptSetProviderW@8
386CryptSignHashW@24
387CryptVerifySignatureW@24
388DuplicateTokenEx@24
389GetAuditedPermissionsFromAclA@16
390GetAuditedPermissionsFromAclW@16
391GetCurrentHwProfileA@4
392GetCurrentHwProfileW@4
393GetEffectiveRightsFromAclA@12
394GetEffectiveRightsFromAclW@12
395GetExplicitEntriesFromAclA@12
396GetExplicitEntriesFromAclW@12
397GetMultipleTrusteeA@4
398GetMultipleTrusteeOperationA@4
399GetMultipleTrusteeOperationW@4
400GetMultipleTrusteeW@4
401GetNamedSecurityInfoA@32
402GetNamedSecurityInfoW@32
403GetSecurityInfo@32
404GetTrusteeNameA@4
405GetTrusteeNameW@4
406GetTrusteeTypeA@4
407GetTrusteeTypeW@4
408LookupSecurityDescriptorPartsA@28
409LookupSecurityDescriptorPartsW@28
410ObjectDeleteAuditAlarmA@12
411ObjectDeleteAuditAlarmW@12
412SetEntriesInAclA@16
413SetEntriesInAclW@16
414SetNamedSecurityInfoA@28
415SetNamedSecurityInfoW@28
416SetSecurityInfo@28
417
418; This is list of symbols added in Windows 98 and also since Windows NT 4.0 SP4, but not available in Win32s
419CancelOverlappedAccess@4
420ConvertAccessToSecurityDescriptorA@20
421ConvertAccessToSecurityDescriptorW@20
422ConvertSecurityDescriptorToAccessA@28
423ConvertSecurityDescriptorToAccessNamedA@28
424ConvertSecurityDescriptorToAccessNamedW@28
425ConvertSecurityDescriptorToAccessW@28
426GetAccessPermissionsForObjectA@36
427GetAccessPermissionsForObjectW@36
428GetNamedSecurityInfoExA@36
429GetNamedSecurityInfoExW@36
430GetOverlappedAccessResults@16
431GetSecurityInfoExA@36
432GetSecurityInfoExW@36
433SetEntriesInAccessListA@24
434SetEntriesInAccessListW@24
435SetEntriesInAuditListA@24
436SetEntriesInAuditListW@24
437SetNamedSecurityInfoExA@36
438SetNamedSecurityInfoExW@36
439SetSecurityInfoExA@36
440SetSecurityInfoExW@36
837TrusteeAccessToObjectA@24441TrusteeAccessToObjectA@24
838TrusteeAccessToObjectW@24442TrusteeAccessToObjectW@24
839UninstallApplication@8443
840UnlockServiceDatabase@4444; This is list of symbols added in Windows 98 and also since Windows 2000, but not available in Win32s
841UnregisterIdleTask@12445CryptContextAddRef@12
842UnregisterTraceGuids@8446CryptDuplicateHash@16
843UpdateTraceA@16447CryptDuplicateKey@16
844UpdateTraceW@16448CryptEnumProviderTypesA@24
845UsePinForEncryptedFilesA@12449CryptEnumProviderTypesW@24
846UsePinForEncryptedFilesW@12450CryptEnumProvidersA@24
847WaitServiceState@16451CryptEnumProvidersW@24
848WmiCloseBlock@4452CryptGetDefaultProviderA@20
849WmiDevInstToInstanceNameA@16453CryptGetDefaultProviderW@20
850WmiDevInstToInstanceNameW@16454CryptSetProviderExA@16
851WmiEnumerateGuids@8455CryptSetProviderExW@16
852WmiExecuteMethodA@28456
853WmiExecuteMethodW@28457; This is list of symbols added in Windows ME, but not available in Win32s and WinNT
854WmiFileHandleToInstanceNameA@16458; CryptGetLocalKeyLimits@16
855WmiFileHandleToInstanceNameW@16459
856WmiFreeBuffer@4460;; This is end of Win9x symbols ;;
857WmiMofEnumerateResourcesA@12461
858WmiMofEnumerateResourcesW@12462; This is list of symbols (not mentioned in previous sections) added in Windows NT 4.0, but not available in Win32s and Win9x
859WmiNotificationRegistrationA@20463; BuildAccessRequestA@12 ; removed in Windows NT 4.0 SP4
860WmiNotificationRegistrationW@20464; BuildAccessRequestW@12 ; removed in Windows NT 4.0 SP4
861WmiOpenBlock@12465; DenyAccessRightsA@16 ; removed in Windows NT 4.0 SP4
862WmiQueryAllDataA@12466; DenyAccessRightsW@16 ; removed in Windows NT 4.0 SP4
863WmiQueryAllDataMultipleA@16467EnumServiceGroupW@36
864WmiQueryAllDataMultipleW@16468; GetAuditedPermissionsFromSDA@16 ; removed in Windows NT 4.0 SP4
865WmiQueryAllDataW@12469; GetAuditedPermissionsFromSDW@16 ; removed in Windows NT 4.0 SP4
866WmiQueryGuidInformation@8470; GetEffectiveAccessRightsA@16 ; removed in Windows NT 4.0 SP4
867WmiQuerySingleInstanceA@16471; GetEffectiveAccessRightsW@16 ; removed in Windows NT 4.0 SP4
868WmiQuerySingleInstanceMultipleA@20472; GetEffectiveRightsFromSDA@12 ; removed in Windows NT 4.0 SP4
869WmiQuerySingleInstanceMultipleW@20473; GetEffectiveRightsFromSDW@12 ; removed in Windows NT 4.0 SP4
870WmiQuerySingleInstanceW@16474; GetExplicitAccessRightsA@16 ; removed in Windows NT 4.0 SP4
871WmiReceiveNotificationsA@16475; GetExplicitAccessRightsW@16 ; removed in Windows NT 4.0 SP4
872WmiReceiveNotificationsW@16476; GrantAccessRightsA@16 ; removed in Windows NT 4.0 SP4
873WmiSetSingleInstanceA@20477; GrantAccessRightsW@16 ; removed in Windows NT 4.0 SP4
874WmiSetSingleInstanceW@20478I_ScGetCurrentGroupStateW@12
875WmiSetSingleItemA@24479; IsAccessPermittedA@20 ; removed in Windows NT 4.0 SP4
876WmiSetSingleItemW@24480; IsAccessPermittedW@20 ; removed in Windows NT 4.0 SP4
877WriteEncryptedFileRaw@12481LsaGetUserName@8
482; NTAccessMaskToProvAccessRights@12 ; removed in Windows NT 4.0 SP4
483; ProvAccessRightsToNTAccessMask@8 ; removed in Windows NT 4.0 SP4
484; ReplaceAllAccessRightsA@16 ; removed in Windows NT 4.0 SP4
485; ReplaceAllAccessRightsW@16 ; removed in Windows NT 4.0 SP4
486; RevokeExplicitAccessRightsA@16 ; removed in Windows NT 4.0 SP4
487; RevokeExplicitAccessRightsW@16 ; removed in Windows NT 4.0 SP4
488; SetAccessRightsA@16 ; removed in Windows NT 4.0 SP4
489; SetAccessRightsW@16 ; removed in Windows NT 4.0 SP4
490
491; This is list of symbols (not mentioned in previous sections) added in Windows NT 4.0 SP4, but not available in Win32s and Win9x
492EnumServicesStatusExA@40
493EnumServicesStatusExW@40
494LsaGetRemoteUserName@12
495QueryServiceStatusEx@20
496
497; This is list of symbols added in Windows 2000
498AccessCheckByType@44
499AccessCheckByTypeAndAuditAlarmA@64
500AccessCheckByTypeAndAuditAlarmW@64
501AccessCheckByTypeResultList@44
502AccessCheckByTypeResultListAndAuditAlarmA@64
503AccessCheckByTypeResultListAndAuditAlarmByHandleA@68
504AccessCheckByTypeResultListAndAuditAlarmByHandleW@68
505AccessCheckByTypeResultListAndAuditAlarmW@64
506AddAccessAllowedAceEx@20
507AddAccessAllowedObjectAce@28
508AddAccessDeniedAceEx@20
509AddAccessDeniedObjectAce@28
510AddAuditAccessAceEx@28
511AddAuditAccessObjectAce@36
512AddUsersToEncryptedFile@8
513BuildTrusteeWithObjectsAndNameA@24
514BuildTrusteeWithObjectsAndNameW@24
515BuildTrusteeWithObjectsAndSidA@20
516BuildTrusteeWithObjectsAndSidW@20
517ChangeServiceConfig2A@12
518ChangeServiceConfig2W@12
519CheckTokenMembership@12
520CloseEncryptedFileRaw@4
521CloseTrace@8
522CommandLineFromMsiDescriptor@12
523ControlTraceA@20
524ControlTraceW@20
525ConvertSDToStringSDRootDomainA@24
526ConvertSDToStringSDRootDomainW@24
527ConvertSecurityDescriptorToStringSecurityDescriptorA@20
528ConvertSecurityDescriptorToStringSecurityDescriptorW@20
529ConvertSidToStringSidA@8
530ConvertSidToStringSidW@8
531ConvertStringSDToSDRootDomainA@20
532ConvertStringSDToSDRootDomainW@20
533ConvertStringSecurityDescriptorToSecurityDescriptorA@16
534ConvertStringSecurityDescriptorToSecurityDescriptorW@16
535ConvertStringSidToSidA@8
536ConvertStringSidToSidW@8
537ConvertToAutoInheritPrivateObjectSecurity@24
538CreatePrivateObjectSecurityEx@32
539CreateProcessWithLogonW@44
540CreateRestrictedToken@36
541CreateTraceInstanceId@8
542DecryptFileA@8
543DecryptFileW@8
544DuplicateEncryptionInfoFile@20 ; Windows 2000 has ABI "DuplicateEncryptionInfoFile@8", Windows XP and new has ABI "DuplicateEncryptionInfoFile@20"
545EnableTrace@24
546EncryptFileA@4
547EncryptFileW@4
548EncryptionDisable@8
549FileEncryptionStatusA@8
550FileEncryptionStatusW@8
551FreeEncryptionCertificateHashList@4
552GetEventLogInformation@20
553GetLocalManagedApplications@12
554GetManagedApplications@20
555GetMangledSiteSid@12 ; removed in Windows XP
556GetSecurityDescriptorRMControl@8
557GetSiteDirectoryA@12 ; removed in Windows XP
558GetSiteDirectoryW@12 ; removed in Windows XP
559GetSiteNameFromSid@8 ; removed in Windows XP
560GetSiteSidFromToken@4 ; removed in Windows XP
561GetSiteSidFromUrl@4 ; removed in Windows XP
562GetTraceEnableFlags@8
563GetTraceEnableLevel@8
564GetTraceLoggerHandle@4
565GetTrusteeFormA@4
566GetTrusteeFormW@4
567I_ScIsSecurityProcess@0
568I_ScPnPGetServiceName@12
569ImpersonateAnonymousToken@4
570InitiateSystemShutdownExA@24
571InitiateSystemShutdownExW@24
572InstallApplication@4
573; IsInSandbox@0 ; removed in Windows XP
574IsProcessRestricted@0 ; removed in Windows XP
575IsTokenRestricted@4
576LsaCreateTrustedDomainEx@20
577LsaEnumerateTrustedDomainsEx@20
578LsaOpenTrustedDomainByName@16
579LsaQueryDomainInformationPolicy@12
580LsaQueryTrustedDomainInfoByName@16
581LsaSetDomainInformationPolicy@12
582LsaSetTrustedDomainInfoByName@16
583MakeAbsoluteSD2@8
584OpenEncryptedFileRawA@12
585OpenEncryptedFileRawW@12
586OpenTraceA@4
587OpenTraceW@4
588ProcessTrace@16
589QueryAllTracesA@12
590QueryAllTracesW@12
591QueryRecoveryAgentsOnEncryptedFile@8
592QueryServiceConfig2A@20
593QueryServiceConfig2W@20
594QueryUsersOnEncryptedFile@8
595ReadEncryptedFileRaw@12
596RegDisablePredefinedCache@0
597RegOpenCurrentUser@8
598RegOpenUserClassesRoot@16
599RegOverridePredefKey@8
600RegisterServiceCtrlHandlerExA@12
601RegisterServiceCtrlHandlerExW@12
602RegisterTraceGuidsA@32
603RegisterTraceGuidsW@32
604RemoveTraceCallback@4
605RemoveUsersFromEncryptedFile@8
606SetPrivateObjectSecurityEx@24
607SetSecurityDescriptorControl@12
608SetSecurityDescriptorRMControl@8
609SetTraceCallback@8
610SetUserFileEncryptionKey@4
611StartTraceA@12
612StartTraceW@12
613SystemFunction034@12
614SystemFunction035@4
615TraceEvent@12
616TraceEventInstance@20
617UninstallApplication@8 ; Windows 2000 has ABI "UninstallApplication@4", Windows XP and new has ABI "UninstallApplication@8"
618UnregisterTraceGuids@8
619WmiCloseBlock@4
620WmiDevInstToInstanceNameA@16
621WmiDevInstToInstanceNameW@16
622WmiEnumerateGuids@8
623WmiExecuteMethodA@28
624WmiExecuteMethodW@28
625WmiFileHandleToInstanceNameA@16
626WmiFileHandleToInstanceNameW@16
627WmiFreeBuffer@4
628WmiMofEnumerateResourcesA@12
629WmiMofEnumerateResourcesW@12
630WmiNotificationRegistrationA@20
631WmiNotificationRegistrationW@20
632WmiOpenBlock@12
633WmiQueryAllDataA@12
634WmiQueryAllDataW@12
635WmiQueryGuidInformation@8
636WmiQuerySingleInstanceA@16
637WmiQuerySingleInstanceW@16
638WmiSetSingleInstanceA@20
639WmiSetSingleInstanceW@20
640WmiSetSingleItemA@24
641WmiSetSingleItemW@24
642WriteEncryptedFileRaw@12
643
644; In Windows 2000 SP1 there was no new symbol
645
646; This is list of symbols added in Windows 2000 SP2
647EqualDomainSid@12
648
649; This is list of symbols added in Windows 2000 SP3
650CreateWellKnownSid@16
651GetWindowsAccountDomainSid@12
652IsWellKnownSid@8
653LsaOpenPolicySce@16
654SystemFunction040@12
655SystemFunction041@12
656
657; This is list of symbols added in Windows 2000 SP4 and Windows XP SP2 (not available in Windows XP and Windows XP SP1)
658; CreateProcessAsUserSecure@0 ; removed in Windows Server 2003
659ElfFlushEventLog@4 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
660
661; This is list of symbols added in Windows XP
662A_SHAFinal@8
663A_SHAInit@4
664A_SHAUpdate@12
665CloseCodeAuthzLevel@4
666ComputeAccessTokenFromCodeAuthzLevel@20
667ConvertStringSDToSDDomainA@24
668ConvertStringSDToSDDomainW@24
669CreateCodeAuthzLevel@20
670CreatePrivateObjectSecurityWithMultipleInheritance@36
671CredDeleteA@12
672CredDeleteW@12
673CredEnumerateA@16
674CredEnumerateW@16
675CredFree@4
676CredGetSessionTypes@8
677CredGetTargetInfoA@12
678CredGetTargetInfoW@12
679CredIsMarshaledCredentialA@4
680CredIsMarshaledCredentialW@4
681CredMarshalCredentialA@12
682CredMarshalCredentialW@12
683CredProfileLoaded@0
684CredReadA@16
685CredReadDomainCredentialsA@16
686CredReadDomainCredentialsW@16
687CredReadW@16
688CredRenameA@16
689CredRenameW@16
690CredUnmarshalCredentialA@12
691CredUnmarshalCredentialW@12
692CredWriteA@8
693CredWriteDomainCredentialsA@12
694CredWriteDomainCredentialsW@12
695CredWriteW@8
696CredpConvertCredential@16
697CredpConvertTargetInfo@16
698CredpDecodeCredential@4
699CredpEncodeCredential@4
700EncryptedFileKeyInfo@12
701EnumerateTraceGuids@12
702FlushTraceA@16
703FlushTraceW@16
704FreeEncryptedFileKeyInfo@4
705FreeInheritedFromArray@12
706GetInformationCodeAuthzLevelW@20
707GetInformationCodeAuthzPolicyW@24
708GetInheritanceSourceA@40
709GetInheritanceSourceW@40
710GetLocalManagedApplicationData@12
711GetManagedApplicationCategories@8
712I_ScSendTSMessage@16
713IdentifyCodeAuthzLevelW@16
714IsTokenUntrusted@4
715LogonUserExA@40
716LogonUserExW@40
717LsaICLookupNamesWithCreds@48
718LsaICLookupSidsWithCreds@48
719LsaLookupNames2@24
720LsaQueryForestTrustInformation@12
721LsaSetForestTrustInformation@20
722MD4Final@4
723MD4Init@4
724MD4Update@12
725MD5Final@4
726MD5Init@4
727MD5Update@12
728MSChapSrvChangePassword2@28
729MSChapSrvChangePassword@28
730ProcessIdleTasks@0
731QueryTraceA@16
732QueryTraceW@16
733RegSaveKeyExA@16
734RegSaveKeyExW@16
735RegisterIdleTask@16
736SaferCloseLevel@4
737SaferComputeTokenFromLevel@20
738SaferCreateLevel@20
739SaferGetLevelInformation@20
740SaferGetPolicyInformation@24
741SaferIdentifyLevel@16
742SaferRecordEventLogEntry@12
743SaferSetLevelInformation@16
744SaferSetPolicyInformation@20
745SaferiChangeRegistryScope@8
746SaferiCompareTokenLevels@12
747SaferiIsExecutableFileType@8
748SaferiPopulateDefaultsInRegistry@8
749SaferiRecordEventLogEntry@12
750; SaferiReplaceProcessThreadTokens@12 ; removed in Windows 7
751SaferiSearchMatchingHashRules@24
752SetInformationCodeAuthzLevelW@16
753SetInformationCodeAuthzPolicyW@20
754StopTraceA@16
755StopTraceW@16
756SystemFunction036@8
757TraceMessage ; cdecl
758TraceMessageVa@24
759TreeResetNamedSecurityInfoA@44
760TreeResetNamedSecurityInfoW@44
761UnregisterIdleTask@12
762UpdateTraceA@16
763UpdateTraceW@16
764; WdmWmiServiceMain@8 ; removed in Windows Vista
765; WmiGetFirstTraceOffset@4 ; removed in Windows Vista
766; WmiGetTraceHeader@12 ; removed in Windows Vista
767; WmiParseTraceEvent@20 ; removed in Windows Vista
768WmiQueryAllDataMultipleA@16
769WmiQueryAllDataMultipleW@16
770WmiQuerySingleInstanceMultipleA@20
771WmiQuerySingleInstanceMultipleW@20
772WmiReceiveNotificationsA@16
773WmiReceiveNotificationsW@16
774; Wow64Win32ApiEntry@12 ; removed in Windows 7
775
776; This is list of symbols added in Windows XP SP1
777; WmiCloseTraceWithCursor@4 ; removed in Windows Vista
778; WmiConvertTimestamp@12 ; removed in Windows Vista
779; WmiGetNextEvent@4 ; removed in Windows Vista
780; WmiOpenTraceWithCursor@4 ; removed in Windows Vista
781
782; In Windows XP SP2 there was no new symbol
783
784; This is list of symbols added in Windows XP SP3 and Windows Vista (not available in any version of Windows Server 2003)
785RegDisablePredefinedCacheEx@0
786
787; This is list of symbols added in Windows Server 2003
788CreateProcessWithTokenW@36
789
790; This is list of symbols added in Windows Server 2003 SP1 and Windows XP x64 SP1 (WoW64 version)
791ElfReportEventAndSourceW@60 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
792I_QueryTagInformation@12
793RegConnectRegistryExA@16
794RegConnectRegistryExW@16
795RegDeleteKeyExA@16
796RegDeleteKeyExW@16
797RegDisableReflectionKey@4
798RegEnableReflectionKey@4
799RegGetValueA@28
800RegGetValueW@28
801RegQueryReflectionKey@8
802
803; In Windows Server 2003 SP2 and Windows XP x64 SP2 (WoW64 version) there was no new symbol
804
805; This is list of symbols added in Windows Vista
806AddMandatoryAce@20
807AddUsersToEncryptedFileEx@16
808AuditComputeEffectivePolicyBySid@16
809AuditComputeEffectivePolicyByToken@16
810AuditEnumerateCategories@8
811AuditEnumeratePerUserPolicy@4
812AuditEnumerateSubCategories@16
813AuditFree@4
814AuditLookupCategoryGuidFromCategoryId@8
815AuditLookupCategoryIdFromCategoryGuid@8
816AuditLookupCategoryNameA@8
817AuditLookupCategoryNameW@8
818AuditLookupSubCategoryNameA@8
819AuditLookupSubCategoryNameW@8
820AuditQueryPerUserPolicy@16
821AuditQuerySecurity@8
822AuditQuerySystemPolicy@12
823AuditSetPerUserPolicy@12
824AuditSetSecurity@8
825AuditSetSystemPolicy@8
826; CheckAppInitBlockedServiceIdentity@4 ; removed in Windows 7
827CloseThreadWaitChainSession@4
828ControlServiceExA@16
829ControlServiceExW@16
830CredBackupCredentials@20
831CredEncryptAndMarshalBinaryBlob@12
832CredFindBestCredentialA@16
833CredFindBestCredentialW@16
834CredIsProtectedA@8
835CredIsProtectedW@8
836CredProfileUnloaded@0
837CredProtectA@24
838CredProtectW@24
839CredReadByTokenHandle@20
840CredRestoreCredentials@16
841CredUnprotectA@20
842CredUnprotectW@20
843CredpConvertOneCredentialSize@8
844CredpEncodeSecret@20
845EnableTraceEx@48
846EnumerateTraceGuidsEx@24
847EventAccessControl@20
848EventAccessQuery@12
849EventAccessRemove@4
850EventActivityIdControl@8
851EventEnabled@12
852EventProviderEnabled@20
853EventRegister@16
854EventUnregister@8
855EventWrite@20
856EventWriteEndScenario@20
857EventWriteStartScenario@20
858EventWriteString@24
859EventWriteTransfer@28
860FlushEfsCache@4
861FreeEncryptedFileMetadata@4
862GetEncryptedFileMetadata@12
863GetThreadWaitChain@28
864I_ScQueryServiceConfig@12
865I_ScSendPnPMessage@24
866I_ScValidatePnPService@12
867InitiateShutdownA@20
868InitiateShutdownW@20
869IsValidRelativeSecurityDescriptor@12
870LogonUserExExW@44
871LsaManageSidNameMapping@12
872NotifyServiceStatusChange@12
873NotifyServiceStatusChangeA@12
874NotifyServiceStatusChangeW@12
875OpenThreadWaitChainSession@8
876PerfAddCounters@12
877PerfCloseQueryHandle@4
878PerfCreateInstance@16
879PerfDecrementULongCounterValue@16
880PerfDecrementULongLongCounterValue@20
881PerfDeleteCounters@12
882PerfDeleteInstance@8
883PerfEnumerateCounterSet@16
884PerfEnumerateCounterSetInstances@20
885PerfIncrementULongCounterValue@16
886PerfIncrementULongLongCounterValue@20
887PerfOpenQueryHandle@8
888PerfQueryCounterData@16
889PerfQueryCounterInfo@16
890PerfQueryCounterSetRegistrationInfo@28
891PerfQueryInstance@16
892PerfSetCounterRefValue@16
893PerfSetCounterSetInfo@12
894PerfSetULongCounterValue@16
895PerfSetULongLongCounterValue@20
896PerfStartProvider@12
897PerfStartProviderEx@12
898PerfStopProvider@4
899ProcessIdleTasksW@16
900QuerySecurityAccessMask@8
901RegCopyTreeA@12
902RegCopyTreeW@12
903RegCreateKeyTransactedA@44
904RegCreateKeyTransactedW@44
905RegDeleteKeyTransactedA@24
906RegDeleteKeyTransactedW@24
907RegDeleteKeyValueA@12
908RegDeleteKeyValueW@12
909RegDeleteTreeA@8
910RegDeleteTreeW@8
911RegLoadAppKeyA@20
912RegLoadAppKeyW@20
913RegLoadMUIStringA@28
914RegLoadMUIStringW@28
915RegOpenKeyTransactedA@28
916RegOpenKeyTransactedW@28
917RegRenameKey@12
918RegSetKeyValueA@24
919RegSetKeyValueW@24
920RegisterWaitChainCOMCallback@8
921SetEncryptedFileMetadata@24
922SetSecurityAccessMask@8
923SetUserFileEncryptionKeyEx@16
924TreeSetNamedSecurityInfoA@44
925TreeSetNamedSecurityInfoW@44
926UsePinForEncryptedFilesA@12
927UsePinForEncryptedFilesW@12
928
929; In Windows Vista SP1 there was no new symbol
930
931; In Windows Vista SP2 there was no new symbol
932
933; This is list of symbols added in Windows 7
934AddConditionalAce@32
935AuditQueryGlobalSaclA@8
936AuditQueryGlobalSaclW@8
937AuditSetGlobalSaclA@8
938AuditSetGlobalSaclW@8
939EnableTraceEx2@44
940EventWriteEx@40
941SaferiIsDllAllowed@8 ; Windows 7 has ABI "SaferiIsDllAllowed@12", Windows 8 and new has ABI "SaferiIsDllAllowed@8"
942TraceSetInformation@20
943
944; This is list of ordinal-only symbols added in Windows 7
945; Symbol names are taken from:
946; https://www.geoffchappell.com/studies/windows/win32/advapi32/history/ords61.htm
947SaferiRegisterExtensionDll@8 @1000 NONAME
948
949; In Windows 7 SP1 there was no new symbol
950
951; This is list of symbols added in Windows 8
952BaseRegCloseKey@4
953BaseRegCreateKey@32
954BaseRegDeleteKeyEx@16
955BaseRegDeleteValue@8
956BaseRegFlushKey@4
957BaseRegGetVersion@8
958BaseRegLoadKey@12
959BaseRegOpenKey@20
960BaseRegRestoreKey@12
961BaseRegSaveKeyEx@16
962BaseRegSetKeySecurity@12
963BaseRegSetValue@20
964BaseRegUnLoadKey@8
965CheckForHiberboot@8
966ConvertSDToStringSDDomainW@28
967; CredProfileLoadedEx@4
968EnumDynamicTimeZoneInformation@8
969; EtwLogSysConfigExtension@8 ; removed in Windows 10 Anniversary Update (Redstone / 1607)
970EventSetInformation@20
971GetDynamicTimeZoneInformationEffectiveYears@12
972GetStringConditionFromBinary@16
973; I_ScRegisterPreshutdownRestart@8
974LsaGetAppliedCAPIDs@12
975LsaLookupSids2@24
976LsaQueryCAPs@16
977LsaSetCAPs@12
978; MIDL_user_free_Ext@4
979OperationEnd@4
980OperationStart@4
981PerfRegCloseKey@4
982PerfRegEnumKey@24
983PerfRegEnumValue@32
984PerfRegQueryInfoKey@44
985PerfRegQueryValue@28
986PerfRegSetValue@24
987; PsmActivateApplication@12 ; removed in Windows 8.1
988; PsmAdjustActivationToken@24 ; removed in Windows 8.1
989; PsmQueryBackgroundActivationType@8 ; removed in Windows 8.1
990; PsmRegisterApplicationProcess@8 ; removed in Windows 8.1
991QueryServiceDynamicInformation@12
992RemoteRegEnumKeyWrapper@20
993RemoteRegEnumValueWrapper@28
994RemoteRegQueryInfoKeyWrapper@40
995RemoteRegQueryValueWrapper@24
996SafeBaseRegGetKeySecurity@16
997TraceQueryInformation@24
998WaitServiceState@16
999
1000; In Windows 8.1 there was no new symbol
1001
1002; This is list of symbols added in Windows 10 (Threshold / 1507)
1003NpGetUserName@12
1004
1005; This is list of symbols added in Windows 10 November Update (Threshold 2 / 1511)
1006; I_ScReparseServiceDatabase@4
1007; QueryLocalUserServiceName@12
1008; QueryUserServiceName@20
1009
1010; This is list of symbols added in Windows 10 Anniversary Update (Redstone / 1607)
1011CveEventWrite@8
1012
1013; This is list of symbols added in Windows 10 Creators Update (Redstone 2 / 1703)
1014; QueryUserServiceNameForContext@20
1015
1016; This is list of symbols added in Windows 10 Fall Creators Update (Redstone 3 / 1709)
1017; CreateServiceEx@56
1018QueryTraceProcessingHandle@32
1019RemoteRegQueryMultipleValues2Wrapper@24
1020RemoteRegQueryMultipleValuesWrapper@20
1021
1022; In Windows 10 April 2018 Update (Redstone 4 / 1803) there was no new symbol
1023
1024; In Windows 10 October 2018 Update (Redstone 5 / 1809) there was no new symbl
1025
1026; In Windows 10 May 2019 Update (19H1 / 1903) there was no new symbol
1027
1028; In Windows 10 November 2019 Update (19H2 /1909) there was no new symbol
1029
1030; In Windows 10 May 2020 Update (20H1 / 2004) there was no new symbol
1031
1032; In Windows 10 October 2020 Update (20H2) there was no new symbol
1033
1034; In Windows 10 May 2021 Update (21H1) there was no new symbol
1035
1036; In Windows 10 November 2021 Update (21H2) there was no new symbol
1037
1038; This is list of symbols added in Windows 10 2022 Update (22H2) and Windows 11 2022 Update (Sun Valley 2 / 22H2) (WoW64 version) (not available in Windows 11 (Sun Valley / 21H2))
1039LsaInvokeTrustScanner@16
1040LsaQueryForestTrustInformation2@16
1041LsaSetForestTrustInformation2@24
1042
1043; This is list of symbols added in Windows 11 (Sun Valley / 21H2) (WoW64 version)
1044LsaConfigureAutoLogonCredentials@0
1045; LsaDisablePasswordLessCurrentUser@0 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
1046LsaDisableUserArso@4
1047; LsaEnablePasswordLessCurrentUser@0 ; removed in Windows 11 2022 Update (Sun Valley 2 / 22H2)
1048LsaEnableUserArso@4
1049LsaGetDeviceRegistrationInfo@4
1050LsaIsUserArsoAllowed@4
1051LsaIsUserArsoEnabled@8
1052LsaProfileDeleted@4
1053LsaValidateProcUniqueLuid@4
1054
1055; In Windows 11 2022 Update (Sun Valley 2 / 22H2) (WoW64 version) there was no new symbol
1056
1057; In Windows 11 2023 Update (Sun Valley 3 / 23H2) (WoW64 version) there was no new symbol
1058
1059; This is list of symbols added in Windows 11 2024 Update (Hudson Valley / 24H2) (WoW64 version)
1060; LsaIOpenPolicyWithCreds@24 ; removed in Windows 11 2025 Update (Hudson Valley 2 / 25H2)
1061
1062; This is list of symbols added in Windows 11 2025 Update (Hudson Valley 2 / 25H2) (WoW64 version)
1063; LogonSecondaryUserIntoSessionW@20
1064; LsaPurgeLocalSystemAccessTable@0
1065LsaQueryLocalSystemAccess@8
1066LsaQueryLocalSystemAccessAll@4
1067LsaSetLocalSystemAccess@4
lib/libc/mingw/lib32/kernel32.def+1768-1234
...@@ -1,391 +1,100 @@...@@ -1,391 +1,100 @@
1;
2; Definition file of KERNEL32.dll
3; Automatic generated by gendef
4; written by Kai Tietz 2008
5;
6LIBRARY "KERNEL32.dll"1LIBRARY "KERNEL32.dll"
7EXPORTS2EXPORTS
8BaseThreadInitThunk@43
9InterlockedPushListSList@84; This file is a comprehensive documentation for 32-bit x86 kernel32.dll symbols.
10AcquireSRWLockExclusive@45; It covers all 3 platforms Win32s, Win9x and WinNT and contains information
11AcquireSRWLockShared@46; from native kernel32.dll libraries on 32-bit Windows systems and also from
12ActivateActCtx@87; 32-bit WoW64 kernel32.dll libraries on 64-bit Windows systems. Symbols in this
13ActivateActCtxWorker@88; file are ordered by increasing Windows version in which they were introduced.
14ActivatePackageVirtualizationContext@89; For example symbols added in Windows 98 (which is version 4.10) are after
10; Windows NT 4.0 symbols. Note that some symbols are available in Windows NT 3.1,
11; missing in Windows 98 (4.10), but are again available in Windows 2000 (5.0).
12; This is always mentioned in the header of section which lists symbols.
13;
14; BEWARE that this file contains only information about symbol availability and
15; whether it is possible to load application or library which references symbol.
16; It does not contain information if the particular Windows version supports and
17; implements corresponding API function. Lot of -W functions are unimplemented
18; on Win32s and Win9x platforms and simply signals ERROR_CALL_NOT_IMPLEMENTED.
19
20; This is list of symbols available in all Windows versions (Win32s since Win32s 1.1; Win9x since Windows 95; WinNT since Windows NT 3.1)
15AddAtomA@421AddAtomA@4
16AddAtomW@422AddAtomW@4
17AddConsoleAliasA@12
18AddConsoleAliasW@12
19AddDllDirectory@4
20AddIntegrityLabelToBoundaryDescriptor@8
21AddLocalAlternateComputerNameA@8
22AddLocalAlternateComputerNameW@8
23AddRefActCtx@4
24AddRefActCtxWorker@4
25AddResourceAttributeAce@28
26AddSIDToBoundaryDescriptor@8
27AddScopedPolicyIDAce@20
28AddSecureMemoryCacheCallback@4
29AddVectoredContinueHandler@8
30AddVectoredExceptionHandler@8
31AdjustCalendarDate@12
32AllocConsole@023AllocConsole@0
33AllocConsoleWithOptions@8
34AllocateUserPhysicalPages@12
35AllocateUserPhysicalPagesNuma@16
36AppPolicyGetClrCompat@8
37AppPolicyGetCreateFileAccess@8
38AppPolicyGetLifecycleManagement@8
39AppPolicyGetMediaFoundationCodecLoading@8
40AppPolicyGetProcessTerminationMethod@8
41AppPolicyGetShowDeveloperDiagnostic@8
42AppPolicyGetThreadInitializationType@8
43AppPolicyGetWindowingModel@8
44AppXGetOSMaxVersionTested@8
45ApplicationRecoveryFinished@4
46ApplicationRecoveryInProgress@4
47AreFileApisANSI@0
48AreShortNamesEnabled@8
49AssignProcessToJobObject@8
50AttachConsole@4
51BackupRead@2824BackupRead@28
52BackupSeek@2425BackupSeek@24
53BackupWrite@2826BackupWrite@28
54BaseAttachCompleteThunk@0
55BaseCheckAppcompatCache@16
56BaseCheckAppcompatCacheEx@24
57BaseCheckAppcompatCacheExWorker@36
58BaseCheckAppcompatCacheWorker@16
59BaseCheckElevation@48
60BaseCheckRunApp@52
61BaseCleanupAppcompatCacheSupport@4
62BaseDllReadWriteIniFile@32
63BaseDumpAppcompatCache@0
64BaseDumpAppcompatCacheWorker@0
65BaseElevationPostProcessing@12
66BaseFlushAppcompatCache@0
67BaseFlushAppcompatCacheWorker@0
68BaseFormatObjectAttributes@16
69BaseFormatTimeOut@8
70BaseFreeAppCompatDataForProcessWorker@4
71BaseGenerateAppCompatData@24
72BaseGetNamedObjectDirectory@4
73BaseInitAppcompatCacheSupport@0
74BaseInitAppcompatCacheSupportWorker@0
75BaseIsAppcompatInfrastructureDisabled@0
76BaseIsAppcompatInfrastructureDisabledWorker@0
77BaseIsDosApplication@8
78BaseQueryModuleData@28
79BaseReadAppCompatDataForProcessWorker@12
80BaseSetLastNTError@4
81BaseUpdateAppcompatCache@12
82BaseUpdateAppcompatCacheWorker@12
83BaseUpdateVDMEntry@16
84BaseVerifyUnicodeString@4
85BaseWriteErrorElevationRequiredEvent@0
86Basep8BitStringToDynamicUnicodeString@8
87BasepAllocateActivationContextActivationBlock@16
88BasepAnsiStringToDynamicUnicodeString@8
89BasepAppContainerEnvironmentExtension@12
90BasepAppXExtension@24
91BasepCheckAppCompat@16
92BasepCheckBadapp@56
93BasepCheckWebBladeHashes@4
94BasepCheckWinSaferRestrictions@28
95BasepConstructSxsCreateProcessMessage@80
96BasepCopyEncryption@12
97BasepFreeActivationContextActivationBlock@4
98BasepFreeAppCompatData@12
99BasepGetAppCompatData@60
100BasepGetComputerNameFromNtPath@16
101BasepGetExeArchType@12
102BasepInitAppCompatData@12
103BasepIsProcessAllowed@4
104BasepMapModuleHandle@8
105BasepNotifyLoadStringResource@16
106BasepPostSuccessAppXExtension@8
107BasepProcessInvalidImage@84
108BasepQueryAppCompat@72
109BasepQueryModuleChpeSettings@40
110BasepReleaseAppXContext@4
111BasepReleaseSxsCreateProcessUtilityStruct@4
112BasepReportFault@8
113BasepSetFileEncryptionCompression@32
114Beep@827Beep@8
115BeginUpdateResourceA@828BeginUpdateResourceA@8
116BeginUpdateResourceW@829BeginUpdateResourceW@8
117BindIoCompletionCallback@12
118BuildCommDCBA@830BuildCommDCBA@8
119BuildCommDCBAndTimeoutsA@1231BuildCommDCBAndTimeoutsA@12
120BuildCommDCBAndTimeoutsW@1232BuildCommDCBAndTimeoutsW@12
121BuildCommDCBW@833BuildCommDCBW@8
122BuildIoRingCancelRequest@20
123BuildIoRingFlushFile@24
124BuildIoRingReadFile@44
125BuildIoRingReadFileScatter@40
126BuildIoRingRegisterBuffers@16
127BuildIoRingRegisterFileHandles@16
128BuildIoRingWriteFile@48
129BuildIoRingWriteFileGather@44
130CallNamedPipeA@2834CallNamedPipeA@28
131CallNamedPipeW@2835CallNamedPipeW@28
132CallbackMayRunLong@4
133CancelDeviceWakeupRequest@4
134CancelIo@4
135CancelIoEx@8
136CancelSynchronousIo@4
137CancelThreadpoolIo@4
138CancelTimerQueueTimer@8
139CancelWaitableTimer@4
140CeipIsOptedIn@0
141ChangeTimerQueueTimer@16
142CheckAllowDecryptedRemoteDestinationPolicy@0
143CheckElevation@20
144CheckElevationEnabled@4
145CheckForReadOnlyResource@8
146CheckForReadOnlyResourceFilter@4
147CheckNameLegalDOS8Dot3A@20
148CheckNameLegalDOS8Dot3W@20
149CheckRemoteDebuggerPresent@8
150CheckTokenCapability@12
151CheckTokenMembershipEx@16
152ClearCommBreak@436ClearCommBreak@4
153ClearCommError@1237ClearCommError@12
154CloseConsoleHandle@4
155CloseHandle@438CloseHandle@4
156CloseIoRing@4
157ClosePackageInfo@4
158ClosePrivateNamespace@8
159CloseProfileUserMapping@039CloseProfileUserMapping@0
160ClosePseudoConsole@4
161CloseState@4
162CloseThreadpool@4
163CloseThreadpoolCleanupGroup@4
164CloseThreadpoolCleanupGroupMembers@12
165CloseThreadpoolIo@4
166CloseThreadpoolTimer@4
167CloseThreadpoolWait@4
168CloseThreadpoolWork@4
169CmdBatNotification@4
170CommConfigDialogA@12
171CommConfigDialogW@12
172CompareCalendarDates@12
173CompareFileTime@840CompareFileTime@8
174CompareStringA@24
175CompareStringEx@36
176CompareStringOrdinal@20
177CompareStringW@2441CompareStringW@24
178ConnectNamedPipe@842ConnectNamedPipe@8
179ConsoleIMERoutine@4
180ConsoleMenuControl@12
181ContinueDebugEvent@1243ContinueDebugEvent@12
182ConvertCalDateTimeToSystemTime@8
183ConvertDefaultLocale@4
184ConvertFiberToThread@0
185ConvertNLSDayOfWeekToWin32DayOfWeek@4
186ConvertSystemTimeToCalDateTime@12
187ConvertThreadToFiber@4
188ConvertThreadToFiberEx@8
189ConvertToGlobalHandle@4
190CopyContext@12
191CopyFile2@12
192CopyFileA@1244CopyFileA@12
193CopyFileExA@24
194CopyFileExW@24
195CopyFileTransactedA@28
196CopyFileTransactedW@28
197CopyFileW@1245CopyFileW@12
198CopyLZFile@8
199CreateActCtxA@4
200CreateActCtxW@4
201CreateActCtxWWorker@4
202CreateBoundaryDescriptorA@8
203CreateBoundaryDescriptorW@8
204CreateConsoleScreenBuffer@2046CreateConsoleScreenBuffer@20
205CreateDirectoryA@847CreateDirectoryA@8
206CreateDirectoryExA@1248CreateDirectoryExA@12
207CreateDirectoryExW@1249CreateDirectoryExW@12
208CreateDirectoryTransactedA@16
209CreateDirectoryTransactedW@16
210CreateDirectoryW@850CreateDirectoryW@8
211CreateEnclave@32
212CreateEventA@1651CreateEventA@16
213CreateEventExA@16
214CreateEventExW@16
215CreateEventW@1652CreateEventW@16
216CreateFiber@12
217CreateFiberEx@20
218CreateFile2@20
219CreateFileA@2853CreateFileA@28
220CreateFileMappingA@2454CreateFileMappingA@24
221CreateFileMappingFromApp@24
222CreateFileMappingNumaA@28
223CreateFileMappingNumaW@28
224CreateFileMappingW@2455CreateFileMappingW@24
225CreateFileTransactedA@40
226CreateFileTransactedW@40
227CreateFileW@2856CreateFileW@28
228CreateHardLinkA@12
229CreateHardLinkTransactedA@16
230CreateHardLinkTransactedW@16
231CreateHardLinkW@12
232CreateIoCompletionPort@16
233CreateIoRing@24
234CreateJobObjectA@8
235CreateJobObjectW@8
236CreateJobSet@12
237CreateMailslotA@1657CreateMailslotA@16
238CreateMailslotW@1658CreateMailslotW@16
239CreateMemoryResourceNotification@4
240CreateMutexA@1259CreateMutexA@12
241CreateMutexExA@16
242CreateMutexExW@16
243CreateMutexW@1260CreateMutexW@12
244CreateNamedPipeA@3261CreateNamedPipeA@32
245CreateNamedPipeW@3262CreateNamedPipeW@32
246CreatePackageVirtualizationContext@8
247CreatePipe@1663CreatePipe@16
248CreatePrivateNamespaceA@12
249CreatePrivateNamespaceW@12
250CreateProcessA@4064CreateProcessA@40
251; MSDN says these are exported from ADVAPI32.DLL.
252; CreateProcessAsUserA@44
253; CreateProcessAsUserW@44
254CreateProcessInternalA@48
255CreateProcessInternalW@48
256CreateProcessW@4065CreateProcessW@40
257CreatePseudoConsole@20
258CreateRemoteThread@2866CreateRemoteThread@28
259CreateRemoteThreadEx@32
260CreateSemaphoreA@1667CreateSemaphoreA@16
261CreateSemaphoreExA@24
262CreateSemaphoreExW@24
263CreateSemaphoreW@1668CreateSemaphoreW@16
264CreateSocketHandle@0
265CreateSymbolicLinkA@12
266CreateSymbolicLinkTransactedA@16
267CreateSymbolicLinkTransactedW@16
268CreateSymbolicLinkW@12
269CreateTapePartition@1669CreateTapePartition@16
270CreateThread@2470CreateThread@24
271CreateThreadpool@4
272CreateThreadpoolCleanupGroup@0
273CreateThreadpoolIo@16
274CreateThreadpoolTimer@12
275CreateThreadpoolWait@12
276CreateThreadpoolWork@12
277CreateTimerQueue@0
278CreateTimerQueueTimer@28
279CreateToolhelp32Snapshot@8
280CreateVirtualBuffer@12
281CreateWaitableTimerA@12
282CreateWaitableTimerExA@16
283CreateWaitableTimerExW@16
284CreateWaitableTimerW@12
285CtrlRoutine@4
286DeactivateActCtx@8
287DeactivateActCtxWorker@8
288DeactivatePackageVirtualizationContext@4
289DebugActiveProcess@471DebugActiveProcess@4
290DebugActiveProcessStop@4
291DebugBreak@072DebugBreak@0
292DebugBreakProcess@4
293DebugSetProcessKillOnExit@4
294DecodePointer@4
295DecodeSystemPointer@4
296DefineDosDeviceA@1273DefineDosDeviceA@12
297DefineDosDeviceW@1274DefineDosDeviceW@12
298DelayLoadFailureHook@8
299DeleteAtom@475DeleteAtom@4
300DeleteBoundaryDescriptor@4
301DeleteCriticalSection@476DeleteCriticalSection@4
302DeleteFiber@4
303DeleteFileA@477DeleteFileA@4
304DeleteFileTransactedA@8
305DeleteFileTransactedW@8
306DeleteFileW@478DeleteFileW@4
307DeleteProcThreadAttributeList@4
308DeleteSynchronizationBarrier@4
309DeleteTimerQueue@4
310DeleteTimerQueueEx@8
311DeleteTimerQueueTimer@12
312DeleteVolumeMountPointA@4
313DeleteVolumeMountPointW@4
314DeviceIoControl@3279DeviceIoControl@32
315DisableThreadLibraryCalls@4
316DisableThreadProfiling@4
317DisassociateCurrentThreadFromCallback@4
318DiscardVirtualMemory@8
319DisconnectNamedPipe@480DisconnectNamedPipe@4
320DnsHostnameToComputerNameA@12
321DnsHostnameToComputerNameExW@12
322DnsHostnameToComputerNameW@12
323DosDateTimeToFileTime@1281DosDateTimeToFileTime@12
324DosPathToSessionPathA@12
325DosPathToSessionPathW@12
326DuplicateConsoleHandle@16
327DuplicateEncryptionInfoFileExt@20
328DuplicateHandle@2882DuplicateHandle@28
329DuplicatePackageVirtualizationContext@8
330EnableProcessOptionalXStateFeatures@8
331EnableThreadProfiling@20
332EncodePointer@4
333EncodeSystemPointer@4
334EndUpdateResourceA@883EndUpdateResourceA@8
335EndUpdateResourceW@884EndUpdateResourceW@8
336EnterCriticalSection@485EnterCriticalSection@4
337EnterSynchronizationBarrier@8
338EnumCalendarInfoA@16
339EnumCalendarInfoExA@16
340EnumCalendarInfoExEx@24
341EnumCalendarInfoExW@16
342EnumCalendarInfoW@16
343EnumDateFormatsA@12
344EnumDateFormatsExA@12
345EnumDateFormatsExEx@16
346EnumDateFormatsExW@12
347EnumDateFormatsW@12
348EnumLanguageGroupLocalesA@16
349EnumLanguageGroupLocalesW@16
350EnumResourceLanguagesA@2086EnumResourceLanguagesA@20
351EnumResourceLanguagesExA@28
352EnumResourceLanguagesExW@28
353EnumResourceLanguagesW@2087EnumResourceLanguagesW@20
354EnumResourceNamesA@1688EnumResourceNamesA@16
355EnumResourceNamesExA@24
356EnumResourceNamesExW@24
357EnumResourceNamesW@1689EnumResourceNamesW@16
358EnumResourceTypesA@1290EnumResourceTypesA@12
359EnumResourceTypesExA@20
360EnumResourceTypesExW@20
361EnumResourceTypesW@1291EnumResourceTypesW@12
362EnumSystemCodePagesA@8
363EnumSystemCodePagesW@8
364EnumSystemFirmwareTables@12
365EnumSystemGeoID@12
366EnumSystemGeoNames@12
367EnumSystemLanguageGroupsA@12
368EnumSystemLanguageGroupsW@12
369EnumSystemLocalesA@8
370EnumSystemLocalesEx@16
371EnumSystemLocalesW@8
372EnumTimeFormatsA@12
373EnumTimeFormatsEx@16
374EnumTimeFormatsW@12
375EnumUILanguagesA@12
376EnumUILanguagesW@12
377EnumerateLocalComputerNamesA@16
378EnumerateLocalComputerNamesW@16
379EraseTape@1292EraseTape@12
380EscapeCommFunction@893EscapeCommFunction@8
381ExitProcess@494ExitProcess@4
382ExitThread@495ExitThread@4
383ExitVDM@8
384ExpandEnvironmentStringsA@1296ExpandEnvironmentStringsA@12
385ExpandEnvironmentStringsW@1297ExpandEnvironmentStringsW@12
386ExpungeConsoleCommandHistoryA@4
387ExpungeConsoleCommandHistoryW@4
388ExtendVirtualBuffer@8
389FatalAppExitA@898FatalAppExitA@8
390FatalAppExitW@899FatalAppExitW@8
391FatalExit@4100FatalExit@4
...@@ -395,11 +104,6 @@ FileTimeToSystemTime@8...@@ -395,11 +104,6 @@ FileTimeToSystemTime@8
395FillConsoleOutputAttribute@20104FillConsoleOutputAttribute@20
396FillConsoleOutputCharacterA@20105FillConsoleOutputCharacterA@20
397FillConsoleOutputCharacterW@20106FillConsoleOutputCharacterW@20
398FindActCtxSectionGuid@20
399FindActCtxSectionGuidWorker@20
400FindActCtxSectionStringA@20
401FindActCtxSectionStringW@20
402FindActCtxSectionStringWWorker@20
403FindAtomA@4107FindAtomA@4
404FindAtomW@4108FindAtomW@4
405FindClose@4109FindClose@4
...@@ -407,96 +111,29 @@ FindCloseChangeNotification@4...@@ -407,96 +111,29 @@ FindCloseChangeNotification@4
407FindFirstChangeNotificationA@12111FindFirstChangeNotificationA@12
408FindFirstChangeNotificationW@12112FindFirstChangeNotificationW@12
409FindFirstFileA@8113FindFirstFileA@8
410FindFirstFileExA@24
411FindFirstFileExW@24
412FindFirstFileNameTransactedW@20
413FindFirstFileNameW@16
414FindFirstFileTransactedA@28
415FindFirstFileTransactedW@28
416FindFirstFileW@8114FindFirstFileW@8
417FindFirstStreamTransactedW@20
418FindFirstStreamW@16
419FindFirstVolumeA@8
420FindFirstVolumeMountPointA@12
421FindFirstVolumeMountPointW@12
422FindFirstVolumeW@8
423FindNLSString@28
424FindNLSStringEx@40
425FindNextChangeNotification@4115FindNextChangeNotification@4
426FindNextFileA@8116FindNextFileA@8
427FindNextFileNameW@12
428FindNextFileW@8117FindNextFileW@8
429FindNextStreamW@8
430FindNextVolumeA@12
431FindNextVolumeMountPointA@12
432FindNextVolumeMountPointW@12
433FindNextVolumeW@12
434FindPackagesByPackageFamily@28
435FindResourceA@12118FindResourceA@12
436FindResourceExA@16119FindResourceExA@16
437FindResourceExW@16120FindResourceExW@16
438FindResourceW@12121FindResourceW@12
439FindStringOrdinal@24
440FindVolumeClose@4
441FindVolumeMountPointClose@4
442FlsAlloc@4
443FlsFree@4
444FlsGetValue2@4
445FlsGetValue@4
446FlsSetValue@8
447FlushConsoleInputBuffer@4122FlushConsoleInputBuffer@4
448FlushFileBuffers@4123FlushFileBuffers@4
449FlushInstructionCache@12124FlushInstructionCache@12
450FlushProcessWriteBuffers@0
451FlushViewOfFile@8125FlushViewOfFile@8
452FoldStringA@20
453FoldStringW@20126FoldStringW@20
454FormatApplicationUserModelId@16
455FormatMessageA@28127FormatMessageA@28
456FormatMessageW@28128FormatMessageW@28
457FreeConsole@0129FreeConsole@0
458FreeEnvironmentStringsA@4
459FreeEnvironmentStringsW@4
460FreeLibrary@4130FreeLibrary@4
461FreeLibraryAndExitThread@8
462FreeLibraryWhenCallbackReturns@8
463FreeMemoryJobObject@4
464FreeResource@4131FreeResource@4
465FreeUserPhysicalPages@12
466FreeVirtualBuffer@4
467GenerateConsoleCtrlEvent@8132GenerateConsoleCtrlEvent@8
468GetACP@0133GetACP@0
469GetActiveProcessorCount@4
470GetActiveProcessorGroupCount@0
471GetAppContainerAce@16
472GetAppContainerNamedObjectPath@20
473GetApplicationRecoveryCallback@20
474GetApplicationRecoveryCallbackWorker@20
475GetApplicationRestartSettings@16
476GetApplicationRestartSettingsWorker@16
477GetApplicationUserModelId@12
478GetAtomNameA@12134GetAtomNameA@12
479GetAtomNameW@12135GetAtomNameW@12
480GetBinaryType@8
481GetBinaryTypeA@8
482GetBinaryTypeW@8
483GetCPFileNameFromRegistry@12
484GetCPInfo@8136GetCPInfo@8
485GetCPInfoExA@12
486GetCPInfoExW@12
487GetCachedSigningLevel@24
488GetCalendarDateFormat@24
489GetCalendarDateFormatEx@24
490GetCalendarDaysInMonth@16
491GetCalendarDifferenceInDays@12
492GetCalendarInfoA@24
493GetCalendarInfoEx@28
494GetCalendarInfoW@24
495GetCalendarMonthsInYear@12
496GetCalendarSupportedDateRange@12
497GetCalendarWeekNumber@16
498GetComPlusPackageInstallStatus@0
499GetCommConfig@12
500GetCommMask@8137GetCommMask@8
501GetCommModemStatus@8138GetCommModemStatus@8
502GetCommProperties@8139GetCommProperties@8
...@@ -504,295 +141,85 @@ GetCommState@8...@@ -504,295 +141,85 @@ GetCommState@8
504GetCommTimeouts@8141GetCommTimeouts@8
505GetCommandLineA@0142GetCommandLineA@0
506GetCommandLineW@0143GetCommandLineW@0
507GetCompressedFileSizeA@8
508GetCompressedFileSizeTransactedA@12
509GetCompressedFileSizeTransactedW@12
510GetCompressedFileSizeW@8
511GetComputerNameA@8144GetComputerNameA@8
512GetComputerNameExA@12
513GetComputerNameExW@12
514GetComputerNameW@8145GetComputerNameW@8
515GetConsoleAliasA@16
516GetConsoleAliasExesA@8
517GetConsoleAliasExesLengthA@0
518GetConsoleAliasExesLengthW@0
519GetConsoleAliasExesW@8
520GetConsoleAliasW@16
521GetConsoleAliasesA@12
522GetConsoleAliasesLengthA@4
523GetConsoleAliasesLengthW@4
524GetConsoleAliasesW@12
525GetConsoleCP@0146GetConsoleCP@0
526GetConsoleCharType@12
527GetConsoleCommandHistoryA@12
528GetConsoleCommandHistoryLengthA@4
529GetConsoleCommandHistoryLengthW@4
530GetConsoleCommandHistoryW@12
531GetConsoleCursorInfo@8147GetConsoleCursorInfo@8
532GetConsoleCursorMode@12
533GetConsoleDisplayMode@4
534GetConsoleFontInfo@16
535GetConsoleFontSize@8
536GetConsoleHardwareState@12
537GetConsoleHistoryInfo@4
538GetConsoleInputExeNameA@8
539GetConsoleInputExeNameW@8
540GetConsoleInputWaitHandle@0
541GetConsoleKeyboardLayoutNameA@4
542GetConsoleKeyboardLayoutNameW@4
543GetConsoleMode@8148GetConsoleMode@8
544GetConsoleNlsMode@8
545GetConsoleOriginalTitleA@8
546GetConsoleOriginalTitleW@8
547GetConsoleOutputCP@0149GetConsoleOutputCP@0
548GetConsoleProcessList@8
549GetConsoleScreenBufferInfo@8150GetConsoleScreenBufferInfo@8
550GetConsoleScreenBufferInfoEx@8
551GetConsoleSelectionInfo@4
552GetConsoleTitleA@8151GetConsoleTitleA@8
553GetConsoleTitleW@8152GetConsoleTitleW@8
554GetConsoleWindow@0
555GetCurrencyFormatA@24
556GetCurrencyFormatEx@24
557GetCurrencyFormatW@24
558GetCurrentActCtx@4
559GetCurrentActCtxWorker@4
560GetCurrentApplicationUserModelId@8
561GetCurrentConsoleFont@12
562GetCurrentConsoleFontEx@12
563GetCurrentDirectoryA@8153GetCurrentDirectoryA@8
564GetCurrentDirectoryW@8154GetCurrentDirectoryW@8
565GetCurrentPackageFamilyName@8
566GetCurrentPackageFullName@8
567GetCurrentPackageId@8
568GetCurrentPackageInfo@16
569GetCurrentPackagePath@8
570GetCurrentPackageVirtualizationContext@0
571GetCurrentProcess@0155GetCurrentProcess@0
572GetCurrentProcessId@0156GetCurrentProcessId@0
573GetCurrentProcessorNumber@0
574GetCurrentProcessorNumberEx@4
575GetCurrentThread@0157GetCurrentThread@0
576GetCurrentThreadId@0158GetCurrentThreadId@0
577GetCurrentThreadStackLimits@8
578GetDateFormatA@24
579GetDateFormatAWorker@28
580GetDateFormatEx@28
581GetDateFormatW@24159GetDateFormatW@24
582GetDateFormatWWorker@28
583GetDefaultCommConfigA@12
584GetDefaultCommConfigW@12
585GetDevicePowerState@8
586GetDiskFreeSpaceA@20160GetDiskFreeSpaceA@20
587GetDiskFreeSpaceExA@16
588GetDiskFreeSpaceExW@16
589GetDiskFreeSpaceW@20161GetDiskFreeSpaceW@20
590GetDiskSpaceInformationA@8
591GetDiskSpaceInformationW@8
592GetDllDirectoryA@8
593GetDllDirectoryW@8
594GetDriveTypeA@4162GetDriveTypeA@4
595GetDriveTypeW@4163GetDriveTypeW@4
596GetDurationFormat@32
597GetDurationFormatEx@32
598GetDynamicTimeZoneInformation@4
599GetEnabledXStateFeatures@0
600GetEncryptedFileVersionExt@8
601GetEnvironmentStrings@0164GetEnvironmentStrings@0
602GetEnvironmentStringsA@0
603GetEnvironmentStringsW@0
604GetEnvironmentVariableA@12165GetEnvironmentVariableA@12
605GetEnvironmentVariableW@12166GetEnvironmentVariableW@12
606GetEraNameCountedString@16
607GetErrorMode@0
608GetExitCodeProcess@8167GetExitCodeProcess@8
609GetExitCodeThread@8168GetExitCodeThread@8
610GetExpandedNameA@8
611GetExpandedNameW@8
612GetFileAttributesA@4169GetFileAttributesA@4
613GetFileAttributesExA@12
614GetFileAttributesExW@12
615GetFileAttributesTransactedA@16
616GetFileAttributesTransactedW@16
617GetFileAttributesW@4170GetFileAttributesW@4
618GetFileBandwidthReservation@24
619GetFileInformationByHandle@8171GetFileInformationByHandle@8
620GetFileInformationByHandleEx@16
621GetFileInformationByName@16
622GetFileMUIInfo@16
623GetFileMUIPath@28
624GetFileSize@8172GetFileSize@8
625GetFileSizeEx@8
626GetFileTime@16173GetFileTime@16
627GetFileType@4174GetFileType@4
628GetFinalPathNameByHandleA@16
629GetFinalPathNameByHandleW@16
630GetFirmwareEnvironmentVariableA@16
631GetFirmwareEnvironmentVariableExA@20
632GetFirmwareEnvironmentVariableExW@20
633GetFirmwareEnvironmentVariableW@16
634GetFirmwareType@4
635GetFullPathNameA@16175GetFullPathNameA@16
636GetFullPathNameTransactedA@20
637GetFullPathNameTransactedW@20
638GetFullPathNameW@16176GetFullPathNameW@16
639GetGeoInfoA@20
640GetGeoInfoEx@16
641GetGeoInfoW@20
642GetHandleContext@4
643GetHandleInformation@8
644GetIoRingInfo@8
645GetLargePageMinimum@0
646GetLargestConsoleWindowSize@4177GetLargestConsoleWindowSize@4
647GetLastError@0178GetLastError@0
648GetLocalTime@4179GetLocalTime@4
649GetLocaleInfoA@16
650GetLocaleInfoEx@16
651GetLocaleInfoW@16180GetLocaleInfoW@16
652GetLogicalDriveStringsA@8181GetLogicalDriveStringsA@8
653GetLogicalDriveStringsW@8182GetLogicalDriveStringsW@8
654GetLogicalDrives@0183GetLogicalDrives@0
655GetLogicalProcessorInformation@8
656GetLogicalProcessorInformationEx@12
657GetLongPathNameA@12
658GetLongPathNameTransactedA@16
659GetLongPathNameTransactedW@16
660GetLongPathNameW@12
661GetMachineTypeAttributes@8
662GetMailslotInfo@20184GetMailslotInfo@20
663GetMaximumProcessorCount@4
664GetMaximumProcessorGroupCount@0
665GetMemoryErrorHandlingCapabilities@4
666GetModuleFileNameA@12185GetModuleFileNameA@12
667GetModuleFileNameW@12186GetModuleFileNameW@12
668GetModuleHandleA@4187GetModuleHandleA@4
669GetModuleHandleExA@12
670GetModuleHandleExW@12
671GetModuleHandleW@4188GetModuleHandleW@4
672GetNLSVersion@12
673GetNLSVersionEx@12
674GetNamedPipeAttribute@20
675GetNamedPipeClientComputerNameA@12
676GetNamedPipeClientComputerNameW@12
677GetNamedPipeClientProcessId@8
678GetNamedPipeClientSessionId@8
679GetNamedPipeHandleStateA@28189GetNamedPipeHandleStateA@28
680GetNamedPipeHandleStateW@28190GetNamedPipeHandleStateW@28
681GetNamedPipeInfo@20191GetNamedPipeInfo@20
682GetNamedPipeServerProcessId@8
683GetNamedPipeServerSessionId@8
684GetNativeSystemInfo@4
685GetNextVDMCommand@4
686GetNumaAvailableMemoryNode@8
687GetNumaAvailableMemoryNodeEx@8
688GetNumaHighestNodeNumber@4
689GetNumaNodeNumberFromHandle@8
690GetNumaNodeProcessorMask2@16
691GetNumaNodeProcessorMask@8
692GetNumaNodeProcessorMaskEx@8
693GetNumaProcessorNode@8
694GetNumaProcessorNodeEx@8
695GetNumaProximityNode@8
696GetNumaProximityNodeEx@8
697GetNumberFormatA@24
698GetNumberFormatEx@24
699GetNumberFormatW@24
700GetNumberOfConsoleFonts@0
701GetNumberOfConsoleInputEvents@8192GetNumberOfConsoleInputEvents@8
702GetNumberOfConsoleMouseButtons@4193GetNumberOfConsoleMouseButtons@4
703GetOEMCP@0194GetOEMCP@0
704GetOverlappedResult@16195GetOverlappedResult@16
705GetOverlappedResultEx@20
706GetPackageApplicationIds@16
707GetPackageFamilyName@12
708GetPackageFullName@12
709GetPackageId@12
710GetPackageInfo@20
711GetPackagePath@16
712GetPackagePathByFullName@12
713GetPackagesByPackageFamily@20
714GetPhysicallyInstalledSystemMemory@4
715GetPriorityClass@4196GetPriorityClass@4
716GetPrivateProfileIntA@16197GetPrivateProfileIntA@16
717GetPrivateProfileIntW@16198GetPrivateProfileIntW@16
718GetPrivateProfileSectionA@16199GetPrivateProfileSectionA@16
719GetPrivateProfileSectionNamesA@12
720GetPrivateProfileSectionNamesW@12
721GetPrivateProfileSectionW@16200GetPrivateProfileSectionW@16
722GetPrivateProfileStringA@24201GetPrivateProfileStringA@24
723GetPrivateProfileStringW@24202GetPrivateProfileStringW@24
724GetPrivateProfileStructA@20
725GetPrivateProfileStructW@20
726GetProcAddress@8203GetProcAddress@8
727GetProcessAffinityMask@12
728GetProcessDEPPolicy@12
729GetProcessDefaultCpuSetMasks@16
730GetProcessDefaultCpuSets@16
731GetProcessGroupAffinity@12
732GetProcessHandleCount@8
733GetProcessHeap@0204GetProcessHeap@0
734GetProcessHeaps@8
735GetProcessId@4
736GetProcessIdOfThread@4
737GetProcessInformation@16
738GetProcessIoCounters@8
739GetProcessMitigationPolicy@16
740GetProcessPreferredUILanguages@16
741GetProcessPriorityBoost@8
742GetProcessShutdownParameters@8205GetProcessShutdownParameters@8
743GetProcessTimes@20206GetProcessTimes@20
744GetProcessUserModeExceptionPolicy@4
745GetProcessVersion@4
746GetProcessWorkingSetSize@12
747GetProcessWorkingSetSizeEx@16
748GetProcessesInVirtualizationContext@12
749GetProcessorSystemCycleTime@12
750GetProductInfo@20
751GetProductName@8
752GetProfileIntA@12207GetProfileIntA@12
753GetProfileIntW@12208GetProfileIntW@12
754GetProfileSectionA@12209GetProfileSectionA@12
755GetProfileSectionW@12210GetProfileSectionW@12
756GetProfileStringA@20211GetProfileStringA@20
757GetProfileStringW@20212GetProfileStringW@20
758GetQueuedCompletionStatus@20
759GetQueuedCompletionStatusEx@24
760GetShortPathNameA@12
761GetShortPathNameW@12
762GetStagedPackagePathByFullName@12
763GetStartupInfoA@4213GetStartupInfoA@4
764GetStartupInfoW@4214GetStartupInfoW@4
765GetStateFolder@16
766GetStdHandle@4215GetStdHandle@4
767GetStringScripts@20
768GetStringTypeA@20
769GetStringTypeExA@20
770GetStringTypeExW@20
771GetStringTypeW@16216GetStringTypeW@16
772GetSystemAppDataKey@16
773GetSystemCpuSetInformation@20
774GetSystemDEPPolicy@0
775GetSystemDefaultLCID@0217GetSystemDefaultLCID@0
776GetSystemDefaultLangID@0218GetSystemDefaultLangID@0
777GetSystemDefaultLocaleName@8
778GetSystemDefaultUILanguage@0
779GetSystemDirectoryA@8219GetSystemDirectoryA@8
780GetSystemDirectoryW@8220GetSystemDirectoryW@8
781GetSystemFileCacheSize@12
782GetSystemFirmwareTable@16
783GetSystemInfo@4221GetSystemInfo@4
784GetSystemPowerStatus@4
785GetSystemPreferredUILanguages@16
786GetSystemRegistryQuota@8
787GetSystemTime@4222GetSystemTime@4
788GetSystemTimeAdjustment@12
789GetSystemTimeAsFileTime@4
790GetSystemTimePreciseAsFileTime@4
791GetSystemTimes@12
792GetSystemWindowsDirectoryA@8
793GetSystemWindowsDirectoryW@8
794GetSystemWow64DirectoryA@8
795GetSystemWow64DirectoryW@8
796GetTapeParameters@16223GetTapeParameters@16
797GetTapePosition@20224GetTapePosition@20
798GetTapeStatus@4225GetTapeStatus@4
...@@ -800,63 +227,22 @@ GetTempFileNameA@16...@@ -800,63 +227,22 @@ GetTempFileNameA@16
800GetTempFileNameW@16227GetTempFileNameW@16
801GetTempPathA@8228GetTempPathA@8
802GetTempPathW@8229GetTempPathW@8
803GetTempPath2A@8230GetTickCount@0
804GetTempPath2W@8
805GetThreadContext@8231GetThreadContext@8
806GetThreadDescription@8
807GetThreadEnabledXStateFeatures@0
808GetThreadErrorMode@0
809GetThreadGroupAffinity@8
810GetThreadIOPendingFlag@8
811GetThreadId@4
812GetThreadIdealProcessorEx@8
813GetThreadInformation@16
814GetThreadLocale@0232GetThreadLocale@0
815GetThreadPreferredUILanguages@16
816GetThreadPriority@4233GetThreadPriority@4
817GetThreadPriorityBoost@8
818GetThreadSelectedCpuSetMasks@16
819GetThreadSelectedCpuSets@16
820GetThreadSelectorEntry@12234GetThreadSelectorEntry@12
821GetThreadTimes@20235GetThreadTimes@20
822GetThreadUILanguage@0
823GetTickCount64@0
824GetTickCount@0
825GetTimeFormatA@24
826GetTimeFormatAWorker@28
827GetTimeFormatEx@24
828GetTimeFormatW@24236GetTimeFormatW@24
829GetTimeFormatWWorker@24
830GetTimeZoneInformation@4237GetTimeZoneInformation@4
831GetTimeZoneInformationForYear@12
832GetUILanguageInfo@20
833GetUserDefaultGeoName@8
834GetUserDefaultLCID@0238GetUserDefaultLCID@0
835GetUserDefaultLangID@0239GetUserDefaultLangID@0
836GetUserDefaultLocaleName@8
837GetUserDefaultUILanguage@0
838GetUserGeoID@4
839GetUserPreferredUILanguages@16
840GetVDMCurrentDirectories@8
841GetVersion@0240GetVersion@0
842GetVersionExA@4
843GetVersionExW@4
844GetVolumeInformationA@32241GetVolumeInformationA@32
845GetVolumeInformationByHandleW@32
846GetVolumeInformationW@32242GetVolumeInformationW@32
847GetVolumeNameForVolumeMountPointA@12
848GetVolumeNameForVolumeMountPointW@12
849GetVolumePathNameA@12
850GetVolumePathNameW@12
851GetVolumePathNamesForVolumeNameA@16
852GetVolumePathNamesForVolumeNameW@16
853GetWindowsDirectoryA@8243GetWindowsDirectoryA@8
854GetWindowsDirectoryW@8244GetWindowsDirectoryW@8
855GetWriteWatch@24
856GetXStateFeaturesMask@8
857GlobalAddAtomA@4245GlobalAddAtomA@4
858GlobalAddAtomExA@8
859GlobalAddAtomExW@8
860GlobalAddAtomW@4246GlobalAddAtomW@4
861GlobalAlloc@8247GlobalAlloc@8
862GlobalCompact@4248GlobalCompact@4
...@@ -871,67 +257,23 @@ GlobalGetAtomNameW@12...@@ -871,67 +257,23 @@ GlobalGetAtomNameW@12
871GlobalHandle@4257GlobalHandle@4
872GlobalLock@4258GlobalLock@4
873GlobalMemoryStatus@4259GlobalMemoryStatus@4
874GlobalMemoryStatusEx@4
875GlobalMemoryStatusVlm@4
876GlobalReAlloc@12260GlobalReAlloc@12
877GlobalSize@4261GlobalSize@4
878GlobalUnWire@4262GlobalUnWire@4
879GlobalUnfix@4263GlobalUnfix@4
880GlobalUnlock@4264GlobalUnlock@4
881GlobalWire@4265GlobalWire@4
882Heap32First@12
883Heap32ListFirst@8
884Heap32ListNext@8
885Heap32Next@4
886HeapAlloc@12266HeapAlloc@12
887HeapCompact@8
888HeapCreate@12267HeapCreate@12
889HeapCreateTagsW@16
890HeapDestroy@4268HeapDestroy@4
891HeapExtend@16
892HeapFree@12269HeapFree@12
893HeapLock@4
894HeapQueryInformation@20
895HeapQueryTagW@20
896HeapReAlloc@16270HeapReAlloc@16
897HeapSetInformation@16
898HeapSize@12271HeapSize@12
899HeapSummary@12
900HeapUnlock@4
901HeapUsage@20
902HeapValidate@12
903HeapWalk@8
904IdnToAscii@20
905IdnToNameprepUnicode@20
906IdnToUnicode@20
907InitAtomTable@4272InitAtomTable@4
908InitializeCriticalSection@4273InitializeCriticalSection@4
909InitOnceBeginInitialize@16274InterlockedDecrement@4 DATA ; FIXME: why is decorated stdcall function symbol disabled?
910InitOnceComplete@12275InterlockedExchange@8 DATA ; FIXME: why is decorated stdcall function symbol disabled?
911InitOnceExecuteOnce@16276InterlockedIncrement@4 DATA ; FIXME: why is decorated stdcall function symbol disabled?
912InitOnceInitialize@4
913InitializeConditionVariable@4
914InitializeContext2@24
915InitializeContext@16
916InitializeCriticalSectionAndSpinCount@8
917InitializeCriticalSectionEx@12
918InitializeEnclave@20
919InitializeProcThreadAttributeList@16
920InitializeSListHead@4
921InitializeSRWLock@4
922InitializeSynchronizationBarrier@12
923InstallELAMCertificateInfo@4
924InterlockedCompareExchange64@20 DATA ; FIXME: this is for Vista+. forwards to NTDLL.RtlInterlockedCompareExchange64@20
925InterlockedCompareExchange@12 DATA
926InterlockedDecrement@4 DATA
927InterlockedExchange@8 DATA
928InterlockedExchangeAdd@8 DATA
929InterlockedFlushSList@4
930InterlockedIncrement@4 DATA
931InterlockedPopEntrySList@4
932InterlockedPushEntrySList@8
933InterlockedPushListSListEx@16
934InvalidateConsoleDIBits@8
935IsBadCodePtr@4277IsBadCodePtr@4
936IsBadHugeReadPtr@8278IsBadHugeReadPtr@8
937IsBadHugeWritePtr@8279IsBadHugeWritePtr@8
...@@ -939,93 +281,19 @@ IsBadReadPtr@8...@@ -939,93 +281,19 @@ IsBadReadPtr@8
939IsBadStringPtrA@8281IsBadStringPtrA@8
940IsBadStringPtrW@8282IsBadStringPtrW@8
941IsBadWritePtr@8283IsBadWritePtr@8
942IsCalendarLeapDay@20
943IsCalendarLeapMonth@16
944IsCalendarLeapYear@12
945IsDBCSLeadByte@4284IsDBCSLeadByte@4
946IsDBCSLeadByteEx@8
947IsDebuggerPresent@0
948IsEnclaveTypeSupported@4
949IsIoRingOpSupported@8
950IsNLSDefinedString@20
951IsNativeVhdBoot@4
952IsNormalizedString@12
953IsProcessCritical@8
954IsProcessInJob@12
955IsProcessorFeaturePresent@4
956IsSystemResumeAutomatic@0
957IsThreadAFiber@0
958IsThreadpoolTimerSet@4
959IsTimeZoneRedirectionEnabled@0
960IsUserCetAvailableInEnvironment@4
961IsValidCalDateTime@8
962IsValidCodePage@4285IsValidCodePage@4
963IsValidLanguageGroup@8
964IsValidLocale@8
965IsValidLocaleName@4
966IsValidNLSVersion@12
967IsWow64GuestMachineSupported@8
968IsWow64Process2@12
969IsWow64Process@8
970K32EmptyWorkingSet@4
971K32EnumDeviceDrivers@12
972K32EnumPageFilesA@8
973K32EnumPageFilesW@8
974K32EnumProcessModules@16
975K32EnumProcessModulesEx@20
976K32EnumProcesses@12
977K32GetDeviceDriverBaseNameA@12
978K32GetDeviceDriverBaseNameW@12
979K32GetDeviceDriverFileNameA@12
980K32GetDeviceDriverFileNameW@12
981K32GetMappedFileNameA@16
982K32GetMappedFileNameW@16
983K32GetModuleBaseNameA@16
984K32GetModuleBaseNameW@16
985K32GetModuleFileNameExA@16
986K32GetModuleFileNameExW@16
987K32GetModuleInformation@16
988K32GetPerformanceInfo@8
989K32GetProcessImageFileNameA@12
990K32GetProcessImageFileNameW@12
991K32GetProcessMemoryInfo@12
992K32GetWsChanges@12
993K32GetWsChangesEx@12
994K32InitializeProcessForWsWatch@4
995K32QueryWorkingSet@12
996K32QueryWorkingSetEx@12
997LCIDToLocaleName@16
998LCMapStringA@24
999LCMapStringEx@36
1000LCMapStringW@24286LCMapStringW@24
1001LZClose@4
1002LZCloseFile@4
1003LZCopy@8
1004LZCreateFileW@20
1005LZDone@0
1006LZInit@4
1007LZOpenFileA@12
1008LZOpenFileW@12
1009LZRead@12
1010LZSeek@12
1011LZStart@0
1012LeaveCriticalSection@4287LeaveCriticalSection@4
1013LeaveCriticalSectionWhenCallbackReturns@8
1014LoadAppInitDlls@0
1015LoadEnclaveData@36
1016LoadLibraryA@4288LoadLibraryA@4
1017LoadLibraryExA@12289LoadLibraryExA@12
1018LoadLibraryExW@12290LoadLibraryExW@12
1019LoadLibraryW@4291LoadLibraryW@4
1020LoadModule@8292LoadModule@8
1021LoadPackagedLibrary@8
1022LoadResource@8293LoadResource@8
1023LoadStringBaseExW@20
1024LoadStringBaseW@16
1025LocalAlloc@8294LocalAlloc@8
1026LocalCompact@4295LocalCompact@4
1027LocalFileTimeToFileTime@8296LocalFileTimeToFileTime@8
1028LocalFileTimeToLocalSystemTime@12
1029LocalFlags@4297LocalFlags@4
1030LocalFree@4298LocalFree@4
1031LocalHandle@4299LocalHandle@4
...@@ -1033,164 +301,44 @@ LocalLock@4...@@ -1033,164 +301,44 @@ LocalLock@4
1033LocalReAlloc@12301LocalReAlloc@12
1034LocalShrink@8302LocalShrink@8
1035LocalSize@4303LocalSize@4
1036LocalSystemTimeToLocalFileTime@12
1037LocalUnlock@4304LocalUnlock@4
1038LocaleNameToLCID@8
1039LocateXStateFeature@12
1040LockFile@20305LockFile@20
1041LockFileEx@24306LockFileEx@24
1042LockResource@4307LockResource@4
1043MapUserPhysicalPages@12
1044MapUserPhysicalPagesScatter@12
1045MapViewOfFile@20308MapViewOfFile@20
1046MapViewOfFileEx@24309MapViewOfFileEx@24
1047MapViewOfFileExNuma@28
1048MapViewOfFileVlm@28
1049MapViewOfFileFromApp@20
1050Module32First@8
1051Module32FirstW@8
1052Module32Next@8
1053Module32NextW@8
1054MoveFileA@8310MoveFileA@8
1055MoveFileExA@12311MoveFileExA@12
1056MoveFileExW@12312MoveFileExW@12
1057MoveFileTransactedA@24
1058MoveFileTransactedW@24
1059MoveFileW@8313MoveFileW@8
1060MoveFileWithProgressA@20
1061MoveFileWithProgressW@20
1062MulDiv@12314MulDiv@12
1063MultiByteToWideChar@24315MultiByteToWideChar@24
1064NeedCurrentDirectoryForExePathA@4
1065NeedCurrentDirectoryForExePathW@4
1066NlsCheckPolicy@8
1067NlsConvertIntegerToString@20
1068NlsEventDataDescCreate@16
1069NlsGetCacheUpdateCount@0
1070NlsUpdateLocale@8
1071NlsUpdateSystemLocale@8
1072NlsWriteEtwEvent@20
1073NormalizeString@20
1074NotifyMountMgr@12
1075NotifyUILanguageChange@20
1076NtVdm64CreateProcessInternalW@48
1077OOBEComplete@4
1078OfferVirtualMemory@12
1079OpenConsoleW@16
1080OpenConsoleWStub@16
1081OpenEventA@12316OpenEventA@12
1082OpenEventW@12317OpenEventW@12
1083OpenFile@12318OpenFile@12
1084OpenFileById@24
1085OpenFileMappingA@12319OpenFileMappingA@12
1086OpenFileMappingW@12320OpenFileMappingW@12
1087OpenJobObjectA@12
1088OpenJobObjectW@12
1089OpenMutexA@12321OpenMutexA@12
1090OpenMutexW@12322OpenMutexW@12
1091OpenPackageInfoByFullName@12
1092OpenPrivateNamespaceA@8
1093OpenPrivateNamespaceW@8
1094OpenProcess@12323OpenProcess@12
1095; MSDN says OpenProcessToken is from Advapi32.dll, not Kernel32.dll
1096; OpenProcessToken@12
1097OpenProfileUserMapping@0324OpenProfileUserMapping@0
1098OpenSemaphoreA@12325OpenSemaphoreA@12
1099OpenSemaphoreW@12326OpenSemaphoreW@12
1100OpenState@0
1101OpenStateExplicit@8
1102OpenThread@12
1103; MSDN says this is exported from ADVAPI32.DLL.
1104; OpenThreadToken@16
1105OpenWaitableTimerA@12
1106OpenWaitableTimerW@12
1107OutputDebugStringA@4327OutputDebugStringA@4
1108OutputDebugStringW@4328OutputDebugStringW@4
1109PackageFamilyNameFromFullName@12
1110PackageFamilyNameFromId@12
1111PackageFullNameFromId@12
1112PackageIdFromFullName@16
1113PackageNameAndPublisherIdFromFamilyName@20
1114ParseApplicationUserModelId@20
1115PeekConsoleInputA@16329PeekConsoleInputA@16
1116PeekConsoleInputW@16330PeekConsoleInputW@16
1117PeekNamedPipe@24331PeekNamedPipe@24
1118PopIoRingCompletion@8
1119PostQueuedCompletionStatus@16
1120PowerClearRequest@8
1121PowerCreateRequest@4
1122PowerSetRequest@8
1123PrefetchVirtualMemory@16
1124PrepareTape@12332PrepareTape@12
1125PrivCopyFileExW@24
1126PrivMoveFileIdentityW@12
1127Process32First@8
1128Process32FirstW@8
1129Process32Next@8
1130Process32NextW@8
1131ProcessIdToSessionId@8
1132PssCaptureSnapshot@16
1133PssDuplicateSnapshot@20
1134PssFreeSnapshot@8
1135PssQuerySnapshot@16
1136PssWalkMarkerCreate@8
1137PssWalkMarkerFree@4
1138PssWalkMarkerGetPosition@8
1139PssWalkMarkerRewind@4
1140PssWalkMarkerSeek@8
1141PssWalkMarkerSeekToBeginning@4
1142PssWalkMarkerSetPosition@8
1143PssWalkMarkerTell@8
1144PssWalkSnapshot@20
1145PulseEvent@4333PulseEvent@4
1146PurgeComm@8334PurgeComm@8
1147QueryActCtxSettingsW@28
1148QueryActCtxSettingsWWorker@28
1149QueryActCtxW@28
1150QueryActCtxWWorker@28
1151QueryDepthSList@4
1152QueryDosDeviceA@12335QueryDosDeviceA@12
1153QueryDosDeviceW@12336QueryDosDeviceW@12
1154QueryFullProcessImageNameA@16
1155QueryFullProcessImageNameW@16
1156QueryIdleProcessorCycleTime@8
1157QueryIdleProcessorCycleTimeEx@12
1158QueryInformationJobObject@20
1159QueryIoRateControlInformationJobObject@16
1160QueryIoRingCapabilities@4
1161QueryMemoryResourceNotification@8
1162QueryPerformanceCounter@4337QueryPerformanceCounter@4
1163QueryPerformanceFrequency@4338QueryPerformanceFrequency@4
1164QueryProcessAffinityUpdateMode@8
1165QueryProcessCycleTime@8
1166QueryProtectedPolicy@8
1167QueryThreadCycleTime@8
1168QueryThreadProfiling@8
1169QueryThreadpoolStackInformation@8
1170QueryUnbiasedInterruptTime@4
1171QueueUserAPC2@16
1172QueueUserAPC@12
1173QueueUserWorkItem@12
1174QueryWin31IniFilesMappedToRegistry@16
1175QuirkGetData2Worker@8
1176QuirkGetDataWorker@8
1177QuirkIsEnabled2Worker@12
1178QuirkIsEnabled3Worker@8
1179QuirkIsEnabledForPackage2Worker@24
1180QuirkIsEnabledForPackage3Worker@20
1181QuirkIsEnabledForPackage4Worker@20
1182QuirkIsEnabledForPackageWorker@16
1183QuirkIsEnabledForProcessWorker@12
1184QuirkIsEnabledWorker@4
1185RaiseException@16339RaiseException@16
1186RaiseFailFastException@12
1187RaiseInvalid16BitExeError@4
1188ReOpenFile@16
1189ReclaimVirtualMemory@8
1190ReadConsoleA@20340ReadConsoleA@20
1191ReadConsoleInputA@16341ReadConsoleInputA@16
1192ReadConsoleInputExA@20
1193ReadConsoleInputExW@20
1194ReadConsoleInputW@16342ReadConsoleInputW@16
1195ReadConsoleOutputA@20343ReadConsoleOutputA@20
1196ReadConsoleOutputAttribute@20344ReadConsoleOutputAttribute@20
...@@ -1198,447 +346,112 @@ ReadConsoleOutputCharacterA@20...@@ -1198,447 +346,112 @@ ReadConsoleOutputCharacterA@20
1198ReadConsoleOutputCharacterW@20346ReadConsoleOutputCharacterW@20
1199ReadConsoleOutputW@20347ReadConsoleOutputW@20
1200ReadConsoleW@20348ReadConsoleW@20
1201ReadDirectoryChangesExW@36
1202ReadDirectoryChangesW@32
1203ReadFile@20349ReadFile@20
1204ReadFileEx@20350ReadFileEx@20
1205ReadFileScatter@20
1206ReadFileVlm@20
1207ReadProcessMemory@20351ReadProcessMemory@20
1208ReadThreadProfilingData@12
1209;
1210; MSDN says these functions are exported
1211; from advapi32.dll. Commented out for
1212; compatibility with older versions of
1213; Windows.
1214;
1215; RegKrnGetGlobalState and RegKrnInitialize
1216; are known exceptions.
1217;
1218;RegCloseKey@4
1219;RegCopyTreeW@12
1220;RegCreateKeyExA@36
1221;RegCreateKeyExW@36
1222;RegDeleteKeyExA@16
1223;RegDeleteKeyExW@16
1224;RegDeleteTreeA@8
1225;RegDeleteTreeW@8
1226;RegDeleteValueA@8
1227;RegDeleteValueW@8
1228;RegDisablePredefinedCacheEx@0
1229;RegEnumKeyExA@32
1230;RegEnumKeyExW@32
1231;RegEnumValueA@32
1232;RegEnumValueW@32
1233;RegFlushKey@4
1234;RegGetKeySecurity@16
1235;RegGetValueA@28
1236;RegGetValueW@28
1237;RegLoadKeyA@12
1238;RegLoadKeyW@12
1239;RegLoadMUIStringA@28
1240;RegLoadMUIStringW@28
1241;RegNotifyChangeKeyValue@20
1242;RegOpenCurrentUser@8
1243;RegOpenKeyExA@20
1244;RegOpenKeyExW@20
1245;RegOpenUserClassesRoot@16
1246;RegQueryInfoKeyA@48
1247;RegQueryInfoKeyW@48
1248;RegQueryValueExA@24
1249;RegQueryValueExW@24
1250;RegRestoreKeyA@12
1251;RegRestoreKeyW@12
1252;RegSaveKeyExA@16
1253;RegSaveKeyExW@16
1254;RegSetKeySecurity@12
1255;RegSetValueExA@24
1256;RegSetValueExW@24
1257;RegUnLoadKeyA@8
1258;RegUnLoadKeyW@8
1259RegisterApplicationRecoveryCallback@16
1260RegisterApplicationRestart@8
1261RegisterBadMemoryNotification@4
1262RegisterConsoleIME@8
1263RegisterConsoleOS2@4
1264RegisterConsoleVDM@44
1265RegisterWaitForInputIdle@4
1266RegisterWaitForSingleObject@24
1267RegisterWaitForSingleObjectEx@20
1268RegisterWaitUntilOOBECompleted@12
1269RegisterWowBaseHandlers@4
1270RegisterWowExec@4
1271ReleaseActCtx@4
1272ReleaseActCtxWorker@4
1273ReleaseMutex@4352ReleaseMutex@4
1274ReleaseMutexWhenCallbackReturns@8
1275ReleasePackageVirtualizationContext@4
1276ReleasePseudoConsole@4
1277ReleaseSRWLockExclusive@4
1278ReleaseSRWLockShared@4
1279ReleaseSemaphore@12353ReleaseSemaphore@12
1280ReleaseSemaphoreWhenCallbackReturns@12
1281ResolveLocaleName@12
1282RemoveDirectoryA@4354RemoveDirectoryA@4
1283RemoveDirectoryTransactedA@8
1284RemoveDirectoryTransactedW@8
1285RemoveDirectoryW@4355RemoveDirectoryW@4
1286RemoveDllDirectory@4
1287RemoveLocalAlternateComputerNameA@8
1288RemoveLocalAlternateComputerNameW@8
1289RemoveSecureMemoryCacheCallback@4
1290RemoveVectoredContinueHandler@4
1291RemoveVectoredExceptionHandler@4
1292ReplaceFile@24
1293ReplaceFileA@24
1294ReplaceFileW@24
1295ReplacePartitionUnit@12
1296RequestDeviceWakeup@4
1297RequestWakeupLatency@4
1298ResetEvent@4356ResetEvent@4
1299ResetWriteWatch@8
1300ResizePseudoConsole@8
1301ResolveDelayLoadedAPI@24
1302ResolveDelayLoadsFromDll@12
1303RestoreLastError@4
1304ResumeThread@4357ResumeThread@4
1305RtlCaptureContext@4
1306RtlCaptureStackBackTrace@16
1307RtlFillMemory@12
1308RtlMoveMemory@12358RtlMoveMemory@12
1309RtlPcToFileHeader@8
1310RtlUnwind@16359RtlUnwind@16
1311RtlZeroMemory@8360RtlZeroMemory@8
1312ScrollConsoleScreenBufferA@20361ScrollConsoleScreenBufferA@20
1313ScrollConsoleScreenBufferW@20362ScrollConsoleScreenBufferW@20
1314SearchPathA@24363SearchPathA@24
1315SearchPathW@24364SearchPathW@24
1316SetCachedSigningLevel@16
1317SetCalendarInfoA@16
1318SetCalendarInfoW@16
1319SetClientTimeZoneInformation@4
1320SetComPlusPackageInstallStatus@4
1321SetCommBreak@4365SetCommBreak@4
1322SetCommConfig@12
1323SetCommMask@8366SetCommMask@8
1324SetCommState@8367SetCommState@8
1325SetCommTimeouts@8368SetCommTimeouts@8
1326SetComputerNameA@4369SetComputerNameA@4
1327SetComputerNameEx2W@12
1328SetComputerNameExA@8
1329SetComputerNameExW@8
1330SetComputerNameW@4370SetComputerNameW@4
1331SetConsoleActiveScreenBuffer@4371SetConsoleActiveScreenBuffer@4
1332SetConsoleCP@4372SetConsoleCP@4
1333SetConsoleCommandHistoryMode@4
1334SetConsoleCtrlHandler@8373SetConsoleCtrlHandler@8
1335SetConsoleCursor@8
1336SetConsoleCursorInfo@8374SetConsoleCursorInfo@8
1337SetConsoleCursorMode@12
1338SetConsoleCursorPosition@8375SetConsoleCursorPosition@8
1339SetConsoleDisplayMode@12
1340SetConsoleFont@8
1341SetConsoleHardwareState@12
1342SetConsoleHistoryInfo@4
1343SetConsoleIcon@4
1344SetConsoleInputExeNameA@4
1345SetConsoleInputExeNameW@4
1346SetConsoleKeyShortcuts@16
1347SetConsoleLocalEUDC@16
1348SetConsoleMaximumWindowSize@8
1349SetConsoleMenuClose@4
1350SetConsoleMode@8376SetConsoleMode@8
1351SetConsoleNlsMode@8
1352SetConsoleNumberOfCommandsA@8
1353SetConsoleNumberOfCommandsW@8
1354SetConsoleOS2OemFormat@4
1355SetConsoleOutputCP@4377SetConsoleOutputCP@4
1356SetConsolePalette@12
1357SetConsoleScreenBufferInfoEx@8
1358SetConsoleScreenBufferSize@8378SetConsoleScreenBufferSize@8
1359SetConsoleTextAttribute@8379SetConsoleTextAttribute@8
1360SetConsoleTitleA@4380SetConsoleTitleA@4
1361SetConsoleTitleW@4381SetConsoleTitleW@4
1362SetConsoleWindowInfo@12382SetConsoleWindowInfo@12
1363SetCriticalSectionSpinCount@8
1364SetCurrentConsoleFontEx@12
1365SetCurrentDirectoryA@4383SetCurrentDirectoryA@4
1366SetCurrentDirectoryW@4384SetCurrentDirectoryW@4
1367SetDefaultCommConfigA@12
1368SetDefaultCommConfigW@12
1369SetDefaultDllDirectories@4
1370SetDllDirectoryA@4
1371SetDllDirectoryW@4
1372SetDynamicTimeZoneInformation@4
1373SetEndOfFile@4385SetEndOfFile@4
1374SetEnvironmentStringsA@4
1375SetEnvironmentStringsW@4
1376SetEnvironmentVariableA@8386SetEnvironmentVariableA@8
1377SetEnvironmentVariableW@8387SetEnvironmentVariableW@8
1378SetErrorMode@4388SetErrorMode@4
1379SetEvent@4389SetEvent@4
1380SetEventWhenCallbackReturns@8
1381SetFileApisToANSI@0
1382SetFileApisToOEM@0390SetFileApisToOEM@0
1383SetFileAttributesA@8391SetFileAttributesA@8
1384SetFileAttributesTransactedA@12
1385SetFileAttributesTransactedW@12
1386SetFileAttributesW@8392SetFileAttributesW@8
1387SetFileBandwidthReservation@24
1388SetFileCompletionNotificationModes@8
1389SetFileInformationByHandle@16
1390SetFileIoOverlappedRange@12
1391SetFilePointer@16393SetFilePointer@16
1392SetFilePointerEx@20
1393SetFileShortNameA@8
1394SetFileShortNameW@8
1395SetFileTime@16394SetFileTime@16
1396SetFileValidData@12
1397SetFirmwareEnvironmentVariableA@16
1398SetFirmwareEnvironmentVariableExA@20
1399SetFirmwareEnvironmentVariableExW@20
1400SetFirmwareEnvironmentVariableW@16
1401SetHandleContext@8
1402SetHandleCount@4395SetHandleCount@4
1403SetHandleInformation@12
1404SetInformationJobObject@16
1405SetIoRateControlInformationJobObject@8
1406SetIoRingCompletionEvent@8
1407SetLastConsoleEventActive@0
1408SetLastError@4396SetLastError@4
1409SetLocalPrimaryComputerNameA@8
1410SetLocalPrimaryComputerNameW@8
1411SetLocalTime@4397SetLocalTime@4
1412SetLocaleInfoA@12
1413SetLocaleInfoW@12
1414SetMailslotInfo@8398SetMailslotInfo@8
1415SetMessageWaitingIndicator@8
1416SetNamedPipeAttribute@20
1417SetNamedPipeHandleState@16399SetNamedPipeHandleState@16
1418SetPriorityClass@8400SetPriorityClass@8
1419SetProcessAffinityMask@8
1420SetProcessAffinityUpdateMode@8
1421SetProcessDEPPolicy@4
1422SetProcessDefaultCpuSetMasks@12
1423SetProcessDefaultCpuSets@12
1424SetProcessDynamicEHContinuationTargets@12
1425SetProcessDynamicEnforcedCetCompatibleRanges@12
1426SetProcessInformation@16
1427SetProcessMitigationPolicy@12
1428SetProcessPreferredUILanguages@12
1429SetProcessPriorityBoost@8
1430SetProcessShutdownParameters@8401SetProcessShutdownParameters@8
1431SetProcessUserModeExceptionPolicy@4
1432SetProcessWorkingSetSize@12
1433SetProcessWorkingSetSizeEx@16
1434SetProtectedPolicy@12
1435SetSearchPathMode@4
1436SetStdHandle@8402SetStdHandle@8
1437SetStdHandleEx@12
1438SetSystemFileCacheSize@12
1439SetSystemPowerState@8
1440SetSystemTime@4403SetSystemTime@4
1441SetSystemTimeAdjustment@8
1442SetTapeParameters@12404SetTapeParameters@12
1443SetTapePosition@24405SetTapePosition@24
1444SetTermsrvAppInstallMode@4
1445SetThreadAffinityMask@8
1446SetThreadContext@8406SetThreadContext@8
1447SetThreadDescription@8
1448SetThreadErrorMode@8
1449SetThreadExecutionState@4
1450SetThreadGroupAffinity@12
1451SetThreadIdealProcessor@8
1452SetThreadIdealProcessorEx@12
1453SetThreadInformation@16
1454SetThreadLocale@4407SetThreadLocale@4
1455SetThreadPreferredUILanguages@12
1456SetThreadPriority@8408SetThreadPriority@8
1457SetThreadPriorityBoost@8
1458SetThreadSelectedCpuSetMasks@12
1459SetThreadSelectedCpuSets@12
1460SetThreadStackGuarantee@4
1461; MSDN says this is exported from ADVAPI32.DLL.
1462; SetThreadToken@8
1463SetThreadUILanguage@4
1464SetThreadpoolStackInformation@8
1465SetThreadpoolThreadMaximum@8
1466SetThreadpoolThreadMinimum@8
1467SetThreadpoolTimer@16
1468SetThreadpoolTimerEx@16
1469SetThreadpoolWait@12
1470SetThreadpoolWaitEx@16
1471SetTimeZoneInformation@4409SetTimeZoneInformation@4
1472SetTimerQueueTimer@24
1473SetUnhandledExceptionFilter@4410SetUnhandledExceptionFilter@4
1474SetUserGeoID@4
1475SetUserGeoName@4
1476SetVDMCurrentDirectories@8
1477SetVolumeLabelA@8411SetVolumeLabelA@8
1478SetVolumeLabelW@8412SetVolumeLabelW@8
1479SetVolumeMountPointA@8
1480SetVolumeMountPointW@8
1481SetVolumeMountPointWStub@8
1482SetWaitableTimer@24
1483SetWaitableTimerEx@28
1484SetXStateFeaturesMask@12
1485SetupComm@12413SetupComm@12
1486ShowConsoleCursor@8
1487SignalObjectAndWait@16
1488SizeofResource@8414SizeofResource@8
1489Sleep@4415Sleep@4
1490SleepConditionVariableCS@12
1491SleepConditionVariableSRW@16
1492SleepEx@8416SleepEx@8
1493SortCloseHandle@4
1494SortGetHandle@12
1495StartThreadpoolIo@4
1496SubmitIoRing@16
1497SubmitThreadpoolWork@4
1498SuspendThread@4417SuspendThread@4
1499SwitchToFiber@4
1500SwitchToThread@0
1501SystemTimeToFileTime@8418SystemTimeToFileTime@8
1502SystemTimeToTzSpecificLocalTime@12
1503SystemTimeToTzSpecificLocalTimeEx@12
1504TerminateJobObject@8
1505TerminateProcess@8419TerminateProcess@8
1506TerminateThread@8420TerminateThread@8
1507TermsrvAppInstallMode@0
1508TermsrvConvertSysRootToUserDir@8
1509TermsrvCreateRegEntry@20
1510TermsrvDeleteKey@4
1511TermsrvDeleteValue@8
1512TermsrvGetPreSetValue@16
1513TermsrvGetWindowsDirectoryA@8
1514TermsrvGetWindowsDirectoryW@8
1515TermsrvOpenRegEntry@12
1516TermsrvOpenUserClasses@8
1517TermsrvRestoreKey@12
1518TermsrvSetKeySecurity@12
1519TermsrvSetValueKey@24
1520TermsrvSyncUserIniFileExt@4
1521Thread32First@8
1522Thread32Next@8
1523TlsAlloc@0421TlsAlloc@0
1524TlsFree@4422TlsFree@4
1525TlsGetValue2@4
1526TlsGetValue@4423TlsGetValue@4
1527TlsSetValue@8424TlsSetValue@8
1528Toolhelp32ReadProcessMemory@20
1529TransactNamedPipe@28425TransactNamedPipe@28
1530TransmitCommChar@8426TransmitCommChar@8
1531TrimVirtualBuffer@4
1532TryAcquireSRWLockExclusive@4
1533TryAcquireSRWLockShared@4
1534TryEnterCriticalSection@4
1535TrySubmitThreadpoolCallback@12
1536TzSpecificLocalTimeToSystemTime@12
1537TzSpecificLocalTimeToSystemTimeEx@12
1538UTRegister@28
1539UTUnRegister@4
1540UnhandledExceptionFilter@4427UnhandledExceptionFilter@4
1541UnlockFile@20428UnlockFile@20
1542UnlockFileEx@20429UnlockFileEx@20
1543UnmapViewOfFile@4430UnmapViewOfFile@4
1544UnmapViewOfFileEx@8
1545UnmapViewOfFileVlm@4
1546UnregisterApplicationRecoveryCallback@0
1547UnregisterApplicationRestart@0
1548UnregisterBadMemoryNotification@4
1549UnregisterConsoleIME@0
1550UnregisterWait@4
1551UnregisterWaitEx@8
1552UnregisterWaitUntilOOBECompleted@4
1553UpdateCalendarDayOfWeek@4
1554UpdateProcThreadAttribute@28
1555UpdateResourceA@24431UpdateResourceA@24
1556UpdateResourceW@24432UpdateResourceW@24
1557VDMConsoleOperation@8
1558VDMOperationStarted@4
1559VerLanguageNameA@12433VerLanguageNameA@12
1560VerLanguageNameW@12434VerLanguageNameW@12
1561VerSetConditionMask@16
1562VerifyConsoleIoHandle@4
1563VerifyScripts@20
1564VerifyVersionInfoA@16
1565VerifyVersionInfoW@16
1566VirtualAlloc@16435VirtualAlloc@16
1567VirtualAllocEx@20
1568VirtualAllocExNuma@24
1569VirtualAllocVlm@24
1570VirtualBufferExceptionHandler@12
1571VirtualFree@12436VirtualFree@12
1572VirtualFreeEx@16
1573VirtualFreeVlm@20
1574VirtualLock@8437VirtualLock@8
1575VirtualProtect@16438VirtualProtect@16
1576VirtualProtectEx@20439VirtualProtectEx@20
1577VirtualProtectVlm@24
1578VirtualQuery@12440VirtualQuery@12
1579VirtualQueryEx@16441VirtualQueryEx@16
1580VirtualQueryVlm@16
1581VirtualUnlock@8442VirtualUnlock@8
1582WTSGetActiveConsoleSessionId@0
1583WaitCommEvent@12443WaitCommEvent@12
1584WaitForDebugEvent@8444WaitForDebugEvent@8
1585WaitForDebugEventEx@8
1586WaitForMultipleObjects@16445WaitForMultipleObjects@16
1587WaitForMultipleObjectsEx@20446WaitForMultipleObjectsEx@20
1588WaitForSingleObject@8447WaitForSingleObject@8
1589WaitForSingleObjectEx@12448WaitForSingleObjectEx@12
1590WaitForThreadpoolIoCallbacks@8
1591WaitForThreadpoolTimerCallbacks@8
1592WaitForThreadpoolWaitCallbacks@8
1593WaitForThreadpoolWorkCallbacks@8
1594WaitNamedPipeA@8449WaitNamedPipeA@8
1595WaitNamedPipeW@8450WaitNamedPipeW@8
1596WakeAllConditionVariable@4
1597WakeConditionVariable@4
1598WerGetFlags@8
1599WerGetFlagsWorker@8
1600WerRegisterAdditionalProcess@8
1601WerRegisterAppLocalDump@4
1602WerRegisterCustomMetadata@8
1603WerRegisterExcludedMemoryBlock@8
1604WerRegisterFile@12
1605WerRegisterFileWorker@12
1606WerRegisterMemoryBlock@8
1607WerRegisterMemoryBlockWorker@8
1608WerRegisterRuntimeExceptionModule@8
1609WerRegisterRuntimeExceptionModuleWorker@8
1610WerSetFlags@4
1611WerSetFlagsWorker@4
1612WerUnregisterAdditionalProcess@4
1613WerUnregisterAppLocalDump@0
1614WerUnregisterCustomMetadata@4
1615WerUnregisterExcludedMemoryBlock@4
1616WerUnregisterFile@4
1617WerUnregisterFileWorker@4
1618WerUnregisterMemoryBlock@4
1619WerUnregisterMemoryBlockWorker@4
1620WerUnregisterRuntimeExceptionModule@8
1621WerUnregisterRuntimeExceptionModuleWorker@8
1622WerpCleanupMessageMapping@0
1623WerpGetDebugger@8
1624WerpInitiateRemoteRecovery@4
1625WerpNotifyLoadStringResource@16
1626WerpNotifyLoadStringResourceEx@20
1627WerpNotifyUseStringResource@4
1628WerpStringLookup@8
1629WideCharToMultiByte@32451WideCharToMultiByte@32
1630WinExec@8452WinExec@8
1631Wow64DisableWow64FsRedirection@4
1632Wow64EnableWow64FsRedirection@4
1633Wow64GetThreadContext@8
1634Wow64GetThreadSelectorEntry@12
1635Wow64RevertWow64FsRedirection@4
1636Wow64SetThreadContext@8
1637Wow64SuspendThread@4
1638WriteConsoleA@20453WriteConsoleA@20
1639WriteConsoleInputA@16454WriteConsoleInputA@16
1640WriteConsoleInputVDMA@16
1641WriteConsoleInputVDMW@16
1642WriteConsoleInputW@16455WriteConsoleInputW@16
1643WriteConsoleOutputA@20456WriteConsoleOutputA@20
1644WriteConsoleOutputAttribute@20457WriteConsoleOutputAttribute@20
...@@ -1648,23 +461,16 @@ WriteConsoleOutputW@20...@@ -1648,23 +461,16 @@ WriteConsoleOutputW@20
1648WriteConsoleW@20461WriteConsoleW@20
1649WriteFile@20462WriteFile@20
1650WriteFileEx@20463WriteFileEx@20
1651WriteFileGather@20
1652WriteFileVlm@20
1653WritePrivateProfileSectionA@12464WritePrivateProfileSectionA@12
1654WritePrivateProfileSectionW@12465WritePrivateProfileSectionW@12
1655WritePrivateProfileStringA@16466WritePrivateProfileStringA@16
1656WritePrivateProfileStringW@16467WritePrivateProfileStringW@16
1657WritePrivateProfileStructA@20
1658WritePrivateProfileStructW@20
1659WriteProcessMemory@20468WriteProcessMemory@20
1660WriteProcessMemoryVlm@20
1661WriteProfileSectionA@8469WriteProfileSectionA@8
1662WriteProfileSectionW@8470WriteProfileSectionW@8
1663WriteProfileStringA@12471WriteProfileStringA@12
1664WriteProfileStringW@12472WriteProfileStringW@12
1665WriteTapemark@16473WriteTapemark@16
1666ZombifyActCtx@4
1667ZombifyActCtxWorker@4
1668_hread@12474_hread@12
1669_hwrite@12475_hwrite@12
1670_lclose@4476_lclose@4
...@@ -1673,32 +479,1760 @@ _llseek@12...@@ -1673,32 +479,1760 @@ _llseek@12
1673_lopen@8479_lopen@8
1674_lread@12480_lread@12
1675_lwrite@12481_lwrite@12
1676lstrcat@8
1677lstrcatA@8482lstrcatA@8
1678lstrcatW@8483lstrcatW@8
1679lstrcmp@8
1680lstrcmpA@8484lstrcmpA@8
1681lstrcmpW@8485lstrcmpW@8
1682lstrcmpi@8
1683lstrcmpiA@8486lstrcmpiA@8
1684lstrcmpiW@8487lstrcmpiW@8
1685lstrcpy@8
1686lstrcpyA@8488lstrcpyA@8
1687lstrcpyW@8489lstrcpyW@8
1688lstrcpyn@12490lstrlenA@4
491lstrlenW@4
492
493; This is list of symbols available only in Win32s (not available in Win9x and WinNT)
494; BaseRtlAllocateHandle@4
495; BaseRtlDestroyHandleTable@4
496; BaseRtlFreeHandle@8
497; BaseRtlInitializeHandleTable@8
498; Free32bDLLCbEntries@8
499; Get16DLLAddress@8
500; GetDOSFileHandle@4
501; GetUserNameA@8 ; MSDN says this is exported from advapi32.dll
502; GetUserNameW@8 ; MSDN says this is exported from advapi32.dll
503; OpenThread@4 ; Win32s OpenThread takes one DWORD threadid argument, Windows ME and Windows 2000+ contain "OpenThread" symbol but ABI is "OpenThread@12"
504; PrivateFreeLibrary@4
505; PrivateLoadLibrary@4
506; RtlCreateHeap@24 ; MSDN says this is exported from ntdll.dll
507; RtlDestroyHeap@4 ; MSDN says this is exported from ntdll.dll
508; RtlExAllocateHeap@12 ; MSDN says this is exported from ntdll.dll
509; RtlExFreeHeap@12 ; MSDN says this is exported from ntdll.dll
510; RtlExReAllocateHeap@16 ; MSDN says this is exported from ntdll.dll
511; RtlExSizeHeap@12 ; MSDN says this is exported from ntdll.dll
512; SetLastErrorEx@8 ; MSDN says this is exported from user32.dll
513
514; This is list of symbols available in all Win32s and Win9x versions and since Windows 2000
515UTRegister@28
516UTUnRegister@4
517
518; This is list of symbols added in Win32s 1.15, available in all Win9x versions and since Windows NT 3.5
519; Note that Win32s 1.15 and all later versions merged advapi32.dll, gdi32.dll,
520; kernel32.dll, ntdll.dll, user32.dll (and Win32s 1.25a and later also mpr.dll)
521; libraries into one big w32scomb.dll library and made those libraries as alias
522; to w32scomb.dll, which effectively means that every symbol from every library
523; is available also from kernel32.dll (aliased to w32scomb.dll). Below are only
524; those Win32s symbols which are available in some Win9x or WinNT version of
525; kernel32.dll or logically belongs to kernel32.dll.
526CompareStringA@24
527ConvertDefaultLocale@4
528EnumCalendarInfoA@16
529EnumCalendarInfoW@16
530EnumDateFormatsA@12
531EnumDateFormatsW@12
532EnumSystemCodePagesA@8
533EnumSystemCodePagesW@8
534EnumSystemLocalesA@8
535EnumSystemLocalesW@8
536EnumTimeFormatsA@12
537EnumTimeFormatsW@12
538GetCurrencyFormatA@24
539GetCurrencyFormatW@24
540GetDateFormatA@24
541GetLocaleInfoA@16
542GetNumberFormatA@24
543GetNumberFormatW@24
544GetTimeFormatA@24
545GetVersionExA@4
546GetVersionExW@4
547HeapValidate@12
548IsValidLocale@8
549LCMapStringA@24
550SetLocaleInfoA@12
551SetLocaleInfoW@12
1689lstrcpynA@12552lstrcpynA@12
1690lstrcpynW@12553lstrcpynW@12
554
555; This is list of symbols added in Win32s 1.15 and available only in Win32s (not available in Win9x and WinNT)
556; Insert16hInWin32s@4
557; PrivateGetModuleUsage@4
558
559; This is list of symbols added in Win32s 1.20, available in all Win9x versions and since Windows NT 3.1
560GetBinaryType@8
561RtlFillMemory@12
562lstrcat@8
563lstrcmp@8
564lstrcmpi@8
565lstrcpy@8
1691lstrlen@4566lstrlen@4
1692lstrlenA@4567
1693lstrlenW@4568; This is list of symbols added in Win32s 1.20, available since Windows NT 3.1, but not available in Win9x
1694;569AddConsoleAliasW@12
1695; MSDN says these functions are exported570BaseAttachCompleteThunk@0 ; FIXME: All WinNT versions have ABI "BaseAttachCompleteThunk@16", removed in Windows XP
1696; from winmm.dll. Commented out for571; BasepDebugDump@4 ; removed in Windows NT 3.51
1697; compatibility with older versions of572CloseConsoleHandle@4
1698; Windows.573CmdBatNotification@4
1699;574ConsoleMenuControl@12
1700;timeBeginPeriod@4575; ConsoleSubst@16 ; removed in Windows NT 3.51
1701;timeEndPeriod@4576CreateVirtualBuffer@12 ; removed in Windows Server 2003 SP1
1702;timeGetDevCaps@8577DuplicateConsoleHandle@16
1703;timeGetSystemTime@8578ExitVDM@8
1704;timeGetTime@0579ExpungeConsoleCommandHistoryA@4
580ExpungeConsoleCommandHistoryW@4
581ExtendVirtualBuffer@8 ; removed in Windows Server 2003 SP1
582FreeVirtualBuffer@4 ; removed in Windows Server 2003 SP1
583GetConsoleAliasA@16
584GetConsoleAliasExesA@8
585GetConsoleAliasExesLengthA@0
586GetConsoleAliasExesLengthW@0
587GetConsoleAliasExesW@8
588GetConsoleAliasW@16
589GetConsoleAliasesA@12
590GetConsoleAliasesLengthA@4
591GetConsoleAliasesLengthW@4
592GetConsoleAliasesW@12
593GetConsoleCommandHistoryA@12
594GetConsoleCommandHistoryLengthA@4
595GetConsoleCommandHistoryLengthW@4
596GetConsoleCommandHistoryW@12
597GetConsoleDisplayMode@4
598GetConsoleFontInfo@16
599GetConsoleFontSize@8
600GetConsoleHardwareState@12
601GetConsoleInputWaitHandle@0
602GetCurrentConsoleFont@12
603GetNextVDMCommand@4
604GetNumberOfConsoleFonts@0
605GetVDMCurrentDirectories@8
606InvalidateConsoleDIBits@8
607OpenConsoleW@16
608QueryWin31IniFilesMappedToRegistry@16 ; removed in Windows Server 2003
609RegisterConsoleVDM@44
610RegisterWaitForInputIdle@4
611SetConsoleCommandHistoryMode@4 ; removed in Windows Vista
612SetConsoleCursor@8
613SetConsoleDisplayMode@12
614SetConsoleFont@8
615SetConsoleHardwareState@12
616SetConsoleKeyShortcuts@16
617SetConsoleMaximumWindowSize@8
618SetConsoleMenuClose@4
619SetConsoleNumberOfCommandsA@8
620SetConsoleNumberOfCommandsW@8
621SetConsolePalette@12
622SetLastConsoleEventActive@0
623SetVDMCurrentDirectories@8
624ShowConsoleCursor@8
625TrimVirtualBuffer@4 ; removed in Windows Server 2003 SP1
626VDMConsoleOperation@8
627VDMOperationStarted@4
628VerifyConsoleIoHandle@4
629VirtualBufferExceptionHandler@12 ; removed in Windows Server 2003 SP1
630WriteConsoleInputVDMA@16
631WriteConsoleInputVDMW@16
632
633; This is list of symbols added in Win32s 1.20, available in all Win9x versions and since Windows NT 3.5
634CommConfigDialogA@12
635CommConfigDialogW@12
636CreateIoCompletionPort@16
637DisableThreadLibraryCalls@4
638FoldStringA@20
639FreeEnvironmentStringsA@4
640FreeEnvironmentStringsW@4
641FreeLibraryAndExitThread@8
642GetBinaryTypeA@8
643GetBinaryTypeW@8
644GetCommConfig@12
645GetCompressedFileSizeA@8
646GetCompressedFileSizeW@8
647GetDefaultCommConfigA@12
648GetDefaultCommConfigW@12
649GetEnvironmentStringsA@0
650GetEnvironmentStringsW@0
651GetHandleInformation@8
652GetProcessAffinityMask@12
653GetProcessWorkingSetSize@12
654GetQueuedCompletionStatus@20
655GetShortPathNameA@12
656GetShortPathNameW@12
657GetStringTypeA@20
658GetStringTypeExA@20
659GetStringTypeExW@20
660GetSystemTimeAdjustment@12
661IsDBCSLeadByteEx@8
662SetCommConfig@12
663SetDefaultCommConfigA@12
664SetDefaultCommConfigW@12
665SetHandleInformation@12
666SetProcessWorkingSetSize@12
667SetSystemTimeAdjustment@8
668SetThreadAffinityMask@8
669SystemTimeToTzSpecificLocalTime@12
670lstrcpyn@12
671
672; This is list of symbols added in Win32s 1.20, available since Windows NT 3.5, but not available in Win9x
673RegisterWowBaseHandlers@4
674RegisterWowExec@4
675
676; This is list of symbols added in Win32s 1.25, available in all Win9x versions and since Windows NT 3.5
677AreFileApisANSI@0
678GetProcessHeaps@8
679SetFileApisToANSI@0
680
681; This is list of symbols added in Win32s 1.25, available in all Win9x versions and since Windows NT 3.51
682GetPrivateProfileSectionNamesA@12
683GetPrivateProfileSectionNamesW@12
684GetPrivateProfileStructA@20
685GetPrivateProfileStructW@20
686GetSystemPowerStatus@4
687
688; This is list of symbols added in Win32s 1.25, available since Windows NT 3.1, but not available in Win9x
689AddConsoleAliasA@12
690
691; This is list of symbols added in Win32s 1.25, available since Windows 2000, but not available in Win9x
692GetConsoleCharType@12
693GetConsoleCursorMode@12
694GetConsoleNlsMode@8
695SetConsoleCursorMode@12
696SetConsoleLocalEUDC@16
697SetConsoleNlsMode@8
698
699; This is list of symbols added in Win32s 1.25 and available only in Win32s (not available in Win9x and WinNT)
700; TlsCleanEntries@4
701
702; This is list of symbols added in Win32s 1.30, available in all Win9x versions and since Windows NT 3.5
703HeapCompact@8
704HeapLock@4
705HeapUnlock@4
706HeapWalk@8
707
708; This is list of symbols added in Win32s 1.30, available in all Win9x versions and since Windows NT 3.51
709GetProcessVersion@4
710GetSystemTimeAsFileTime@4
711PostQueuedCompletionStatus@16
712SetSystemPowerState@8
713WritePrivateProfileStructA@20
714WritePrivateProfileStructW@20
715
716; This is list of symbols added in Win32s 1.30, available since Windows 98 and since Windows NT 3.51
717IsDebuggerPresent@0
718
719; This is list of symbols added in Win32s 1.30, available since Windows NT 3.51, but not available in Win9x
720HeapCreateTagsW@16 ; removed in Windows Vista
721HeapExtend@16 ; removed in Windows Vista
722HeapQueryTagW@20 ; removed in Windows Vista
723HeapSummary@12
724HeapUsage@20 ; removed in Windows Vista
725
726;; This is end of Win32s symbols ;;
727
728
729; This is list of symbols available only in Windows NT 3.1, not available in Win32s and Win9x
730; ValidateLCID@8 ; removed in Windows NT 3.5
731
732;; This is end of Windows NT 3.1 symbols ;;
733
734
735; This is list of symbols added in Windows NT 3.51 SP3 and Windows 98, but not available in Win32s
736ConvertThreadToFiber@4
737CreateFiber@12
738DeleteFiber@4
739ReadDirectoryChangesW@32
740SwitchToFiber@4
741
742;; This is end of Windows NT 3.51 symbols ;;
743
744
745; This is list of symbols added in Windows NT 4.0 and available also in all Win9x versions, but not available in Win32s
746QueueUserAPC@12
747
748; This is list of symbols added in Windows NT 4.0 and Windows 95 OSR2, but not available in Win32s
749GetDiskFreeSpaceExA@16
750GetDiskFreeSpaceExW@16
751
752; This is list of symbols added in Windows NT 4.0 and Windows 98, but not available in Win32s
753CancelIo@4
754CancelWaitableTimer@4
755CopyFileExA@24
756CopyFileExW@24
757CreateWaitableTimerA@12
758CreateWaitableTimerW@12
759FindFirstFileExA@24
760FindFirstFileExW@24
761GetFileAttributesExA@12
762GetFileAttributesExW@12
763GetProcessPriorityBoost@8
764GetThreadPriorityBoost@8
765InterlockedCompareExchange@12 DATA ; FIXME: why is decorated stdcall function symbol disabled?
766InterlockedExchangeAdd@8 DATA ; FIXME: why is decorated stdcall function symbol disabled?
767IsProcessorFeaturePresent@4
768OpenWaitableTimerA@12
769OpenWaitableTimerW@12
770SetProcessAffinityMask@8
771SetProcessPriorityBoost@8
772SetThreadIdealProcessor@8
773SetThreadPriorityBoost@8
774SetWaitableTimer@24
775SignalObjectAndWait@16
776SwitchToThread@0
777TryEnterCriticalSection@4
778VirtualAllocEx@20
779VirtualFreeEx@16
780
781; This is list of symbols added in Windows NT 4.0, but not available in Win9x and Win32s
782GetConsoleInputExeNameA@8
783GetConsoleInputExeNameW@8
784GetConsoleKeyboardLayoutNameA@4
785GetConsoleKeyboardLayoutNameW@4
786ReadConsoleInputExA@20
787ReadConsoleInputExW@20
788SetConsoleIcon@4
789SetConsoleInputExeNameA@4
790SetConsoleInputExeNameW@4
791
792; This is list of symbols added in Windows NT 4.0 SP2 and Windows 98, but not available in Win32s
793ReadFileScatter@20
794WriteFileGather@20
795
796; This is list of symbols added in Windows NT 4.0 SP3 and Windows 98, but not available in Win32s
797InitializeCriticalSectionAndSpinCount@8
798SetCriticalSectionSpinCount@8
799
800; This is list of symbols added in Windows NT 4.0 SP4, but not available in Win32s and Win9x
801VerifyVersionInfoA@16
802VerifyVersionInfoW@16
803
804;; This is end of Windows NT 4.0 symbols ;;
805
806
807; This is list of symbols available in all Win9x versions and also since Windows 2000, but not available in Win32s
808CreateToolhelp32Snapshot@8
809Heap32First@12
810Heap32ListFirst@8
811Heap32ListNext@8
812Heap32Next@4
813Module32First@8
814Module32Next@8
815Process32First@8
816Process32Next@8
817Thread32First@8
818Thread32Next@8
819Toolhelp32ReadProcessMemory@20
820
821; This is list of symbols available in all Win9x versions and also since Windows XP, but not available in Win32s
822CreateSocketHandle@0
823GetHandleContext@4
824SetHandleContext@8
825
826; This is list of symbols available in all Win9x versions and also since Windows Vista, but not available in Win32s
827GetErrorMode@0
828
829; This is list of ordinal-only symbols available in all Win9x versions, but not available in Win32s and WinNT
830; Symbol names are taken from:
831; https://www.geoffchappell.com/studies/windows/win32/kernel32/history/ords40.htm
832; VxDCall0@4 @1 NONAME ; stdcall+regs
833; VxDCall1@8 @2 NONAME ; stdcall+regs
834; VxDCall2@12 @3 NONAME ; stdcall+regs
835; VxDCall3@16 @4 NONAME ; stdcall+regs
836; VxDCall4@20 @5 NONAME ; stdcall+regs
837; VxDCall5@24 @6 NONAME ; stdcall+regs
838; VxDCall6@28 @7 NONAME ; stdcall+regs
839; VxDCall7@32 @8 NONAME ; stdcall+regs
840; VxDCall8@36 @9 NONAME ; stdcall+regs
841; k32CharToOemA@8 @10 NONAME
842; k32CharToOemBuffA@12 @11 NONAME
843; k32OemToCharA@8 @12 NONAME
844; k32OemToCharBuffA@12 @13 NONAME
845; k32LoadStringA@16 @14 NONAME
846; k32wsprintfA @15 NONAME ; cdecl/varargs
847; k32wvsprintfA@12 @16 NONAME
848; CommonUnimpStub @17 NONAME ; regs
849; GetProcessDword@8 @18 NONAME
850; ThunkTheTemplateHandle@4 @19 NONAME
851; DosFileHandleToWin32Handle@4 @20 NONAME
852; Win32HandleToDosFileHandle@4 @21 NONAME
853; DisposeLZ32Handle@4 @22 NONAME
854; GDIReallyCares@4 @23 NONAME
855; GlobalAlloc16@8 @24 NONAME
856; GlobalLock16@4 @25 NONAME
857; GlobalUnlock16@4 @26 NONAME
858; GlobalFix16@4 @27 NONAME
859; GlobalUnfix16@4 @28 NONAME
860; GlobalWire16@4 @29 NONAME
861; GlobalUnWire16@4 @30 NONAME
862; GlobalFree16@4 @31 NONAME
863; GlobalSize16@4 @32 NONAME
864; HouseCleanLogicallyDeadHandles@0 @33 NONAME
865; GetWin16DOSEnv@0 @34 NONAME
866; LoadLibrary16@4 @35 NONAME
867; FreeLibrary16@4 @36 NONAME
868; GetProcAddress16@8 @37 NONAME
869; AllocMappedBuffer @38 NONAME ; regs
870; FreeMappedBuffer @39 NONAME ; regs
871; OT_32ThkLSF @40 NONAME ; regs
872; ThunkInitLSF@20 @41 NONAME
873; LogApiThkLSF@4 @42 NONAME
874; ThunkInitLS@20 @43 NONAME
875; LogApiThkSL@4 @44 NONAME
876; Common32ThkLS @45 NONAME ; regs+stack
877; ThunkInitSL@20 @46 NONAME
878; LogCBThkSL@4 @47 NONAME
879; ReleaseThunkLock@4 @48 NONAME
880; RestoreThunkLock@4 @49 NONAME
881; AddAtomA@4 @50 ; Ordinal 50 is exported also with symbol name AddAtomA
882; W32S_BackTo32 @51 NONAME ; regs+stack
883; GetThunkBuff@0 @52 NONAME
884; GetThunkStuff@8 @53 NONAME
885; WOWCallback16@8 @54 NONAME ; MSDN says this is exported from wow32.dll
886; WOWCallback16Ex@20 @55 NONAME ; MSDN says this is exported from wow32.dll
887; WOWGetVDMPointer@12 @56 NONAME ; MSDN says this is exported from wow32.dll
888; WOWHandle32@8 @57 NONAME ; MSDN says this is exported from wow32.dll
889; WOWHandle16@8 @58 NONAME ; MSDN says this is exported from wow32.dll
890; WOWGlobalAlloc16@8 @59 NONAME ; MSDN says this is exported from wow32.dll
891; WOWGlobalLock16@4 @60 NONAME ; MSDN says this is exported from wow32.dll
892; WOWGlobalUnlock16@4 @61 NONAME ; MSDN says this is exported from wow32.dll
893; WOWGlobalFree16@4 @62 NONAME ; MSDN says this is exported from wow32.dll
894; WOWGlobalAllocLock16@12 @63 NONAME ; MSDN says this is exported from wow32.dll
895; WOWGlobalUnlockFree16@4 @64 NONAME ; MSDN says this is exported from wow32.dll
896; WOWGlobalLockSize16@8 @65 NONAME ; MSDN says this is exported from wow32.dll
897; WOWYield16@0 @66 NONAME ; MSDN says this is exported from wow32.dll
898; WOWDirectedYield16@4 @67 NONAME ; MSDN says this is exported from wow32.dll
899; WOWGetVDMPointerFix@12 @68 NONAME ; MSDN says this is exported from wow32.dll
900; WOWGetVDMPointerUnfix@4 @69 NONAME ; MSDN says this is exported from wow32.dll
901; WOWGetDescriptor@8 @70 NONAME ; MSDN says this is exported from wow32.dll
902; IsThreadId@4 @71 NONAME
903; RtlLargeIntegerAdd@16 @72 NONAME ; MSDN says this is exported from ntdll.dll
904; RtlEnlargedIntegerMultiply@8 @73 NONAME ; MSDN says this is exported from ntdll.dll
905; RtlEnlargedUnsignedMultiply@8 @74 NONAME ; MSDN says this is exported from ntdll.dll
906; RtlEnlargedUnsignedDivide@16 @75 NONAME ; MSDN says this is exported from ntdll.dll
907; RtlEnlargedIntegerDivide@16 @76 NONAME ; MSDN says this is exported from ntdll.dll
908; RtlExtendedMagicDivide@20 @77 NONAME ; MSDN says this is exported from ntdll.dll
909; RtlExtendedIntegerMultiply@12 @78 NONAME ; MSDN says this is exported from ntdll.dll
910; RtlLargeIntegerShiftLeft@12 @79 NONAME ; MSDN says this is exported from ntdll.dll
911; RtlLargeIntegerShiftRight@12 @80 NONAME ; MSDN says this is exported from ntdll.dll
912; RtlLargeIntegerArithmeticShift@12 @81 NONAME ; MSDN says this is exported from ntdll.dll
913; RtlLargeIntegerNegate@8 @82 NONAME ; MSDN says this is exported from ntdll.dll
914; RtlLargeIntegerSubtract@16 @83 NONAME ; MSDN says this is exported from ntdll.dll
915; RtlConvertLongToLargeInteger@4 @84 NONAME ; MSDN says this is exported from ntdll.dll
916; RtlConvertUlongToLargeInteger@4 @85 NONAME ; MSDN says this is exported from ntdll.dll
917; _LeaveSysLevel_NoThk@4 @86 NONAME
918; SSOnBigStack@0 @87 NONAME
919; SSCall @88 NONAME ; cdecl/varargs
920; FT_PrologPrime @89 NONAME ; regs+stack
921; QT_ThunkPrime @90 NONAME ; regs+stack
922; PK16FNF@4 @91 NONAME
923; GetPK16SysVar@0 @92 NONAME
924; GetpWin16Lock@4 @93 NONAME
925; _CheckNotSysLevel@4 @94 NONAME
926; _ConfirmSysLevel@4 @95 NONAME
927; _ConfirmWin16Lock@0 @96 NONAME
928; _EnterSysLevel@4 @97 NONAME ; really stdcall @4; gendef detects it incorrectly
929; _LeaveSysLevel@4 @98 NONAME
930; RefreshDaylightInformation@4 @99 NONAME
931; TerminateThreadEx@12 @100 NONAME
932; BoostFileCache@4 @101 NONAME
933
934; This is list of symbols available in all Win9x versions, but not available in Win32s and WinNT
935; AllocLSCallback@8
936; AllocSLCallback@8
937; Callback12@12
938; Callback16@16
939; Callback20@20
940; Callback24@24
941; Callback28@28
942; Callback32@32
943; Callback36@36
944; Callback40@40
945; Callback44@44
946; Callback48@48
947; Callback4@4
948; Callback52@52
949; Callback56@56
950; Callback60@60
951; Callback64@64
952; Callback8@8
953; CloseSystemHandle@4
954; ConvertToGlobalHandle@4
955; CreateKernelThread@24
956; FT_Exit0 ; no stdcall decoration in msvc thunk32.lib
957; FT_Exit12 ; no stdcall decoration in msvc thunk32.lib
958; FT_Exit16 ; no stdcall decoration in msvc thunk32.lib
959; FT_Exit20 ; no stdcall decoration in msvc thunk32.lib
960; FT_Exit24 ; no stdcall decoration in msvc thunk32.lib
961; FT_Exit28 ; no stdcall decoration in msvc thunk32.lib
962; FT_Exit32 ; no stdcall decoration in msvc thunk32.lib
963; FT_Exit36 ; no stdcall decoration in msvc thunk32.lib
964; FT_Exit4 ; no stdcall decoration in msvc thunk32.lib
965; FT_Exit40 ; no stdcall decoration in msvc thunk32.lib
966; FT_Exit44 ; no stdcall decoration in msvc thunk32.lib
967; FT_Exit48 ; no stdcall decoration in msvc thunk32.lib
968; FT_Exit52 ; no stdcall decoration in msvc thunk32.lib
969; FT_Exit56 ; no stdcall decoration in msvc thunk32.lib
970; FT_Exit8 ; no stdcall decoration in msvc thunk32.lib
971; FT_Prolog ; no stdcall decoration in msvc thunk32.lib
972; FT_Thunk ; no stdcall decoration in msvc thunk32.lib
973; FreeLSCallback@4
974; FreeSLCallback@4
975; GetDaylightFlag@0
976; GetLSCallbackTarget@4
977; GetLSCallbackTemplate@4
978; GetProcessFlags@4
979; GetProductName@8
980; GetSLCallbackTarget@4
981; GetSLCallbackTemplate@4
982; HeapSetFlags@8
983; InvalidateNLSCache@0
984; IsLSCallback@4
985; IsSLCallback@4
986; K32Thk1632Epilog@0
987; K32Thk1632Prolog@0
988; MakeCriticalSectionGlobal@4
989; MapHInstLS ; no stdcall decoration in msvc thunk32.lib
990; MapHInstLS_PN ; no stdcall decoration in msvc thunk32.lib
991; MapHInstSL ; no stdcall decoration in msvc thunk32.lib
992; MapHInstSL_PN ; no stdcall decoration in msvc thunk32.lib
993; MapHModuleLS@4
994; MapHModuleSL@4
995; MapLS@4
996; MapSL@4
997; MapSLFix@4
998; NotifyNLSUserCache@12
999; OpenVxDHandle@4
1000; QT_Thunk ; no stdcall decoration in msvc thunk32.lib
1001; QueryNumberOfEventLogRecords@8
1002; QueryOldestEventLogRecord@8
1003; RegisterServiceProcess@8
1004; ReinitializeCriticalSection@4
1005; SMapLS ; no stdcall decoration in msvc thunk32.lib
1006; SMapLS_IP_EBP_12 ; no stdcall decoration in msvc thunk32.lib
1007; SMapLS_IP_EBP_16 ; no stdcall decoration in msvc thunk32.lib
1008; SMapLS_IP_EBP_20 ; no stdcall decoration in msvc thunk32.lib
1009; SMapLS_IP_EBP_24 ; no stdcall decoration in msvc thunk32.lib
1010; SMapLS_IP_EBP_28 ; no stdcall decoration in msvc thunk32.lib
1011; SMapLS_IP_EBP_32 ; no stdcall decoration in msvc thunk32.lib
1012; SMapLS_IP_EBP_36 ; no stdcall decoration in msvc thunk32.lib
1013; SMapLS_IP_EBP_40 ; no stdcall decoration in msvc thunk32.lib
1014; SMapLS_IP_EBP_8 ; no stdcall decoration in msvc thunk32.lib
1015; SUnMapLS ; no stdcall decoration in msvc thunk32.lib
1016; SUnMapLS_IP_EBP_12 ; no stdcall decoration in msvc thunk32.lib
1017; SUnMapLS_IP_EBP_16 ; no stdcall decoration in msvc thunk32.lib
1018; SUnMapLS_IP_EBP_20 ; no stdcall decoration in msvc thunk32.lib
1019; SUnMapLS_IP_EBP_24 ; no stdcall decoration in msvc thunk32.lib
1020; SUnMapLS_IP_EBP_28 ; no stdcall decoration in msvc thunk32.lib
1021; SUnMapLS_IP_EBP_32 ; no stdcall decoration in msvc thunk32.lib
1022; SUnMapLS_IP_EBP_36 ; no stdcall decoration in msvc thunk32.lib
1023; SUnMapLS_IP_EBP_40 ; no stdcall decoration in msvc thunk32.lib
1024; SUnMapLS_IP_EBP_8 ; no stdcall decoration in msvc thunk32.lib
1025; SetDaylightFlag@4
1026; ThunkConnect32@24
1027; TlsAllocInternal@0
1028; TlsFreeInternal@4
1029; UnMapLS@4
1030; UnMapSLFixArray@8
1031; UninitializeCriticalSection@4
1032; _DebugOut
1033; _DebugPrintf
1034; dprintf
1035
1036; This is list of ordinal-only symbols added in Windows 98, but not available in Win32s and WinNT
1037; Symbol names are taken from:
1038; https://www.geoffchappell.com/studies/windows/win32/kernel32/history/ords410.htm
1039; TlsAllocGlobal@0 @102 NONAME
1040; TlsFreeGlobal@4 @103 NONAME
1041; RPCHACKORAMA@0 @104 NONAME
1042; lstrtolW@12 @105 NONAME
1043; k32wcsicmp@8 @106 NONAME
1044; k32wcsupr@4 @107 NONAME
1045; lstrchrA@8 @108 NONAME
1046; lstrcspnA@8 @109 NONAME
1047; lstrncpyA@12 @110 NONAME
1048; lstrrchrA@8 @111 NONAME
1049; lstrstrA@8 @112 NONAME
1050; lstrchrW@8 @113 NONAME
1051; k32wcscmp@8 @114 NONAME
1052; k32wcsncmp@12 @115 NONAME
1053; lstrncpyW@12 @116 NONAME
1054; k32iswctype@8 @117 NONAME
1055; AddAtomW@4 @118 ; Ordinal 118 is exported also with symbol name AddAtomW, Windows 95 exports AddAtomW with ordinal 102
1056; k32towupper@4 @119 NONAME
1057; GetCryptApiExponentValue@0 @120 NONAME
1058; ThunkConnect32NonLocking@24 @121 NONAME
1059; SetTaskmonControl@8 @122 NONAME
1060
1061; This is list of symbols added in Windows 98, but not available in Win32s and WinNT
1062; K32_NtCreateFile@44
1063; K32_RtlNtStatusToDosError@4
1064; RegisterSysMsgHandler@20
1065; ResetNLSUserInfoCache@0
1066; SignalSysMsgHandlers@16
1067
1068; This is list of symbols added in Windows 98 and also since Windows 2000, but not available in Win32s
1069CancelDeviceWakeupRequest@4
1070EnumCalendarInfoExA@16
1071EnumCalendarInfoExW@16
1072EnumDateFormatsExA@12
1073EnumDateFormatsExW@12
1074GetCPInfoExA@12
1075GetCPInfoExW@12
1076GetCalendarInfoA@24
1077GetCalendarInfoW@24
1078GetDevicePowerState@8
1079GetLongPathNameA@12
1080GetLongPathNameW@12
1081GetWriteWatch@24
1082IsSystemResumeAutomatic@0
1083RequestDeviceWakeup@4
1084RequestWakeupLatency@4
1085ResetWriteWatch@8
1086SetCalendarInfoA@16
1087SetCalendarInfoW@16
1088SetMessageWaitingIndicator@8
1089SetThreadExecutionState@4
1090
1091; This is list of ordinal-only symbols added in Windows ME, but not available in Win32s and WinNT
1092; Symbol names are taken from:
1093; https://www.geoffchappell.com/studies/windows/win32/kernel32/history/ords490.htm
1094; GetModuleNameFromProc@16 @123 NONAME
1095
1096; This is list of symbols added in Windows ME and also since Windows 2000, but not available in Win32s
1097EnumLanguageGroupLocalesA@16
1098EnumLanguageGroupLocalesW@16
1099EnumSystemLanguageGroupsA@12
1100EnumSystemLanguageGroupsW@12
1101EnumUILanguagesA@12
1102EnumUILanguagesW@12
1103GetSystemDefaultUILanguage@0
1104GetUserDefaultUILanguage@0
1105IsValidLanguageGroup@8
1106OpenThread@12 ; Win32s contains "OpenThread" symbol but ABI is "OpenThread@4"
1107
1108; This is list of symbols added in Windows ME and also since Windows XP, but not available in Win32s
1109EnumSystemGeoID@12
1110GetGeoInfoA@20
1111GetGeoInfoW@20
1112GetUserGeoID@4
1113SetUserGeoID@4
1114
1115;; This is end of Win9x symbols ;;
1116
1117
1118; This is list of symbols added in Windows 2000
1119AllocateUserPhysicalPages@12
1120AssignProcessToJobObject@8
1121BindIoCompletionCallback@12
1122CancelTimerQueueTimer@8
1123ChangeTimerQueueTimer@16
1124CreateHardLinkA@12
1125CreateHardLinkW@12
1126CreateJobObjectA@8
1127CreateJobObjectW@8
1128CreateTimerQueue@0
1129CreateTimerQueueTimer@28
1130DelayLoadFailureHook@8
1131DeleteTimerQueue@4
1132DeleteTimerQueueEx@8
1133DeleteTimerQueueTimer@12
1134DeleteVolumeMountPointA@4
1135DeleteVolumeMountPointW@4
1136DnsHostnameToComputerNameA@12
1137DnsHostnameToComputerNameW@12
1138DosPathToSessionPathA@12
1139DosPathToSessionPathW@12
1140FindFirstVolumeA@8
1141FindFirstVolumeMountPointA@12
1142FindFirstVolumeMountPointW@12
1143FindFirstVolumeW@8
1144FindNextVolumeA@12
1145FindNextVolumeMountPointA@12
1146FindNextVolumeMountPointW@12
1147FindNextVolumeW@12
1148FindVolumeClose@4
1149FindVolumeMountPointClose@4
1150FreeUserPhysicalPages@12
1151GetComputerNameExA@12
1152GetComputerNameExW@12
1153GetConsoleWindow@0
1154; GetDefaultSortkeySize@4 ; removed in Windows Vista
1155GetFileSizeEx@8
1156; GetLinguistLangSize@4 ; removed in Windows Vista
1157; GetNlsSectionName@24 ; FIXME: Windows 2000 and Windows XP prior SP1 has ABI "GetNlsSectionName@20", Windows XP SP1 and new has ABI "GetNlsSectionName@24", removed in Windows Vista
1158GetProcessIoCounters@8
1159GetSystemWindowsDirectoryA@8
1160GetSystemWindowsDirectoryW@8
1161GetVolumeNameForVolumeMountPointA@12
1162GetVolumeNameForVolumeMountPointW@12
1163GetVolumePathNameA@12
1164GetVolumePathNameW@12
1165GlobalMemoryStatusEx@4
1166MapUserPhysicalPages@12
1167MapUserPhysicalPagesScatter@12
1168Module32FirstW@8
1169Module32NextW@8
1170MoveFileWithProgressA@20
1171MoveFileWithProgressW@20
1172NlsConvertIntegerToString@20 ; removed in Windows 7
1173NlsGetCacheUpdateCount@0
1174; NlsResetProcessLocale@0 ; removed in Windows Vista
1175; OpenDataFile@8 ; removed in Windows Vista
1176OpenJobObjectA@12
1177OpenJobObjectW@12
1178PrivCopyFileExW@24
1179PrivMoveFileIdentityW@12
1180Process32FirstW@8
1181Process32NextW@8
1182ProcessIdToSessionId@8
1183QueryInformationJobObject@20
1184QueueUserWorkItem@12
1185RegisterConsoleIME@8
1186RegisterConsoleOS2@4
1187RegisterWaitForSingleObject@24
1188RegisterWaitForSingleObjectEx@20
1189ReplaceFile@24
1190ReplaceFileA@24
1191ReplaceFileW@24
1192; SetCPGlobal@4 ; removed in Windows Vista
1193SetComputerNameExA@8
1194SetComputerNameExW@8
1195SetConsoleOS2OemFormat@4
1196SetFilePointerEx@20
1197SetInformationJobObject@16
1198SetTermsrvAppInstallMode@4
1199SetTimerQueueTimer@24
1200SetVolumeMountPointA@8
1201SetVolumeMountPointW@8
1202TerminateJobObject@8
1203TermsrvAppInstallMode@0
1204UnregisterConsoleIME@0
1205UnregisterWait@4
1206UnregisterWaitEx@8
1207; ValidateLCType@16 ; removed in Windows Vista
1208; ValidateLocale@4 ; removed in Windows Vista
1209VerSetConditionMask@16
1210
1211; In Windows 2000 SP1 was not added any new symbol
1212
1213; In Windows 2000 SP2 was not added any new symbol
1214
1215; This is list of symbols added in Windows 2000 SP3
1216CreateFiberEx@20
1217CreateProcessInternalA@48 ; FIXME: Windows 2000 SP3 and SP4 has ABI "CreateProcessInternalA@44", Windows XP and new has ABI "CreateProcessInternalA@48"
1218CreateProcessInternalW@48 ; FIXME: Windows 2000 SP3 and SP4 has ABI "CreateProcessInternalW@44", Windows XP and new has ABI "CreateProcessInternalW@48"
1219
1220; This is list of symbols added in Windows 2000 SP4
1221; CreateProcessInternalWSecure@0 ; CreateProcessInternalWSecure is not available in Windows XP prior SP2, removed in Windows Server 2003
1222
1223; This is list of symbols added in Windows XP
1224ActivateActCtx@8
1225AddLocalAlternateComputerNameA@8
1226AddLocalAlternateComputerNameW@8
1227AddRefActCtx@4
1228AddVectoredExceptionHandler@8
1229AttachConsole@4
1230BaseCheckAppcompatCache@16
1231; BaseCleanupAppcompatCache@0 ; removed in Windows Server 2003
1232BaseCleanupAppcompatCacheSupport@4
1233BaseDumpAppcompatCache@0
1234BaseFlushAppcompatCache@0
1235; BaseInitAppcompatCache@0 ; removed in Windows Server 2003
1236BaseInitAppcompatCacheSupport@0
1237; BaseProcessInitPostImport@0 ; removed in Windows Vista
1238BaseUpdateAppcompatCache@12
1239ConvertFiberToThread@0
1240; CopyLZFile@8 ; MSDN says this is exported from lz32.dll
1241CreateActCtxA@4
1242CreateActCtxW@4
1243CreateJobSet@12
1244CreateMemoryResourceNotification@4
1245DeactivateActCtx@8
1246DebugActiveProcessStop@4
1247DebugBreakProcess@4
1248DebugSetProcessKillOnExit@4
1249EnumerateLocalComputerNamesA@16
1250EnumerateLocalComputerNamesW@16
1251FindActCtxSectionGuid@20
1252FindActCtxSectionStringA@20
1253FindActCtxSectionStringW@20
1254GetComPlusPackageInstallStatus@0
1255GetConsoleProcessList@8
1256GetConsoleSelectionInfo@4
1257GetCurrentActCtx@4
1258; GetExpandedNameA@8 ; MSDN says this is exported from lz32.dll
1259; GetExpandedNameW@8 ; MSDN says this is exported from lz32.dll
1260GetFirmwareEnvironmentVariableA@16
1261GetFirmwareEnvironmentVariableW@16
1262GetModuleHandleExA@12
1263GetModuleHandleExW@12
1264GetNativeSystemInfo@4
1265; GetNumaAvailableMemory@12 ; removed in Windows Server 2003
1266GetNumaAvailableMemoryNode@8
1267GetNumaHighestNodeNumber@4
1268GetNumaNodeProcessorMask@8
1269; GetNumaProcessorMap@12 ; removed in Windows Server 2003
1270GetNumaProcessorNode@8
1271GetSystemWow64DirectoryA@8
1272GetSystemWow64DirectoryW@8
1273GetVolumePathNamesForVolumeNameA@16
1274GetVolumePathNamesForVolumeNameW@16
1275HeapQueryInformation@20
1276HeapSetInformation@16
1277InitializeSListHead@4
1278InterlockedFlushSList@4
1279InterlockedPopEntrySList@4
1280InterlockedPushEntrySList@8
1281IsProcessInJob@12
1282; IsValidUILanguage@4 ; removed in Windows Vista
1283IsWow64Process@8
1284; LZClose@4 ; MSDN says this is exported from lz32.dll
1285; LZCloseFile@4 ; MSDN says this is exported from lz32.dll
1286; LZCopy@8 ; MSDN says this is exported from lz32.dll
1287; LZCreateFileW@20 ; MSDN says this is exported from lz32.dll
1288; LZDone@0 ; MSDN says this is exported from lz32.dll
1289; LZInit@4 ; MSDN says this is exported from lz32.dll
1290; LZOpenFileA@12 ; MSDN says this is exported from lz32.dll
1291; LZOpenFileW@12 ; MSDN says this is exported from lz32.dll
1292; LZRead@12 ; MSDN says this is exported from lz32.dll
1293; LZSeek@12 ; MSDN says this is exported from lz32.dll
1294; LZStart@0 ; MSDN says this is exported from lz32.dll
1295; NumaVirtualQueryNode@16 ; removed in Windows Server 2003
1296QueryActCtxW@28
1297QueryDepthSList@4
1298QueryMemoryResourceNotification@8
1299ReleaseActCtx@4
1300RemoveLocalAlternateComputerNameA@8
1301RemoveLocalAlternateComputerNameW@8
1302RemoveVectoredExceptionHandler@4
1303RestoreLastError@4
1304RtlCaptureContext@4
1305RtlCaptureStackBackTrace@16
1306SetClientTimeZoneInformation@4 ; removed in Windows 8
1307SetComPlusPackageInstallStatus@4
1308SetFileShortNameA@8
1309SetFileShortNameW@8
1310SetFileValidData@12
1311SetFirmwareEnvironmentVariableA@16
1312SetFirmwareEnvironmentVariableW@16
1313SetLocalPrimaryComputerNameA@8
1314SetLocalPrimaryComputerNameW@8
1315SetThreadUILanguage@4
1316TzSpecificLocalTimeToSystemTime@12
1317WTSGetActiveConsoleSessionId@0
1318ZombifyActCtx@4
1319
1320; This is list of symbols added in Windows XP SP1
1321CheckNameLegalDOS8Dot3A@20
1322CheckNameLegalDOS8Dot3W@20
1323CheckRemoteDebuggerPresent@8
1324; CreateNlsSecurityDescriptor@12 ; removed in Windows Vista
1325GetCPFileNameFromRegistry@12 ; removed in Windows 7
1326GetDllDirectoryA@8
1327GetDllDirectoryW@8
1328GetProcessHandleCount@8
1329GetProcessId@4
1330GetSystemRegistryQuota@8
1331GetSystemTimes@12
1332GetThreadIOPendingFlag@8
1333SetDllDirectoryA@4
1334SetDllDirectoryW@4
1335
1336; This is list of symbols added in Windows XP SP2 and Windows Server 2003 SP1 (not available in Server 2003 without SP1)
1337BaseQueryModuleData@28 ; FIXME: Windows XP and Server 2003 has ABI "BaseQueryModuleData@20", Windows Vista and new has ABI "BaseQueryModuleData@28"
1338BasepCheckWinSaferRestrictions@28 ; FIXME: Windows XP and Server 2003 has ABI "BasepCheckWinSaferRestrictions@24", Windows Vista has ABI "BasepCheckWinSaferRestrictions@28", Windows 7 has ABI "BasepCheckWinSaferRestrictions@12", Windows 8 and new has ABI "BasepCheckWinSaferRestrictions@16"
1339DecodePointer@4
1340DecodeSystemPointer@4
1341EncodePointer@4
1342EncodeSystemPointer@4
1343
1344; This is list of symbols added in Windows XP SP3
1345GetLogicalProcessorInformation@8
1346
1347; This is list of symbols added in Windows XP SP3 and Windows Vista SP1 (not available in any version of Windows Server 2003, not available in Windows Vista without SP1)
1348GetProcessDEPPolicy@12
1349GetSystemDEPPolicy@0
1350SetProcessDEPPolicy@4
1351
1352; This is list of symbols added in Windows Server 2003
1353BaseIsAppcompatInfrastructureDisabled@0
1354ConvertThreadToFiberEx@8
1355FindFirstStreamW@16
1356FindNextStreamW@8
1357FlsAlloc@4
1358FlsFree@4
1359FlsGetValue@4
1360FlsSetValue@8
1361GetCurrentProcessorNumber@0
1362GetLargePageMinimum@0
1363GetNLSVersion@12
1364GetProcessIdOfThread@4
1365GetProcessWorkingSetSizeEx@16
1366GetThreadId@4
1367InterlockedCompareExchange64@20 DATA ; FIXME: why is decorated stdcall function symbol disabled?
1368IsNLSDefinedString@20
1369IsTimeZoneRedirectionEnabled@0 ; removed in Windows 8
1370NeedCurrentDirectoryForExePathA@4
1371NeedCurrentDirectoryForExePathW@4
1372ReOpenFile@16
1373SetEnvironmentStringsA@4
1374SetEnvironmentStringsW@4
1375SetProcessWorkingSetSizeEx@16
1376Wow64EnableWow64FsRedirection@4
1377
1378; This is list of symbols added in Windows Server 2003 SP1 and Windows XP x64 SP1 (WoW64 version)
1379AddVectoredContinueHandler@8
1380BaseCheckRunApp@52 ; FIXME: Windows Server 2003 has ABI "BaseCheckRunApp@40", Windows Vista and 7 has ABI "BaseCheckRunApp@52", Windows 8 has ABI "BaseCheckRunApp@56", Windows 8.1 has ABI "BaseCheckRunApp@60", removed in Windows 10
1381; BaseProcessStartThunk@0 ; available only in 32-bit WoW64 version on 64-bit system, removed in Windows Vista
1382; BaseThreadStartThunk@0 ; available only in 32-bit WoW64 version on 64-bit system, removed in Windows Vista
1383BasepCheckBadapp@56 ; FIXME: Windows Server 2003 has ABI "BasepCheckBadapp@36", Windows Vista has ABI "BasepCheckBadapp@56", Windows 7 has ABI "BasepCheckBadapp@60", Windows 8 and Windows 8.1 has ABI "BasepCheckBadapp@72", removed in Windows 10
1384BasepFreeAppCompatData@12 ; FIXME: Windows Server 2003 has ABI "BasepFreeAppCompatData@8", Windows Vista and new has ABI "BasepFreeAppCompatData@12"
1385ConsoleIMERoutine@4 ; available only in 32-bit WoW64 version on 64-bit system
1386CtrlRoutine@4 ; available only in 32-bit WoW64 version on 64-bit system, since Windows 7 available also on 32-bit system
1387EnumSystemFirmwareTables@12
1388GetSystemFileCacheSize@12
1389GetSystemFirmwareTable@16
1390RemoveVectoredContinueHandler@4
1391SetSystemFileCacheSize@12
1392SetThreadStackGuarantee@4
1393Wow64DisableWow64FsRedirection@4
1394Wow64RevertWow64FsRedirection@4
1395
1396; This is list of symbols added in Windows Server 2003 SP2 and Windows XP x64 SP2 (WoW64 version)
1397SetFileCompletionNotificationModes@8
1398
1399; This is list of symbols added in Windows Vista
1400AcquireSRWLockExclusive@4
1401AcquireSRWLockShared@4
1402AddSIDToBoundaryDescriptor@8
1403AdjustCalendarDate@12
1404AllocateUserPhysicalPagesNuma@16
1405ApplicationRecoveryFinished@4
1406ApplicationRecoveryInProgress@4
1407BaseGenerateAppCompatData@24
1408BaseThreadInitThunk@4 ; FIXME: Windows Vista has ABI "BaseThreadInitThunk@8", Windows Vista WoW64 has ABI "BaseThreadInitThunk@4", Windows Vista SP1 has ABI "BaseThreadInitThunk@16", Windows Vista SP2 has ABI "BaseThreadInitThunk@20", Windows 7 has ABI "BaseThreadInitThunk@8", Windows 8 and new has ABI "BaseThreadInitThunk@4"
1409CallbackMayRunLong@4
1410CancelIoEx@8
1411CancelSynchronousIo@4
1412CancelThreadpoolIo@4
1413CheckElevation@20
1414CheckElevationEnabled@4
1415CheckForReadOnlyResource@8
1416ClosePrivateNamespace@8
1417CloseThreadpool@4
1418CloseThreadpoolCleanupGroup@4
1419CloseThreadpoolCleanupGroupMembers@12
1420CloseThreadpoolIo@4
1421CloseThreadpoolTimer@4
1422CloseThreadpoolWait@4
1423CloseThreadpoolWork@4
1424CompareCalendarDates@12
1425CompareStringEx@36
1426CompareStringOrdinal@20
1427ConvertCalDateTimeToSystemTime@8
1428ConvertNLSDayOfWeekToWin32DayOfWeek@4
1429ConvertSystemTimeToCalDateTime@12
1430CopyFileTransactedA@28
1431CopyFileTransactedW@28
1432CreateBoundaryDescriptorA@8
1433CreateBoundaryDescriptorW@8
1434CreateDirectoryTransactedA@16
1435CreateDirectoryTransactedW@16
1436CreateEventExA@16
1437CreateEventExW@16
1438CreateFileMappingNumaA@28
1439CreateFileMappingNumaW@28
1440CreateFileTransactedA@40
1441CreateFileTransactedW@40
1442CreateHardLinkTransactedA@16
1443CreateHardLinkTransactedW@16
1444CreateMutexExA@16
1445CreateMutexExW@16
1446CreatePrivateNamespaceA@12
1447CreatePrivateNamespaceW@12
1448CreateSemaphoreExA@24
1449CreateSemaphoreExW@24
1450CreateSymbolicLinkA@12
1451CreateSymbolicLinkTransactedA@16
1452CreateSymbolicLinkTransactedW@16
1453CreateSymbolicLinkW@12
1454CreateThreadpool@4
1455CreateThreadpoolCleanupGroup@0
1456CreateThreadpoolIo@16
1457CreateThreadpoolTimer@12
1458CreateThreadpoolWait@12
1459CreateThreadpoolWork@12
1460CreateWaitableTimerExA@16
1461CreateWaitableTimerExW@16
1462DeleteBoundaryDescriptor@4
1463DeleteFileTransactedA@8
1464DeleteFileTransactedW@8
1465DeleteProcThreadAttributeList@4
1466DisassociateCurrentThreadFromCallback@4
1467EnumCalendarInfoExEx@24
1468EnumDateFormatsExEx@16
1469EnumResourceLanguagesExA@28
1470EnumResourceLanguagesExW@28
1471EnumResourceNamesExA@24
1472EnumResourceNamesExW@24
1473EnumResourceTypesExA@20
1474EnumResourceTypesExW@20
1475EnumSystemLocalesEx@16
1476EnumTimeFormatsEx@16
1477FindFirstFileNameTransactedW@20
1478FindFirstFileNameW@16
1479FindFirstFileTransactedA@28
1480FindFirstFileTransactedW@28
1481FindFirstStreamTransactedW@20
1482FindNLSString@28
1483FindNLSStringEx@40
1484FindNextFileNameW@12
1485FlushProcessWriteBuffers@0
1486FreeLibraryWhenCallbackReturns@8
1487GetApplicationRecoveryCallback@20
1488GetApplicationRestartSettings@16
1489GetCalendarDateFormat@24
1490GetCalendarDateFormatEx@24
1491GetCalendarDaysInMonth@16
1492GetCalendarDifferenceInDays@12
1493GetCalendarInfoEx@28
1494GetCalendarMonthsInYear@12
1495GetCalendarSupportedDateRange@12
1496GetCalendarWeekNumber@16
1497GetCompressedFileSizeTransactedA@12
1498GetCompressedFileSizeTransactedW@12
1499GetConsoleHistoryInfo@4
1500GetConsoleOriginalTitleA@8
1501GetConsoleOriginalTitleW@8
1502GetConsoleScreenBufferInfoEx@8
1503GetCurrencyFormatEx@24
1504GetCurrentConsoleFontEx@12
1505GetDateFormatEx@28
1506GetDurationFormat@32
1507GetDurationFormatEx@32
1508GetDynamicTimeZoneInformation@4
1509GetFileAttributesTransactedA@16
1510GetFileAttributesTransactedW@16
1511GetFileBandwidthReservation@24
1512GetFileInformationByHandleEx@16
1513GetFileMUIInfo@16
1514GetFileMUIPath@28
1515GetFinalPathNameByHandleA@16
1516GetFinalPathNameByHandleW@16
1517GetFullPathNameTransactedA@20
1518GetFullPathNameTransactedW@20
1519GetLocaleInfoEx@16
1520GetLongPathNameTransactedA@16
1521GetLongPathNameTransactedW@16
1522GetNLSVersionEx@12
1523GetNamedPipeAttribute@20
1524GetNamedPipeClientComputerNameA@12
1525GetNamedPipeClientComputerNameW@12
1526GetNamedPipeClientProcessId@8
1527GetNamedPipeClientSessionId@8
1528GetNamedPipeServerProcessId@8
1529GetNamedPipeServerSessionId@8
1530GetNumaProximityNode@8
1531GetNumberFormatEx@24
1532GetProductInfo@20
1533GetQueuedCompletionStatusEx@24
1534GetStringScripts@20
1535GetSystemDefaultLocaleName@8
1536GetSystemPreferredUILanguages@16
1537GetThreadPreferredUILanguages@16
1538GetThreadUILanguage@0
1539GetTickCount64@0
1540GetTimeFormatEx@24
1541GetUILanguageInfo@20
1542GetUserDefaultLocaleName@8
1543GetUserPreferredUILanguages@16
1544GetVolumeInformationByHandleW@32
1545IdnToAscii@20
1546IdnToNameprepUnicode@20
1547IdnToUnicode@20
1548InitOnceBeginInitialize@16
1549InitOnceComplete@12
1550InitOnceExecuteOnce@16
1551InitOnceInitialize@4
1552InitializeConditionVariable@4
1553InitializeCriticalSectionEx@12
1554InitializeProcThreadAttributeList@16
1555InitializeSRWLock@4
1556@InterlockedPushListSList@16 ; really fastcall calling convention
1557IsCalendarLeapDay@20
1558IsCalendarLeapMonth@16
1559IsCalendarLeapYear@12
1560IsNormalizedString@12
1561IsThreadAFiber@0
1562IsThreadpoolTimerSet@4
1563IsValidCalDateTime@8
1564IsValidLocaleName@4
1565LCIDToLocaleName@16
1566LCMapStringEx@36
1567LeaveCriticalSectionWhenCallbackReturns@8
1568LoadStringBaseExW@20
1569LoadStringBaseW@16
1570LocaleNameToLCID@8
1571MapViewOfFileExNuma@28
1572MoveFileTransactedA@24
1573MoveFileTransactedW@24
1574NlsCheckPolicy@8
1575NlsEventDataDescCreate@16 ; removed in Windows 10 May 2020 Update (20H1)
1576NlsUpdateLocale@8
1577NlsUpdateSystemLocale@8
1578NlsWriteEtwEvent@20 ; removed in Windows 10 May 2020 Update (20H1)
1579NormalizeString@20
1580NotifyUILanguageChange@20
1581OpenFileById@24
1582OpenPrivateNamespaceA@8
1583OpenPrivateNamespaceW@8
1584QueryActCtxSettingsW@28
1585QueryFullProcessImageNameA@16
1586QueryFullProcessImageNameW@16
1587QueryIdleProcessorCycleTime@8
1588QueryProcessCycleTime@8
1589QueryThreadCycleTime@8
1590RegisterApplicationRecoveryCallback@16
1591RegisterApplicationRestart@8
1592ReleaseMutexWhenCallbackReturns@8
1593ReleaseSRWLockExclusive@4
1594ReleaseSRWLockShared@4
1595ReleaseSemaphoreWhenCallbackReturns@12
1596RemoveDirectoryTransactedA@8
1597RemoveDirectoryTransactedW@8
1598SetConsoleHistoryInfo@4
1599SetConsoleScreenBufferInfoEx@8
1600SetCurrentConsoleFontEx@12
1601SetDynamicTimeZoneInformation@4
1602SetEventWhenCallbackReturns@8
1603SetFileAttributesTransactedA@12
1604SetFileAttributesTransactedW@12
1605SetFileBandwidthReservation@24
1606SetFileInformationByHandle@16
1607SetFileIoOverlappedRange@12
1608SetNamedPipeAttribute@20
1609SetStdHandleEx@12
1610SetThreadPreferredUILanguages@12
1611SetThreadpoolThreadMaximum@8
1612SetThreadpoolThreadMinimum@8
1613SetThreadpoolTimer@16
1614SetThreadpoolWait@12
1615SleepConditionVariableCS@12
1616SleepConditionVariableSRW@16
1617StartThreadpoolIo@4
1618SubmitThreadpoolWork@4
1619TrySubmitThreadpoolCallback@12
1620UnregisterApplicationRecoveryCallback@0
1621UnregisterApplicationRestart@0
1622UpdateCalendarDayOfWeek@4
1623UpdateProcThreadAttribute@28
1624VerifyScripts@20
1625VirtualAllocExNuma@24
1626WaitForThreadpoolIoCallbacks@8
1627WaitForThreadpoolTimerCallbacks@8
1628WaitForThreadpoolWaitCallbacks@8
1629WaitForThreadpoolWorkCallbacks@8
1630WakeAllConditionVariable@4
1631WakeConditionVariable@4
1632WerGetFlags@8
1633WerRegisterFile@12
1634WerRegisterMemoryBlock@8
1635WerSetFlags@4
1636WerUnregisterFile@4
1637WerUnregisterMemoryBlock@4
1638WerpCleanupMessageMapping@0 ; removed in Windows 10 Fall Creators Update (Redstone 3)
1639WerpInitiateRemoteRecovery@4
1640WerpNotifyLoadStringResource@16 ; removed in Windows 10 Fall Creators Update (Redstone 3)
1641WerpNotifyLoadStringResourceEx@20 ; removed in Windows 10 Fall Creators Update (Redstone 3)
1642WerpNotifyUseStringResource@4 ; removed in Windows 10 Fall Creators Update (Redstone 3)
1643WerpStringLookup@8 ; removed in Windows 10 Fall Creators Update (Redstone 3)
1644Wow64GetThreadContext@8
1645Wow64SetThreadContext@8
1646Wow64SuspendThread@4
1647
1648; This is list of symbols added in Windows Vista SP1
1649AddSecureMemoryCacheCallback@4
1650GetPhysicallyInstalledSystemMemory@4
1651GetTimeZoneInformationForYear@12
1652QueryProcessAffinityUpdateMode@8
1653RemoveSecureMemoryCacheCallback@4
1654ReplacePartitionUnit@12
1655SetProcessAffinityUpdateMode@8
1656
1657; This is list of symbols added in Windows Vista SP2
1658SetSearchPathMode@4
1659
1660; This is list of symbols added in Windows 7
1661AddIntegrityLabelToBoundaryDescriptor@8
1662BaseCheckAppcompatCacheEx@24 ; FIXME: Windows 7 has ABI "BaseCheckAppcompatCacheEx@24", Windows 8 has ABI "BaseCheckAppcompatCacheEx@32"
1663BaseDllReadWriteIniFile@32
1664BaseFormatObjectAttributes@16
1665BaseFormatTimeOut@8
1666BaseGetNamedObjectDirectory@4
1667BaseSetLastNTError@4
1668BaseVerifyUnicodeString@4 ; removed in Windows 11 2024 Update (Hudson Valley / 24H2) (WoW64 version)
1669Basep8BitStringToDynamicUnicodeString@8
1670BasepAllocateActivationContextActivationBlock@16
1671BasepAnsiStringToDynamicUnicodeString@8
1672BasepCheckAppCompat@16
1673BasepFreeActivationContextActivationBlock@4
1674BasepMapModuleHandle@8
1675; CopyExtendedContext@12 ; removed in Windows 7 SP1
1676; CreateProcessAsUserW@44 ; MSDN says this is exported from advapi32.dll
1677CreateRemoteThreadEx@32
1678DisableThreadProfiling@4
1679EnableThreadProfiling@20
1680FindStringOrdinal@24
1681GetActiveProcessorCount@4
1682GetActiveProcessorGroupCount@0
1683GetCurrentProcessorNumberEx@4
1684; GetEnabledExtendedFeatures@8 ; removed in Windows 7 SP1
1685GetEraNameCountedString@16
1686; GetExtendedContextLength@8 ; removed in Windows 7 SP1
1687; GetExtendedFeaturesMask@4 ; removed in Windows 7 SP1
1688GetLogicalProcessorInformationEx@12
1689GetMaximumProcessorCount@4
1690GetMaximumProcessorGroupCount@0
1691GetNumaAvailableMemoryNodeEx@8
1692GetNumaNodeNumberFromHandle@8
1693GetNumaNodeProcessorMaskEx@8
1694GetNumaProcessorNodeEx@8
1695GetNumaProximityNodeEx@8
1696GetProcessGroupAffinity@12
1697GetProcessPreferredUILanguages@16
1698GetProcessorSystemCycleTime@12
1699GetThreadErrorMode@0
1700GetThreadGroupAffinity@8
1701GetThreadIdealProcessorEx@8
1702; InitializeExtendedContext@12 ; removed in Windows 7 SP1
1703K32EmptyWorkingSet@4
1704K32EnumDeviceDrivers@12
1705K32EnumPageFilesA@8
1706K32EnumPageFilesW@8
1707K32EnumProcessModules@16
1708K32EnumProcessModulesEx@20
1709K32EnumProcesses@12
1710K32GetDeviceDriverBaseNameA@12
1711K32GetDeviceDriverBaseNameW@12
1712K32GetDeviceDriverFileNameA@12
1713K32GetDeviceDriverFileNameW@12
1714K32GetMappedFileNameA@16
1715K32GetMappedFileNameW@16
1716K32GetModuleBaseNameA@16
1717K32GetModuleBaseNameW@16
1718K32GetModuleFileNameExA@16
1719K32GetModuleFileNameExW@16
1720K32GetModuleInformation@16
1721K32GetPerformanceInfo@8
1722K32GetProcessImageFileNameA@12
1723K32GetProcessImageFileNameW@12
1724K32GetProcessMemoryInfo@12
1725K32GetWsChanges@12
1726K32GetWsChangesEx@12
1727K32InitializeProcessForWsWatch@4
1728K32QueryWorkingSet@12
1729K32QueryWorkingSetEx@12
1730LoadAppInitDlls@0
1731; LocateExtendedFeature@12 ; removed in Windows 7 SP1
1732; LocateLegacyContext@8 ; removed in Windows 7 SP1
1733NotifyMountMgr@12
1734; OpenProcessToken@12 ; MSDN says this is exported from advapi32.dll
1735; OpenThreadToken@16 ; MSDN says this is exported from advapi32.dll
1736PowerClearRequest@8
1737PowerCreateRequest@4
1738PowerSetRequest@8
1739QueryIdleProcessorCycleTimeEx@12
1740QueryThreadProfiling@8
1741QueryThreadpoolStackInformation@8
1742QueryUnbiasedInterruptTime@4
1743RaiseFailFastException@12
1744ReadThreadProfilingData@12
1745; RegCloseKey@4 ; MSDN says this is exported from advapi32.dll
1746; RegCreateKeyExA@36 ; MSDN says this is exported from advapi32.dll
1747; RegCreateKeyExW@36 ; MSDN says this is exported from advapi32.dll
1748; RegDeleteKeyExA@16 ; MSDN says this is exported from advapi32.dll
1749; RegDeleteKeyExW@16 ; MSDN says this is exported from advapi32.dll
1750; RegDeleteTreeA@8 ; MSDN says this is exported from advapi32.dll
1751; RegDeleteTreeW@8 ; MSDN says this is exported from advapi32.dll
1752; RegDeleteValueA@8 ; MSDN says this is exported from advapi32.dll
1753; RegDeleteValueW@8 ; MSDN says this is exported from advapi32.dll
1754; RegDisablePredefinedCacheEx@0 ; MSDN says this is exported from advapi32.dll
1755; RegEnumKeyExA@32 ; MSDN says this is exported from advapi32.dll
1756; RegEnumKeyExW@32 ; MSDN says this is exported from advapi32.dll
1757; RegEnumValueA@32 ; MSDN says this is exported from advapi32.dll
1758; RegEnumValueW@32 ; MSDN says this is exported from advapi32.dll
1759; RegFlushKey@4 ; MSDN says this is exported from advapi32.dll
1760; RegGetKeySecurity@16 ; MSDN says this is exported from advapi32.dll
1761; RegGetValueA@28 ; MSDN says this is exported from advapi32.dll
1762; RegGetValueW@28 ; MSDN says this is exported from advapi32.dll
1763; RegKrnGetGlobalState@0 ; removed in Windows 8
1764; RegKrnInitialize@12 ; removed in Windows 8
1765; RegLoadKeyA@12 ; MSDN says this is exported from advapi32.dll
1766; RegLoadKeyW@12 ; MSDN says this is exported from advapi32.dll
1767; RegLoadMUIStringA@28 ; MSDN says this is exported from advapi32.dll
1768; RegLoadMUIStringW@28 ; MSDN says this is exported from advapi32.dll
1769; RegNotifyChangeKeyValue@20 ; MSDN says this is exported from advapi32.dll
1770; RegOpenCurrentUser@8 ; MSDN says this is exported from advapi32.dll
1771; RegOpenKeyExA@20 ; MSDN says this is exported from advapi32.dll
1772; RegOpenKeyExW@20 ; MSDN says this is exported from advapi32.dll
1773; RegOpenUserClassesRoot@16 ; MSDN says this is exported from advapi32.dll
1774; RegQueryInfoKeyA@48 ; MSDN says this is exported from advapi32.dll
1775; RegQueryInfoKeyW@48 ; MSDN says this is exported from advapi32.dll
1776; RegQueryValueExA@24 ; MSDN says this is exported from advapi32.dll
1777; RegQueryValueExW@24 ; MSDN says this is exported from advapi32.dll
1778; RegRestoreKeyA@12 ; MSDN says this is exported from advapi32.dll
1779; RegRestoreKeyW@12 ; MSDN says this is exported from advapi32.dll
1780; RegSaveKeyExA@16 ; MSDN says this is exported from advapi32.dll
1781; RegSaveKeyExW@16 ; MSDN says this is exported from advapi32.dll
1782; RegSetKeySecurity@12 ; MSDN says this is exported from advapi32.dll
1783; RegSetValueExA@24 ; MSDN says this is exported from advapi32.dll
1784; RegSetValueExW@24 ; MSDN says this is exported from advapi32.dll
1785; RegUnLoadKeyA@8 ; MSDN says this is exported from advapi32.dll
1786; RegUnLoadKeyW@8 ; MSDN says this is exported from advapi32.dll
1787ResolveLocaleName@12
1788; SetExtendedFeaturesMask@12 ; removed in Windows 7 SP1
1789SetProcessPreferredUILanguages@12
1790SetThreadErrorMode@8
1791SetThreadGroupAffinity@12
1792SetThreadIdealProcessorEx@12
1793; SetThreadToken@8 ; MSDN says this is exported from advapi32.dll
1794SetThreadpoolStackInformation@8
1795SetWaitableTimerEx@28
1796SortCloseHandle@4
1797SortGetHandle@12
1798TryAcquireSRWLockExclusive@4
1799TryAcquireSRWLockShared@4
1800WerRegisterRuntimeExceptionModule@8
1801WerUnregisterRuntimeExceptionModule@8
1802Wow64GetThreadSelectorEntry@12
1803
1804; This is list of symbols added in Windows 7 SP1
1805CopyContext@12
1806GetEnabledXStateFeatures@0
1807GetProcessUserModeExceptionPolicy@4 ; removed in Windows 8
1808GetXStateFeaturesMask@8
1809InitializeContext@16
1810LocateXStateFeature@12
1811SetProcessUserModeExceptionPolicy@4 ; removed in Windows 8
1812SetXStateFeaturesMask@12
1813
1814; This is list of symbols added in Windows 8
1815; AcquireStateLock@12 ; removed in Windows 8.1
1816ActivateActCtxWorker@8
1817AddDllDirectory@4
1818AddRefActCtxWorker@4
1819AddResourceAttributeAce@28
1820AddScopedPolicyIDAce@20
1821; AppContainerDeriveSidFromMoniker@8 ; removed in Windows 8.1
1822; AppContainerFreeMemory@4 ; removed in Windows 8.1
1823; AppContainerLookupDisplayNameMrtReference@8 ; removed in Windows 8.1
1824; AppContainerLookupMoniker@8 ; removed in Windows 8.1
1825; AppContainerRegisterSid@12 ; removed in Windows 8.1
1826; AppContainerUnregisterSid@4 ; removed in Windows 8.1
1827; AppXFreeMemory@4 ; removed in Windows 8.1
1828; AppXGetApplicationData@32 ; removed in Windows 8.1
1829; AppXGetDevelopmentMode@8 ; removed in Windows 8.1
1830AppXGetOSMaxVersionTested@8
1831; AppXGetOSMinVersion@8 ; removed in Windows 8.1
1832; AppXGetPackageCapabilities@16 ; removed in Windows 8.1
1833; AppXGetPackageSid@8 ; removed in Windows 8.1
1834; AppXGetPackageState@8 ; removed in Windows 8.1
1835; AppXLookupDisplayName@8 ; removed in Windows 8.1
1836; AppXLookupMoniker@8 ; removed in Windows 8.1
1837; AppXSetPackageState@12 ; removed in Windows 8.1
1838BaseCheckAppcompatCacheExWorker@36 ; FIXME: Windows 8 and Windows 8.1 has ABI "BaseCheckAppcompatCacheExWorker@32", Windows 10 has ABI "BaseCheckAppcompatCacheExWorker@36"
1839BaseCheckAppcompatCacheWorker@16
1840BaseCheckElevation@48
1841; BaseCleanupAppcompatCacheSupportWorker@4
1842; BaseDestroyVDMEnvironment@8
1843BaseDumpAppcompatCacheWorker@0
1844BaseElevationPostProcessing@12
1845BaseFlushAppcompatCacheWorker@0
1846BaseInitAppcompatCacheSupportWorker@0
1847BaseIsAppcompatInfrastructureDisabledWorker@0
1848BaseIsDosApplication@8
1849BaseUpdateAppcompatCacheWorker@12
1850BaseUpdateVDMEntry@16
1851BaseWriteErrorElevationRequiredEvent@0
1852; BasepAppCompatHookDLL@8 ; removed in Windows 8.1
1853BasepAppContainerEnvironmentExtension@12
1854BasepAppXExtension@24
1855BasepCheckWebBladeHashes@4
1856BasepConstructSxsCreateProcessMessage@80 ; FIXME: Windows 8 has ABI "BasepConstructSxsCreateProcessMessage@80", Windows 8.1 and Windows 10 has ABI "BasepConstructSxsCreateProcessMessage@84", Windows 10 Creators Update (Redstone 2) has ABI "BasepConstructSxsCreateProcessMessage@80"
1857BasepCopyEncryption@12 ; FIXME: Windows 8, Windows 8.1 and Windows 10 has ABI "BasepCopyEncryption@56", Windows 10 November Update (Threshold 2) has ABI "BasepCopyEncryption@12"
1858BasepGetAppCompatData@60 ; FIXME: Windows 8 and Windows 8.1 has ABI "BasepGetAppCompatData@80", Windows 10 has ABI "BasepGetAppCompatData@84", Windows 10 Creators Update (Redstone 2) has ABI "BasepGetAppCompatData@56", Windows 10 May 2019 Update (19H1) has ABI "BasepGetAppCompatData@60"
1859BasepGetComputerNameFromNtPath@16
1860BasepGetExeArchType@12
1861BasepIsProcessAllowed@4
1862BasepNotifyLoadStringResource@16
1863BasepPostSuccessAppXExtension@8
1864BasepProcessInvalidImage@84
1865BasepQueryAppCompat@72 ; FIXME: Windows 8 and Windows 8.1 has ABI BasepQueryAppCompat@80, Windows 10 has ABI "BasepQueryAppCompat@84", Windows 10 Creators Update (Redstone 2) has ABI "BasepQueryAppCompat@72"
1866BasepReleaseAppXContext@4
1867BasepReleaseSxsCreateProcessUtilityStruct@4
1868BasepReportFault@8
1869BasepSetFileEncryptionCompression@32 ; FIXME: Windows 8 has ABI "BasepSetFileEncryptionCompression@28", Windows 8.1 has ABI "BasepSetFileEncryptionCompression@32"
1870CeipIsOptedIn@0
1871CheckAllowDecryptedRemoteDestinationPolicy@0
1872CheckForReadOnlyResourceFilter@4
1873CheckTokenCapability@12
1874CheckTokenMembershipEx@16
1875ClosePackageInfo@4
1876CloseState@4
1877; CloseStateAtom@4 ; removed in Windows 8.1
1878; CloseStateChangeNotification@4 ; removed in Windows 8.1
1879; CloseStateContainer@4 ; removed in Windows 8.1
1880; CloseStateLock@4 ; removed in Windows 8.1
1881; CommitStateAtom@12 ; removed in Windows 8.1
1882CopyFile2@12
1883CreateActCtxWWorker@4
1884CreateFile2@20
1885CreateFileMappingFromApp@24
1886; CreateStateAtom@0 ; removed in Windows 8.1
1887; CreateStateChangeNotification@4 ; removed in Windows 8.1
1888; CreateStateContainer@16 ; removed in Windows 8.1
1889; CreateStateLock@4 ; removed in Windows 8.1
1890; CreateStateSubcontainer@12 ; removed in Windows 8.1
1891DeactivateActCtxWorker@8
1892; DeleteStateAtomValue@8 ; removed in Windows 8.1
1893; DeleteStateContainer@8 ; removed in Windows 8.1
1894; DeleteStateContainerValue@8 ; removed in Windows 8.1
1895DuplicateEncryptionInfoFileExt@20
1896; DuplicateStateContainerHandle@4 ; removed in Windows 8.1
1897; EnumerateStateAtomValues@12 ; removed in Windows 8.1
1898; EnumerateStateContainerItems@16 ; removed in Windows 8.1
1899FindActCtxSectionGuidWorker@20
1900FindActCtxSectionStringWWorker@20
1901GetAppContainerAce@16
1902GetAppContainerNamedObjectPath@20
1903GetApplicationRecoveryCallbackWorker@20
1904GetApplicationRestartSettingsWorker@16
1905GetApplicationUserModelId@12
1906GetCachedSigningLevel@24
1907GetCurrentActCtxWorker@4
1908GetCurrentApplicationUserModelId@8
1909GetCurrentPackageFamilyName@8
1910GetCurrentPackageFullName@8
1911GetCurrentPackageId@8
1912GetCurrentPackageInfo@16
1913GetCurrentPackagePath@8
1914GetCurrentThreadStackLimits@8
1915GetDateFormatAWorker@28
1916GetDateFormatWWorker@28
1917GetFirmwareEnvironmentVariableExA@20
1918GetFirmwareEnvironmentVariableExW@20
1919GetFirmwareType@4
1920; GetHivePath@16 ; removed in Windows 8.1
1921GetMemoryErrorHandlingCapabilities@4
1922GetOverlappedResultEx@20
1923GetPackageFamilyName@12
1924GetPackageFullName@12
1925GetPackageId@12
1926GetPackageInfo@20
1927GetPackagePath@16
1928GetPackagesByPackageFamily@20
1929GetProcessInformation@16
1930GetProcessMitigationPolicy@16
1931; GetRoamingLastObservedChangeTime@8 ; removed in Windows 8.1
1932; GetSerializedAtomBytes@12 ; removed in Windows 8.1
1933; GetStateContainerDepth@8 ; removed in Windows 8.1
1934GetStateFolder@16
1935; GetStateRootFolder@12 ; removed in Windows 8.1
1936; GetStateSettingsFolder@12 ; removed in Windows 8.1
1937; GetStateVersion@12 ; removed in Windows 8.1
1938; GetSystemAppDataFolder@12 ; removed in Windows 8.1
1939GetSystemAppDataKey@16
1940GetSystemTimePreciseAsFileTime@4
1941GetThreadInformation@16
1942GetTimeFormatAWorker@28
1943GetTimeFormatWWorker@24
1944GlobalAddAtomExA@8
1945GlobalAddAtomExW@8
1946InterlockedPushListSListEx@16
1947IsNativeVhdBoot@4
1948IsValidNLSVersion@12
1949LoadPackagedLibrary@8
1950MapViewOfFileFromApp@20
1951NtVdm64CreateProcessInternalW@48
1952OpenConsoleWStub@16
1953OpenPackageInfoByFullName@12
1954OpenState@0
1955; OpenStateAtom@8 ; removed in Windows 8.1
1956OpenStateExplicit@8
1957; OverrideRoamingDataModificationTimesInRange@16 ; removed in Windows 8.1
1958PackageFamilyNameFromFullName@12
1959PackageFamilyNameFromId@12
1960PackageFullNameFromId@12
1961PackageIdFromFullName@16
1962PackageNameAndPublisherIdFromFamilyName@20
1963PrefetchVirtualMemory@16
1964; PublishStateChangeNotification@4 ; removed in Windows 8.1
1965QueryActCtxSettingsWWorker@28
1966QueryActCtxWWorker@28
1967; QueryStateAtomValueInfo@12 ; removed in Windows 8.1
1968; QueryStateContainerItemInfo@12 ; removed in Windows 8.1
1969RaiseInvalid16BitExeError@4
1970; ReadStateAtomValue@20 ; removed in Windows 8.1
1971; ReadStateContainerValue@20 ; removed in Windows 8.1
1972; RegCopyTreeW@12 ; MSDN says this function is exported from advapi32.dll
1973RegisterBadMemoryNotification@4
1974; RegisterStateChangeNotification@8 ; removed in Windows 8.1
1975; RegisterStateLock@4 ; removed in Windows 8.1
1976ReleaseActCtxWorker@4
1977; ReleaseStateLock@4 ; removed in Windows 8.1
1978RemoveDllDirectory@4
1979; ResetState@4 ; removed in Windows 8.1
1980ResolveDelayLoadedAPI@24
1981ResolveDelayLoadsFromDll@12
1982SetCachedSigningLevel@16
1983SetDefaultDllDirectories@4
1984SetFirmwareEnvironmentVariableExA@20
1985SetFirmwareEnvironmentVariableExW@20
1986SetProcessInformation@16
1987SetProcessMitigationPolicy@12
1988; SetRoamingLastObservedChangeTime@8 ; removed in Windows 8.1
1989; SetStateVersion@8 ; removed in Windows 8.1
1990SetThreadInformation@16
1991SetThreadpoolTimerEx@16
1992SetThreadpoolWaitEx@16
1993SetVolumeMountPointWStub@8
1994; SubscribeStateChangeNotification@12 ; removed in Windows 8.1
1995SystemTimeToTzSpecificLocalTimeEx@12
1996TermsrvConvertSysRootToUserDir@8
1997TermsrvCreateRegEntry@20
1998TermsrvDeleteKey@4
1999TermsrvDeleteValue@8
2000TermsrvGetPreSetValue@16
2001TermsrvGetWindowsDirectoryA@8
2002TermsrvGetWindowsDirectoryW@8
2003TermsrvOpenRegEntry@12
2004TermsrvOpenUserClasses@8
2005TermsrvRestoreKey@12
2006TermsrvSetKeySecurity@12
2007TermsrvSetValueKey@24
2008TermsrvSyncUserIniFileExt@4
2009TzSpecificLocalTimeToSystemTimeEx@12
2010UnmapViewOfFileEx@8
2011UnregisterBadMemoryNotification@4
2012; UnregisterStateChangeNotification@4 ; removed in Windows 8.1
2013; UnregisterStateLock@8 ; removed in Windows 8.1
2014; UnsubscribeStateChangeNotification@4 ; removed in Windows 8.1
2015WerRegisterFileWorker@12
2016WerRegisterMemoryBlockWorker@8
2017WerRegisterRuntimeExceptionModuleWorker@8
2018WerUnregisterFileWorker@4
2019WerUnregisterMemoryBlockWorker@4
2020WerUnregisterRuntimeExceptionModuleWorker@8
2021WerpGetDebugger@8 ; FIXME: Windows 8 and Windows 8.1 has ABI "WerpGetDebugger@20", Windows 10 has ABI "WerpGetDebugger@8"
2022; WerpLaunchAeDebug@24
2023; WerpNotifyLoadStringResourceWorker@16
2024; WerpNotifyUseStringResourceWorker@4
2025; WriteStateAtomValue@20 ; removed in Windows 8.1
2026; WriteStateContainerValue@24 ; removed in Windows 8.1
2027ZombifyActCtxWorker@4
2028; timeBeginPeriod@4 ; MSDN says this is exported from winmm.dll
2029; timeEndPeriod@4 ; MSDN says this is exported from winmm.dll
2030; timeGetDevCaps@8 ; MSDN says this is exported from winmm.dll
2031; timeGetSystemTime@8 ; MSDN says this is exported from winmm.dll
2032; timeGetTime@0 ; MSDN says this is exported from winmm.dll
2033
2034; This is list of symbols added in Windows 8.1
2035BaseFreeAppCompatDataForProcessWorker@4
2036BaseReadAppCompatDataForProcessWorker@12
2037; CalloutOnFiberStack@12 ; removed in Windows 10 November Update (Threshold 2)
2038DeleteSynchronizationBarrier@4
2039DnsHostnameToComputerNameExW@12
2040EnterSynchronizationBarrier@8
2041FindPackagesByPackageFamily@28
2042FormatApplicationUserModelId@16
2043GetEncryptedFileVersionExt@8
2044GetPackageApplicationIds@16
2045GetPackagePathByFullName@12
2046GetStagedPackagePathByFullName@12
2047InitializeSynchronizationBarrier@12
2048InstallELAMCertificateInfo@4
2049IsProcessCritical@8
2050OOBEComplete@4
2051ParseApplicationUserModelId@20
2052PssCaptureSnapshot@16
2053PssDuplicateSnapshot@20
2054PssFreeSnapshot@8
2055PssQuerySnapshot@16
2056PssWalkMarkerCreate@8
2057PssWalkMarkerFree@4
2058PssWalkMarkerGetPosition@8
2059PssWalkMarkerRewind@4
2060PssWalkMarkerSeek@8
2061PssWalkMarkerSeekToBeginning@4
2062PssWalkMarkerSetPosition@8
2063PssWalkMarkerTell@8
2064PssWalkSnapshot@20
2065QuirkGetData2Worker@8
2066QuirkGetDataWorker@8
2067QuirkIsEnabled2Worker@12
2068QuirkIsEnabled3Worker@8
2069QuirkIsEnabledForPackage2Worker@24
2070QuirkIsEnabledForPackageWorker@16
2071QuirkIsEnabledForProcessWorker@12
2072QuirkIsEnabledWorker@4
2073RegisterWaitUntilOOBECompleted@12
2074SetComputerNameEx2W@12
2075UnregisterWaitUntilOOBECompleted@4
2076
2077; This is list of symbols added in Windows 10 (Threshold / 1507)
2078; CreateProcessAsUserA@44 ; MSDN says this is exported from advapi32.dll
2079DiscardVirtualMemory@8
2080FreeMemoryJobObject@4
2081GetProcessDefaultCpuSets@16
2082GetSystemCpuSetInformation@20
2083GetThreadSelectedCpuSets@16
2084OfferVirtualMemory@12
2085QueryIoRateControlInformationJobObject@16
2086QueryProtectedPolicy@8
2087QuirkIsEnabledForPackage3Worker@20
2088QuirkIsEnabledForPackage4Worker@20
2089ReclaimVirtualMemory@8
2090RtlPcToFileHeader@8
2091SetIoRateControlInformationJobObject@8
2092SetProcessDefaultCpuSets@12
2093SetProtectedPolicy@12
2094SetThreadSelectedCpuSets@12
2095WaitForDebugEventEx@8
2096WerGetFlagsWorker@8
2097WerSetFlagsWorker@4
2098
2099; This is list of symbols added in Windows 10 November Update (Threshold 2 / 1511)
2100CreateEnclave@32
2101InitializeEnclave@20
2102IsEnclaveTypeSupported@4
2103LoadEnclaveData@36
2104
2105; This is list of symbols added in Windows 10 Anniversary Update (Redstone / 1607)
2106AppPolicyGetClrCompat@8
2107AppPolicyGetCreateFileAccess@8
2108AppPolicyGetLifecycleManagement@8
2109AppPolicyGetMediaFoundationCodecLoading@8
2110AppPolicyGetProcessTerminationMethod@8
2111AppPolicyGetShowDeveloperDiagnostic@8
2112AppPolicyGetThreadInitializationType@8
2113AppPolicyGetWindowingModel@8
2114; Wow64Transition DATA ; available only in 32-bit WoW64 version on 64-bit system
2115
2116; This is list of symbols added in Windows 10 Creators Update (Redstone 2 / 1703)
2117BasepInitAppCompatData@12
2118GetThreadDescription@8
2119SetThreadDescription@8
2120WerRegisterAdditionalProcess@8
2121WerRegisterCustomMetadata@8
2122WerRegisterExcludedMemoryBlock@8
2123WerUnregisterAdditionalProcess@4
2124WerUnregisterCustomMetadata@4
2125WerUnregisterExcludedMemoryBlock@4
2126
2127; This is list of symbols added in Windows 10 Fall Creators Update (Redstone 3 / 1709)
2128BasepQueryModuleChpeSettings@40 ; FIXME: Windows 11 2024 Update (Hudson Valley / 24H2) (WoW64 version) changed ABI to "BasepQueryModuleChpeSettings@44"
2129EnumSystemGeoNames@12
2130GetGeoInfoEx@16
2131GetUserDefaultGeoName@8
2132IsWow64GuestMachineSupported@8
2133IsWow64Process2@12
2134ReadDirectoryChangesExW@36
2135SetUserGeoName@4
2136WerRegisterAppLocalDump@4
2137WerUnregisterAppLocalDump@0
2138
2139; In Windows 10 April 2018 Update (Redstone 4 / 1803) was not added any new symbol
2140
2141; This is list of symbols added in Windows 10 October 2018 Update (Redstone 5 / 1809)
2142ClosePseudoConsole@4
2143CreatePseudoConsole@20
2144GetDiskSpaceInformationA@8
2145GetDiskSpaceInformationW@8
2146InitializeContext2@24
2147LocalFileTimeToLocalSystemTime@12
2148LocalSystemTimeToLocalFileTime@12
2149ResizePseudoConsole@8
2150
2151; In Windows 10 May 2019 Update (19H1 / 1903) was not added any new symbol
2152
2153; In Windows 10 November 2019 Update (19H2 /1909) was not added any new symbol
2154
2155; This is list of symbols added in Windows 10 May 2020 Update (20H1 / 2004)
2156; BasepFinishPackageActivationForSxS@24
2157; BasepGetPackageActivationTokenForSxS@12
2158IsUserCetAvailableInEnvironment@4
2159SetProcessDynamicEHContinuationTargets@12
2160
2161; In Windows 10 October 2020 Update (20H2) was not added any new symbol
2162
2163; This is list of symbols added in Windows 10 May 2021 Update (21H1)
2164; CheckIsMSIXPackage@8 ; removed in Windows 11 (Sun Valley / 21H2) (WoW64 version)
2165SetProcessDynamicEnforcedCetCompatibleRanges@12
2166
2167; In Windows 10 November 2021 Update (21H2) was not added any new symbol
2168
2169; In Windows 10 2022 Update (22H2) was not added any new symbol
2170
2171; This is list of symbols added in Windows 11 (Sun Valley / 21H2) (WoW64 version)
2172ActivatePackageVirtualizationContext@8
2173AreShortNamesEnabled@8
2174; BasepFinishPackageActivation@28
2175; BasepGetPackageActivationTokenForFilePath@12
2176; BasepGetPackagedAppInfoForFile@16
2177; BasepReleasePackagedAppInfo@4
2178CreatePackageVirtualizationContext@8
2179DeactivatePackageVirtualizationContext@4
2180DuplicatePackageVirtualizationContext@8
2181EnableProcessOptionalXStateFeatures@8
2182GetCurrentPackageVirtualizationContext@0
2183GetMachineTypeAttributes@8
2184GetNumaNodeProcessorMask2@16
2185GetProcessDefaultCpuSetMasks@16
2186GetProcessesInVirtualizationContext@12
2187GetTempPath2A@8
2188GetTempPath2W@8
2189GetThreadEnabledXStateFeatures@0
2190GetThreadSelectedCpuSetMasks@16
2191QueueUserAPC2@16
2192ReleasePackageVirtualizationContext@4
2193SetProcessDefaultCpuSetMasks@12
2194SetThreadSelectedCpuSetMasks@12
2195
2196; This is list of symbols added in Windows 11 2022 Update (Sun Valley 2 / 22H2) (WoW64 version)
2197BuildIoRingCancelRequest@20
2198BuildIoRingFlushFile@24
2199BuildIoRingReadFile@44
2200BuildIoRingRegisterBuffers@16
2201BuildIoRingRegisterFileHandles@16
2202BuildIoRingWriteFile@48
2203CloseIoRing@4
2204CreateIoRing@24
2205GetIoRingInfo@8
2206IsIoRingOpSupported@8
2207PopIoRingCompletion@8
2208QueryIoRingCapabilities@4
2209SetIoRingCompletionEvent@8
2210SubmitIoRing@16
2211
2212; In Windows 11 2023 Update (Sun Valley 3 / 23H2) (WoW64 version) was not added any new symbol
2213
2214; This is list of symbols added in Windows 11 2024 Update (Hudson Valley / 24H2) (WoW64 version)
2215AllocConsoleWithOptions@8
2216; BackupReadEx@24
2217; BackupWriteEx@24
2218; BasepCheckPplSupport@8
2219; BasepFreeActivationTokenInfo@4
2220; BasepGetPackageActivationTokenForFilePath2@12
2221; BasepGetPackageActivationTokenForSxS2@12
2222BuildIoRingReadFileScatter@40
2223BuildIoRingWriteFileGather@44
2224FlsGetValue2@4
2225GetFileInformationByName@16
2226; LogUnexpectedCodepath@4
2227ReleasePseudoConsole@4
2228TlsGetValue2@4
2229
2230; This is list of symbols added in Windows 11 2025 Update (Hudson Valley 2 / 25H2) (WoW64 version)
2231; BasepGetPackageActivationTokenForSxS3@16
2232CreateDirectory2A@20
2233CreateDirectory2W@20
2234CreateFile3@20
2235DeleteFile2A@8
2236DeleteFile2W@8
2237RemoveDirectory2A@8
2238RemoveDirectory2W@8
lib/libc/mingw/lib32/ntdll.def+2344-1757
...@@ -1,1013 +1,433 @@...@@ -1,1013 +1,433 @@
1;1LIBRARY "NTDLL.dll"
2; Definition file of ntdll.dll
3; Automatic generated by gendef
4; written by Kai Tietz 2008
5;
6LIBRARY "ntdll.dll"
7EXPORTS2EXPORTS
8RtlDispatchAPC@123
9RtlActivateActivationContextUnsafeFast@04; This file is a comprehensive documentation for 32-bit x86 ntdll.dll symbols.
10RtlDeactivateActivationContextUnsafeFast@05; It covers all 3 platforms Win32s, Win9x and WinNT and contains information
11RtlInterlockedPushListSList@86; from native ntdll.dll libraries on 32-bit Windows systems and also from
12@RtlUlongByteSwap@47; 32-bit WoW64 ntdll.dll libraries on 64-bit Windows systems. Symbols in this
13@RtlUlonglongByteSwap@88; file are ordered by increasing Windows version in which they were introduced.
14@RtlUshortByteSwap@49; First are Win32s versions, then followed by Win9x versions and then WinNT
15ExpInterlockedPopEntrySListEnd@010; because logically Win32s symbols are subset of Win9x symbols which is subset
16ExpInterlockedPopEntrySListFault@011; of WinNT symbols. Comments contains additional information with exceptions.
17ExpInterlockedPopEntrySListResume@012
18RtlpInterlockedPopEntrySeqSListEnd@013; This is list of symbols available in all Windows versions (Win32s since Win32s 1.1; Win9x since Windows 95; WinNT since Windows NT 3.1)
19RtlpInterlockedPopEntrySeqSListFault@014DbgBreakPoint@0
20RtlpInterlockedPopEntrySeqSListResume@015DbgPrint ; cdecl
21A_SHAFinal@816DbgPrompt@12
22A_SHAInit@417NtCurrentTeb@0
23A_SHAUpdate@1218NtQueryEaFile@36
24AlpcAdjustCompletionListConcurrencyCount@819NtQueryPerformanceCounter@8
25AlpcFreeCompletionListMessage@820NtSetEaFile@16
26AlpcGetCompletionListLastMessageInformation@1221RtlCreateHeap@24
27AlpcGetCompletionListMessageAttributes@822RtlEnlargedIntegerMultiply@8
28AlpcGetHeaderSize@423RtlExtendedIntegerMultiply@12
29AlpcGetMessageAttribute@824RtlExtendedLargeIntegerDivide@16
30AlpcGetMessageFromCompletionList@825RtlImageDirectoryEntryToData@16
31AlpcGetOutstandingCompletionListMessageCount@426RtlImageNtHeader@4
32AlpcInitializeMessageAttribute@1627RtlLargeIntegerSubtract@16
33AlpcMaxAllowedMessageLength@028RtlUnwind@16
34AlpcRegisterCompletionList@2029RtlValidateHeap@12 ; Win32s, Win9x and Windows NT 3.1 has ABI "RtlValidateHeap@4", Windows NT 3.5 and new has ABI "RtlValidateHeap@12"
35AlpcRegisterCompletionListWorkerThread@430
36AlpcRundownCompletionList@431; This is list of symbols available only in Win32s (not available in Win9x and WinNT)
37AlpcUnregisterCompletionList@432; RtlProcessHeap@0
38AlpcUnregisterCompletionListWorkerThread@433
39ApiSetQueryApiSetPresence@834; This is list of symbols available in Win32s and Win9x but not in WinNT
40ApiSetQueryApiSetPresenceEx@1235; RtlExFreeHeap@12
41CsrAllocateCaptureBuffer@836; RtlExReAllocateHeap@16
37; RtlExSizeHeap@12
38
39; This is list of symbols added in Win32s 1.15 and available in all Win9x and WinNT versions
40; Note that Win32s 1.15 and all later versions merged advapi32.dll, gdi32.dll,
41; kernel32.dll, ntdll.dll, user32.dll (and Win32s 1.25a and later also mpr.dll)
42; libraries into one big w32scomb.dll library and made those libraries as alias
43; to w32scomb.dll, which effectively means that every symbol from every library
44; is available also from ntdll.dll (aliased to w32scomb.dll). Below are only
45; those Win32s symbols which are available in some Win9x or WinNT version of
46; ntdll.dll or logically belongs to ntdll.dll.
47RtlAnsiStringToUnicodeString@12
48RtlDestroyHeap@4
49
50; This is list of symbols added in Win32s 1.15 and available only in Win32s (not available in Win9x and WinNT)
51; _RtlCopyMemory@12
52; _RtlMultiByteToUnicodeN@20 ; WinNT has this symbol without leading underline
53; _RtlUnicodeToMultiByteN@20 ; WinNT has this symbol without leading underline
54
55; This is list of symbols added in Win32s 1.15 and available in all Win9x version, but not in WinNT
56; RtlExAllocateHeap@12
57
58; This is list of symbols added in Win32s 1.15 and available in all WinNT version, but not in Win9x
59NtCreateSection@28
60NtMapViewOfSection@40
61NtOpenDirectoryObject@12
62NtUnmapViewOfSection@8
63RtlInitAnsiString@8
64RtlInitUnicodeString@8
65RtlMoveMemory@12
66RtlZeroMemory@8
67
68; This is list of symbols added in Win32s 1.15a and available in all Win9x and WinNT versions
69RtlUnicodeStringToAnsiString@12
70
71; This is list of symbols added in Win32s 1.15a and available in all WinNT version, but not in Win9x
72RtlAnsiStringToUnicodeSize@4
73RtlInitString@8
74RtlIntegerToUnicodeString@12
75RtlUnicodeStringToAnsiSize@4
76RtlUnicodeStringToInteger@12
77
78; This is list of symbols added in Win32s 1.20 and available in all WinNT version, but not in Win9x
79NtClose@4
80NtCreateSemaphore@20 ; Win32s has ABI "NtCreateSemaphore@36", WinNT has ABI "NtCreateSemaphore@20"
81NtReleaseSemaphore@12
82NtWaitForSingleObject@12
83RtlCreateSecurityDescriptor@8
84RtlFillMemory@12
85RtlSetDaclSecurityDescriptor@16
86
87;; This is end of Win32s symbols ;;
88
89
90; This is list of symbols available in all Win9x and WinNT versions, but not available in Win32s
91RtlAllocateHeap@12 ; Win9x has ABI "RtlAllocateHeap@8", WinNT has ABI "RtlAllocateHeap@12"
92RtlConvertLongToLargeInteger@4
93RtlConvertUlongToLargeInteger@4
94RtlEnlargedUnsignedDivide@16 ; removed in Windows 8
95RtlEnlargedUnsignedMultiply@8
96RtlExtendedMagicDivide@20
97RtlFreeHeap@12 ; Win9x has ABI "RtlFreeHeap@8", WinNT has ABI "RtlFreeHeap@12"
98RtlLargeIntegerAdd@16
99RtlLargeIntegerArithmeticShift@12
100RtlLargeIntegerDivide@20
101RtlLargeIntegerNegate@8
102RtlLargeIntegerShiftLeft@12
103RtlLargeIntegerShiftRight@12
104RtlMultiByteToUnicodeN@20 ; Win9x has ABI "RtlMultiByteToUnicodeN@16", WinNT has ABI "RtlMultiByteToUnicodeN@20"
105RtlReAllocateHeap@16 ; Win9x has ABI "RtlReAllocateHeap@12", WinNT has ABI "RtlReAllocateHeap@16"
106RtlSizeHeap@12 ; Win9x has ABI "RtlSizeHeap@8", WinNT has ABI "RtlSizeHeap@12"
107RtlUnicodeToMultiByteN@20 ; Win9x has ABI "RtlUnicodeToMultiByteN@16", WinNT has ABI "RtlUnicodeToMultiByteN@20"
108
109; This is list of symbols available in all Win9x versions, in Windows NT 3.1, but not available in Win32s, Windows NT 3.5 and new
110; RtlGetHandleValueHeap@8 ; Win9x ABI
111; RtlGetHandleValueHeap@12 ; Windows NT 3.1 ABI
112; RtlSetHandleValueHeap@12 ; Win9x ABI
113; RtlSetHandleValueHeap@16 ; Windows NT 3.1 ABI
114
115; This is list of symbols available in all Win9x versions, but not available in Win32s and WinNT
116; RtlGrowHeap@8
117
118; This is list of symbols added in Windows 98, available also in all WinNT versions, but not available in Win32s
119NtCreateFile@44
120RtlNtStatusToDosError@4
121
122; This is list of symbols added in Windows 98, but not available in Win32s and WinNT
123; IoUnregisterDeviceInterface@4
124; NtGetDevnodeFromFileHandle@8
125
126; This is list of symbols added in Windows 98 and also since Windows NT 3.51, but not available in Win32s
127NtSetSystemPowerState@12
128
129; This is list of symbols added in Windows 98 and also since Windows 2000, but not available in Win32s
130NtInitiatePowerAction@16
131NtPowerInformation@20
132NtRequestWakeupLatency@4 ; removed in Windows 7
133
134;; This is end of Win9x symbols ;;
135
136
137; This is list of symbols available since Windows NT 3.1
138CsrAllocateCaptureBuffer@8 ; Windows NT 3.1-4.0 has ABI "CsrAllocateCaptureBuffer@12", Windows 2000 and new has ABI "CsrAllocateCaptureBuffer@8"
139; CsrAllocateCapturePointer@12 ; removed in Windows 2000
42CsrAllocateMessagePointer@12140CsrAllocateMessagePointer@12
43CsrCaptureMessageBuffer@16141CsrCaptureMessageBuffer@16
44CsrCaptureMessageMultiUnicodeStringsInPlace@12
45CsrCaptureMessageString@20142CsrCaptureMessageString@20
46CsrCaptureTimeout@8143CsrCaptureTimeout@8
47CsrClientCallServer@16144CsrClientCallServer@16
48CsrClientConnectToServer@20145CsrClientConnectToServer@20 ; Windows NT 3.1-2000 has ABI "CsrClientConnectToServer@24", Windows XP and new has ABI "CsrClientConnectToServer@20"
146; CsrClientMaxMessage@0 ; removed in Windows NT 4.0
147; CsrClientSendMessage@0 ; removed in Windows NT 4.0
148; CsrClientThreadConnect@0 ; removed in Windows NT 4.0
149; CsrDumpProfile@0 ; removed in Windows NT 3.5
49CsrFreeCaptureBuffer@4150CsrFreeCaptureBuffer@4
50CsrGetProcessId@0
51CsrIdentifyAlertableThread@0151CsrIdentifyAlertableThread@0
52CsrNewThread@0152CsrNewThread@0 ; removed in Windows Vista SP1
53CsrProbeForRead@12153CsrProbeForRead@12 ; removed in Windows Vista
54CsrProbeForWrite@12154CsrProbeForWrite@12 ; removed in Windows Vista
55CsrSetPriorityClass@8155CsrSetPriorityClass@8
56CsrVerifyRegion@8156; CsrStartProfile@0 ; removed in Windows NT 3.5
57DbgBreakPoint@0157; CsrStopDumpProfile@0 ; removed in Windows NT 3.5
58DbgPrint158; CsrStopProfile@0 ; removed in Windows NT 3.5
59DbgPrintEx159; CsrpProcessCallbackRequest@4 ; removed in Windows NT 4.0
60DbgPrintReturnControlC160DbgSsHandleKmApiMsg@8 ; removed in Windows XP
61DbgPrompt@12161DbgSsInitialize@16 ; removed in Windows XP
62DbgQueryDebugFilterState@8
63DbgSetDebugFilterState@12
64DbgSsHandleKmApiMsg@8
65DbgSsInitialize@16
66DbgUiConnectToDbg@0162DbgUiConnectToDbg@0
67DbgUiContinue@8163DbgUiContinue@8
68DbgUiConvertStateChangeStructure@8
69DbgUiConvertStateChangeStructureEx@8
70DbgUiDebugActiveProcess@4
71DbgUiGetThreadDebugObject@0
72DbgUiIssueRemoteBreakin@4
73DbgUiRemoteBreakin@4
74DbgUiSetThreadDebugObject@4
75DbgUiStopDebugging@4
76DbgUiWaitStateChange@8164DbgUiWaitStateChange@8
77DbgUserBreakPoint@0165DbgUserBreakPoint@0
78EtwCheckCoverage@4166KiUserApcDispatcher@20 ; really stdcall @20, gendef detects it incorrectly
79EtwCreateTraceInstanceId@8
80EtwDeliverDataBlock@4
81EtwEnumerateProcessRegGuids@12
82EtwEventActivityIdControl@8
83EtwEventEnabled@12
84EtwEventProviderEnabled@20
85EtwEventRegister@16
86EtwEventSetInformation@20
87EtwEventUnregister@8
88EtwEventWrite@20
89EtwEventWriteEndScenario@20
90EtwEventWriteEx@40
91EtwEventWriteFull@32
92EtwEventWriteNoRegistration@16
93EtwEventWriteStartScenario@20
94EtwEventWriteString@24
95EtwEventWriteTransfer@28
96EtwGetTraceEnableFlags@8
97EtwGetTraceEnableLevel@8
98EtwGetTraceLoggerHandle@4
99EtwLogTraceEvent@12
100EtwNotificationRegister@20
101EtwNotificationUnregister@12
102EtwProcessPrivateLoggerRequest@4
103EtwRegisterSecurityProvider@0
104EtwRegisterTraceGuidsA@32
105EtwRegisterTraceGuidsW@32
106EtwReplyNotification@4
107EtwSendNotification@20
108EtwSetMark@16
109EtwTraceEventInstance@20
110EtwTraceMessage
111EtwTraceMessageVa@24
112EtwUnregisterTraceGuids@8
113EtwWriteUMSecurityEvent@16
114EtwpCreateEtwThread@8
115EtwpGetCpuSpeed@8
116;EtwpNotificationThread
117EvtIntReportAuthzEventAndSourceAsync@44
118EvtIntReportEventAndSourceAsync@44
119KiFastSystemCall@0
120KiFastSystemCallRet@0
121KiIntSystemCall@0
122KiRaiseUserExceptionDispatcher@0
123KiUserApcDispatcher@20
124KiUserCallbackDispatcher@12
125KiUserExceptionDispatcher@8167KiUserExceptionDispatcher@8
126LdrAccessResource@16168LdrAccessResource@16
127LdrAddDllDirectory@8
128LdrAddLoadAsDataTable@16; Check!!! gendef says @20
129LdrAddRefDll@8
130LdrAlternateResourcesEnabled@0
131LdrAppxHandleIntegrityFailure@4
132LdrCallEnclave@12
133LdrControlFlowGuardEnforced@0
134LdrCreateEnclave@36
135LdrDeleteEnclave@4
136LdrDisableThreadCalloutsForDll@4
137LdrEnumResources@20
138LdrEnumerateLoadedModules@12
139LdrFastFailInLoaderCallout@0
140LdrFindEntryForAddress@8169LdrFindEntryForAddress@8
141LdrFindResourceDirectory_U@16170LdrFindResourceDirectory_U@16
142LdrFindResourceEx_U@20
143LdrFindResource_U@16171LdrFindResource_U@16
144LdrFlushAlternateResourceModules@0
145LdrGetDllDirectory@4
146LdrGetDllFullName@8
147LdrGetDllHandle@16172LdrGetDllHandle@16
148LdrGetDllHandleByMapping@8
149LdrGetDllHandleByName@12
150LdrGetDllHandleEx@20
151LdrGetDllPath@16
152LdrGetFailureData@0
153LdrGetFileNameFromLoadAsDataTable@8
154LdrGetProcedureAddress@16173LdrGetProcedureAddress@16
155LdrGetProcedureAddressEx@20174LdrInitializeThunk@16 ; really stdcall @16, gendef detects it incorrectly
156LdrGetProcedureAddressForCaller@24
157LdrHotPatchRoutine@0
158LdrInitShimEngineDynamic@4
159LdrInitializeEnclave@20
160LdrInitializeThunk@16
161LdrIsModuleSxsRedirected@4
162LdrLoadAlternateResourceModule@16
163LdrLoadAlternateResourceModuleEx@20
164LdrLoadDll@16175LdrLoadDll@16
165LdrLoadEnclaveModule@12
166LdrLockLoaderLock@12
167LdrOpenImageFileOptionsKey@12
168LdrParentInterlockedPopEntrySList@0
169LdrParentRtlInitializeNtUserPfn@0
170LdrParentRtlResetNtUserPfn@0
171LdrParentRtlRetrieveNtUserPfn@0
172LdrProcessRelocationBlock@16176LdrProcessRelocationBlock@16
173LdrProcessRelocationBlockEx@20
174LdrQueryImageFileExecutionOptions@24177LdrQueryImageFileExecutionOptions@24
175LdrQueryImageFileExecutionOptionsEx@28
176LdrQueryImageFileKeyOption@24
177LdrQueryModuleServiceTags@12
178LdrQueryOptionalDelayLoadedAPI@16
179LdrQueryProcessModuleInformation@12178LdrQueryProcessModuleInformation@12
180LdrRegisterDllNotification@16
181LdrRemoveDllDirectory@4
182LdrRemoveLoadAsDataTable@16
183LdrResFindResource@36
184LdrResFindResourceDirectory@28
185LdrResGetRCConfig@20
186LdrResRelease@12
187LdrResSearchResource@32
188LdrResolveDelayLoadedAPI@24
189LdrResolveDelayLoadsFromDll@12
190LdrRscIsTypeExist@16
191LdrSetAppCompatDllRedirectionCallback@12
192LdrSetDefaultDllDirectories@4
193LdrSetDllDirectory@4
194LdrSetDllManifestProber@4
195LdrSetImplicitPathOptions@8
196LdrSetMUICacheType@4
197LdrShutdownProcess@0179LdrShutdownProcess@0
198LdrShutdownThread@0180LdrShutdownThread@0
199LdrStandardizeSystemPath@4
200LdrSystemDllInitBlock@0
201LdrUnloadAlternateResourceModule@4
202LdrUnloadAlternateResourceModuleEx@8
203LdrUnloadDll@4181LdrUnloadDll@4
204LdrUnlockLoaderLock@8182LdrVerifyImageMatchesChecksum@16 ; Windows NT 3.1-3.51 has ABI "LdrVerifyImageMatchesChecksum@4", Windows NT 4.0 and new has ABI "LdrVerifyImageMatchesChecksum@16"
205LdrUnregisterDllNotification@4
206LdrUpdatePackageSearchPath@4
207LdrVerifyImageMatchesChecksum@16
208LdrVerifyImageMatchesChecksumEx@8
209LdrpChildNtdll@0
210LdrpResGetMappingSize@16
211LdrpResGetRCConfig@20
212LdrpResGetResourceDirectory@20
213LdrWx86FormatVirtualImage@12
214MD4Final@4
215MD4Init@4
216MD4Update@12
217MD5Final@4
218MD5Init@4
219MD5Update@12
220NlsAnsiCodePage DATA
221NlsMbCodePageTag DATA
222NlsMbOemCodePageTag DATA
223NtAcceptConnectPort@24183NtAcceptConnectPort@24
224NtAccessCheck@32184NtAccessCheck@32
225NtAccessCheckAndAuditAlarm@44185NtAccessCheckAndAuditAlarm@44
226NtAccessCheckByType@44
227NtAccessCheckByTypeAndAuditAlarm@64
228NtAccessCheckByTypeResultList@44
229NtAccessCheckByTypeResultListAndAuditAlarm@64
230NtAccessCheckByTypeResultListAndAuditAlarmByHandle@68
231NtAcquireCrossVmMutant@8
232NtAcquireProcessActivityReference@12
233NtAcquireCMFViewOwnership@12
234NtAddAtom@12
235NtAddAtomEx@16
236NtAddBootEntry@8
237NtAddDriverEntry@8
238NtAdjustGroupsToken@24186NtAdjustGroupsToken@24
239NtAdjustPrivilegesToken@24187NtAdjustPrivilegesToken@24
240NtAdjustTokenClaimsAndDeviceGroups@64
241NtAlertResumeThread@8188NtAlertResumeThread@8
242NtAlertThread@4189NtAlertThread@4
243NtAlertThreadByThreadId@4
244NtAllocateLocallyUniqueId@4190NtAllocateLocallyUniqueId@4
245NtAllocateReserveObject@12
246NtAllocateUserPhysicalPages@12
247NtAllocateUserPhysicalPagesEx@20
248NtAllocateUuids@16
249NtAllocateVirtualMemory@24191NtAllocateVirtualMemory@24
250NtAllocateVirtualMemoryEx@28
251NtAlpcAcceptConnectPort@36
252NtAlpcCancelMessage@12
253NtAlpcConnectPort@44
254NtAlpcConnectPortEx@44
255NtAlpcCreatePort@12
256NtAlpcCreatePortSection@24
257NtAlpcCreateResourceReserve@16
258NtAlpcCreateSectionView@12
259NtAlpcCreateSecurityContext@12
260NtAlpcDeletePortSection@12
261NtAlpcDeleteResourceReserve@12
262NtAlpcDeleteSectionView@12
263NtAlpcDeleteSecurityContext@12
264NtAlpcDisconnectPort@8
265NtAlpcImpersonateClientContainerOfPort@12
266NtAlpcImpersonateClientOfPort@12
267NtAlpcOpenSenderProcess@24
268NtAlpcOpenSenderThread@24
269NtAlpcQueryInformation@20
270NtAlpcQueryInformationMessage@24
271NtAlpcRevokeSecurityContext@12
272NtAlpcSendWaitReceivePort@32
273NtAlpcSetInformation@16
274NtApphelpCacheControl@8
275NtAreMappedFilesTheSame@8
276NtAssignProcessToJobObject@8
277NtAssociateWaitCompletionPacket@32
278NtCallEnclave@16
279NtCallbackReturn@12
280NtCancelDeviceWakeupRequest@4
281NtCancelIoFile@8192NtCancelIoFile@8
282NtCancelIoFileEx@12
283NtCancelSynchronousIoFile@12
284NtCancelTimer2@8
285NtCancelTimer@8193NtCancelTimer@8
286NtCancelWaitCompletionPacket@8
287NtChangeProcessState@24
288NtChangeThreadState@24
289NtClearEvent@4
290NtClose@4
291NtCloseObjectAuditAlarm@12194NtCloseObjectAuditAlarm@12
292NtCommitComplete@8
293NtCommitEnlistment@8
294NtCommitRegistryTransaction@8
295NtCommitTransaction@8
296NtCompactKeys@8
297NtCompareObjects@8
298NtCompareSigningLevels@8
299NtCompareTokens@12
300NtCompleteConnectPort@4195NtCompleteConnectPort@4
301NtCompressKey@4
302NtConnectPort@32196NtConnectPort@32
303NtContinue@8197NtContinue@8
304NtContinueEx@8
305NtConvertBetweenAuxiliaryCounterAndPerformanceCounter@16
306NtCreateCrossVmEvent@24
307NtCreateCrossVmMutant@24
308NtCreateDebugObject@16
309NtCreateDirectoryObject@12198NtCreateDirectoryObject@12
310NtCreateDirectoryObjectEx@20
311NtCreateEnclave@36
312NtCreateEnlistment@32
313NtCreateEvent@20199NtCreateEvent@20
314NtCreateEventPair@12200NtCreateEventPair@12
315NtCreateFile@44
316NtCreateIRTimer@12
317NtCreateIoCompletion@16
318NtCreateIoRing@20
319NtCreateJobObject@12
320NtCreateJobSet@12
321NtCreateKey@28201NtCreateKey@28
322NtCreateKeyTransacted@32
323NtCreateKeyedEvent@16
324NtCreateLowBoxToken@36
325NtCreateMailslotFile@32202NtCreateMailslotFile@32
326NtCreateMutant@16203NtCreateMutant@16
327NtCreateNamedPipeFile@56204NtCreateNamedPipeFile@56
328NtCreatePagingFile@16205NtCreatePagingFile@16
329NtCreatePartition@16
330NtCreatePort@20206NtCreatePort@20
331NtCreatePrivateNamespace@16
332NtCreateProcess@32207NtCreateProcess@32
333NtCreateProcessEx@36208NtCreateProfile@36 ; Windows NT 3.1-3.5 has ABI "NtCreateProfile@28", Windows NT 3.51 and new has ABI "NtCreateProfile@36"
334NtCreateProcessStateChange@20
335NtCreateProfile@36
336NtCreateProfileEx@40
337NtCreateRegistryTransaction@16
338NtCreateResourceManager@28
339NtCreateSection@28
340NtCreateSectionEx@36
341NtCreateSemaphore@20
342NtCreateSymbolicLinkObject@16209NtCreateSymbolicLinkObject@16
343NtCreateThread@32210NtCreateThread@32
344NtCreateThreadEx@44211NtCreateTimer@16 ; Windows NT 3.1-3.51 has ABI "NtCreateTimer@12", Windows NT 4.0 and new has ABI "NtCreateTimer@16"
345NtCreateThreadStateChange@20
346NtCreateTimer2@20
347NtCreateTimer@16
348NtCreateToken@52212NtCreateToken@52
349NtCreateTokenEx@68
350NtCreateTransaction@40
351NtCreateTransactionManager@24
352NtCreateUserProcess@44
353NtCreateWaitCompletionPacket@12
354NtCreateWaitablePort@20
355NtCreateWnfStateName@28
356NtCreateWorkerFactory@40
357NtCurrentTeb@0
358NtDebugActiveProcess@8
359NtDebugContinue@12
360NtDelayExecution@8213NtDelayExecution@8
361NtDeleteAtom@4
362NtDeleteBootEntry@4
363NtDeleteDriverEntry@4
364NtDeleteFile@4
365NtDeleteKey@4214NtDeleteKey@4
366NtDeleteObjectAuditAlarm@12
367NtDeletePrivateNamespace@4
368NtDeleteValueKey@8215NtDeleteValueKey@8
369NtDeleteWnfStateData@8
370NtDeleteWnfStateName@4
371NtDeviceIoControlFile@40216NtDeviceIoControlFile@40
372NtDirectGraphicsCall@20
373NtDisableLastKnownGood@0
374NtDisplayString@4217NtDisplayString@4
375NtDrawText@4
376NtDuplicateObject@28218NtDuplicateObject@28
377NtDuplicateToken@24219NtDuplicateToken@24
378NtEnableLastKnownGood@0
379NtEnumerateBootEntries@8
380NtEnumerateDriverEntries@8
381NtEnumerateKey@24220NtEnumerateKey@24
382NtEnumerateSystemEnvironmentValuesEx@12
383NtEnumerateTransactionObject@20
384NtEnumerateValueKey@24221NtEnumerateValueKey@24
385NtExtendSection@8222NtExtendSection@8
386NtFilterBootOption@20
387NtFilterToken@24
388NtFilterTokenEx@56
389NtFindAtom@12
390NtFlushBuffersFile@8223NtFlushBuffersFile@8
391NtFlushBuffersFileEx@20
392NtFlushInstallUILanguage@8
393NtFlushInstructionCache@12224NtFlushInstructionCache@12
394NtFlushKey@4225NtFlushKey@4
395NtFlushProcessWriteBuffers@0
396NtFlushVirtualMemory@16226NtFlushVirtualMemory@16
397NtFlushWriteBuffer@0227NtFlushWriteBuffer@0
398NtFreeUserPhysicalPages@12
399NtFreeVirtualMemory@16228NtFreeVirtualMemory@16
400NtFreezeRegistry@4
401NtFreezeTransactions@8
402NtFsControlFile@40229NtFsControlFile@40
403NtGetCachedSigningLevel@24
404NtGetCompleteWnfStateSubscription@24
405NtGetContextThread@8230NtGetContextThread@8
406NtGetCurrentProcessorNumber@0231; NtGetTickCount@0 ; removed in Windows XP
407NtGetCurrentProcessorNumberEx@4
408NtGetDevicePowerState@8
409NtGetMUIRegistryInfo@12
410NtGetNextProcess@20
411NtGetNextThread@24
412NtGetNlsSectionPtr@20
413NtGetNotificationResourceManager@28
414NtGetPlugPlayEvent@16
415NtGetTickCount@0
416NtGetWriteWatch@28
417NtImpersonateAnonymousToken@4
418NtImpersonateClientOfPort@8232NtImpersonateClientOfPort@8
419NtImpersonateThread@12233NtImpersonateThread@12
420NtInitializeEnclave@20
421NtInitializeNlsFiles@16 ;Check!!! gendef says 12
422NtInitializeRegistry@4234NtInitializeRegistry@4
423NtInitiatePowerAction@16235; NtInitializeVDM@0 ; removed in Windows NT 3.5
424NtIsProcessInJob@8
425NtIsSystemResumeAutomatic@0
426NtIsUILanguageComitted@0
427NtListenPort@8236NtListenPort@8
428NtLoadDriver@4237NtLoadDriver@4
429NtLoadEnclaveData@36
430NtLoadKey2@12
431NtLoadKey3@32
432NtLoadKey@8238NtLoadKey@8
433NtLoadKeyEx@32
434NtLockFile@40239NtLockFile@40
435NtLockProductActivationKeys@8
436NtLockRegistryKey@4
437NtLockVirtualMemory@16240NtLockVirtualMemory@16
438NtMakePermanentObject@4
439NtMakeTemporaryObject@4241NtMakeTemporaryObject@4
440NtManageHotPatch@16
441NtManagePartition@20
442NtMapCMFModule@24
443NtMapUserPhysicalPages@12
444NtMapUserPhysicalPagesScatter@12
445NtMapViewOfSection@40
446NtMapViewOfSectionEx@36
447NtModifyBootEntry@4
448NtModifyDriverEntry@4
449NtNotifyChangeDirectoryFile@36242NtNotifyChangeDirectoryFile@36
450NtNotifyChangeDirectoryFileEx@40
451NtNotifyChangeKey@40243NtNotifyChangeKey@40
452NtNotifyChangeMultipleKeys@48
453NtNotifyChangeSession@32
454NtOpenDirectoryObject@12
455NtOpenEnlistment@20
456NtOpenEvent@12244NtOpenEvent@12
457NtOpenEventPair@12245NtOpenEventPair@12
458NtOpenFile@24246NtOpenFile@24
459NtOpenIoCompletion@12
460NtOpenJobObject@12
461NtOpenKey@12247NtOpenKey@12
462NtOpenKeyEx@16
463NtOpenKeyTransacted@16
464NtOpenKeyTransactedEx@20
465NtOpenKeyedEvent@12
466NtOpenMutant@12248NtOpenMutant@12
467NtOpenObjectAuditAlarm@48249NtOpenObjectAuditAlarm@48
468NtOpenPartition@12
469NtOpenPrivateNamespace@16
470NtOpenProcess@16250NtOpenProcess@16
471NtOpenProcessToken@12251NtOpenProcessToken@12
472NtOpenProcessTokenEx@16
473NtOpenRegistryTransaction@12
474NtOpenResourceManager@20
475NtOpenSection@12252NtOpenSection@12
476NtOpenSemaphore@12253NtOpenSemaphore@12
477NtOpenSession@12
478NtOpenSymbolicLinkObject@12254NtOpenSymbolicLinkObject@12
479NtOpenThread@16255NtOpenThread@16
480NtOpenThreadToken@16256NtOpenThreadToken@16
481NtOpenThreadTokenEx@20
482NtOpenTimer@12257NtOpenTimer@12
483NtOpenTransaction@20
484NtOpenTransactionManager@24
485NtPlugPlayControl@12
486NtPowerInformation@20
487NtPrePrepareComplete@8
488NtPrePrepareEnlistment@8
489NtPrepareComplete@8
490NtPrepareEnlistment@8
491NtPrivilegeCheck@12258NtPrivilegeCheck@12
492NtPrivilegeObjectAuditAlarm@24259NtPrivilegeObjectAuditAlarm@24
493NtPrivilegedServiceAuditAlarm@20260NtPrivilegedServiceAuditAlarm@20
494NtPropagationComplete@16
495NtPropagationFailed@12
496NtProtectVirtualMemory@20261NtProtectVirtualMemory@20
497NtPssCaptureVaSpaceBulk@20
498NtPulseEvent@8262NtPulseEvent@8
499NtQueryAttributesFile@8
500NtQueryAuxiliaryCounterFrequency@4
501NtQueryBootEntryOrder@8
502NtQueryBootOptions@8
503NtQueryDebugFilterState@8
504NtQueryDefaultLocale@8263NtQueryDefaultLocale@8
505NtQueryDefaultUILanguage@4
506NtQueryDirectoryFile@44264NtQueryDirectoryFile@44
507NtQueryDirectoryFileEx@40
508NtQueryDirectoryObject@28265NtQueryDirectoryObject@28
509NtQueryDriverEntryOrder@8
510NtQueryEaFile@36
511NtQueryEvent@20266NtQueryEvent@20
512NtQueryFullAttributesFile@8
513NtQueryInformationAtom@20
514NtQueryInformationByName@20
515NtQueryInformationEnlistment@20
516NtQueryInformationFile@20267NtQueryInformationFile@20
517NtQueryInformationJobObject@20
518NtQueryInformationPort@20268NtQueryInformationPort@20
519NtQueryInformationProcess@20269NtQueryInformationProcess@20
520NtQueryInformationResourceManager@20
521NtQueryInformationThread@20270NtQueryInformationThread@20
522NtQueryInformationToken@20271NtQueryInformationToken@20
523NtQueryInformationTransaction@20272NtQueryIntervalProfile@8 ; Windows NT 3.1-3.5 has ABI "NtQueryIntervalProfile@4", Windows NT 3.51 and new has ABI "NtQueryIntervalProfile@8"
524NtQueryInformationTransactionManager@20
525NtQueryInformationWorkerFactory@20
526NtQueryInstallUILanguage@4
527NtQueryIntervalProfile@8
528NtQueryIoCompletion@20
529NtQueryIoRingCapabilities@8
530NtQueryKey@20273NtQueryKey@20
531NtQueryLicenseValue@20
532NtQueryMultipleValueKey@24
533NtQueryMutant@20274NtQueryMutant@20
534NtQueryObject@20275NtQueryObject@20
535NtQueryOpenSubKeys@8
536NtQueryOpenSubKeysEx@16
537NtQueryPerformanceCounter@8
538NtQueryPortInformationProcess@0
539NtQueryQuotaInformationFile@36
540NtQuerySection@20276NtQuerySection@20
541NtQuerySecurityAttributesToken@24
542NtQuerySecurityObject@20277NtQuerySecurityObject@20
543NtQuerySecurityPolicy@24
544NtQuerySemaphore@20278NtQuerySemaphore@20
545NtQuerySymbolicLinkObject@12279NtQuerySymbolicLinkObject@12
546NtQuerySystemEnvironmentValue@16280NtQuerySystemEnvironmentValue@16
547NtQuerySystemEnvironmentValueEx@20
548NtQuerySystemInformation@16281NtQuerySystemInformation@16
549NtQuerySystemInformationEx@24
550NtQuerySystemTime@4282NtQuerySystemTime@4
551NtQueryTimer@20283NtQueryTimer@20
552NtQueryTimerResolution@12
553NtQueryValueKey@24284NtQueryValueKey@24
554NtQueryVirtualMemory@24285NtQueryVirtualMemory@24
555NtQueryVolumeInformationFile@20286NtQueryVolumeInformationFile@20
556NtQueryWnfStateData@24
557NtQueryWnfStateNameInformation@20
558NtQueueApcThread@20
559NtQueueApcThreadEx2@28
560NtQueueApcThreadEx@24
561NtRaiseException@12287NtRaiseException@12
562NtRaiseHardError@24288NtRaiseHardError@24
563NtReadFile@36289NtReadFile@36
564NtReadFileScatter@36
565NtReadOnlyEnlistment@8
566NtReadRequestData@24290NtReadRequestData@24
567NtReadVirtualMemory@20291NtReadVirtualMemory@20
568NtReadVirtualMemoryEx@24
569NtRecoverEnlistment@8
570NtRecoverResourceManager@4
571NtRecoverTransactionManager@4
572NtRegisterProtocolAddressInformation@20
573NtRegisterThreadTerminatePort@4292NtRegisterThreadTerminatePort@4
574NtReleaseCMFViewOwnership@0
575NtReleaseKeyedEvent@16
576NtReleaseMutant@8293NtReleaseMutant@8
577NtReleaseSemaphore@12294; NtReleaseProcessMutant@0 ; removed in Windows NT 4.0
578NtReleaseWorkerFactoryWorker@4295; NtRenameValueKey@16 ; removed in Windows NT 3.5
579NtRemoveIoCompletion@20
580NtRemoveIoCompletionEx@24
581NtRemoveProcessDebug@8
582NtRenameKey@8
583NtRenameTransactionManager@8
584NtReplaceKey@12296NtReplaceKey@12
585NtReplacePartitionUnit@12
586NtReplyPort@8297NtReplyPort@8
587NtReplyWaitReceivePort@16298NtReplyWaitReceivePort@16
588NtReplyWaitReceivePortEx@20
589NtReplyWaitReplyPort@8299NtReplyWaitReplyPort@8
590NtRequestDeviceWakeup@4
591NtRequestPort@8300NtRequestPort@8
592NtRequestWaitReplyPort@12301NtRequestWaitReplyPort@12
593NtRequestWakeupLatency@4
594NtResetEvent@8302NtResetEvent@8
595NtResetWriteWatch@12
596NtRestoreKey@12303NtRestoreKey@12
597NtResumeProcess@4
598NtResumeThread@8304NtResumeThread@8
599NtRevertContainerImpersonation@0
600NtRollbackComplete@8
601NtRollbackEnlistment@8
602NtRollbackRegistryTransaction@8
603NtRollbackTransaction@8
604NtRollforwardTransactionManager@8
605NtSaveKey@8305NtSaveKey@8
606NtSaveKeyEx@12
607NtSaveMergedKeys@12
608NtSecureConnectPort@36
609NtSerializeBoot@0
610NtSetBootEntryOrder@8
611NtSetBootOptions@8
612NtSetCachedSigningLevel2@24
613NtSetCachedSigningLevel@20
614NtSetContextThread@8306NtSetContextThread@8
615NtSetDebugFilterState@12
616NtSetDefaultHardErrorPort@4307NtSetDefaultHardErrorPort@4
617NtSetDefaultLocale@8308NtSetDefaultLocale@8
618NtSetDefaultUILanguage@4
619NtSetDriverEntryOrder@8
620NtSetEaFile@16
621NtSetEvent@8309NtSetEvent@8
622NtSetEventBoostPriority@4
623NtSetHighEventPair@4310NtSetHighEventPair@4
624NtSetHighWaitLowEventPair@4311NtSetHighWaitLowEventPair@4
625NtSetIRTimer@8312; NtSetHighWaitLowThread@0 ; removed in Windows 2000
626NtSetInformationDebugObject@20
627NtSetInformationEnlistment@16
628NtSetInformationFile@20313NtSetInformationFile@20
629NtSetInformationIoRing@16
630NtSetInformationJobObject@16
631NtSetInformationKey@16314NtSetInformationKey@16
632NtSetInformationObject@16
633NtSetInformationProcess@16315NtSetInformationProcess@16
634NtSetInformationResourceManager@16
635NtSetInformationSymbolicLink@16
636NtSetInformationThread@16316NtSetInformationThread@16
637NtSetInformationToken@16317NtSetInformationToken@16
638NtSetInformationTransaction@16318NtSetIntervalProfile@8 ; Windows NT 3.1-3.5 has ABI "NtSetIntervalProfile@4", Windows NT 3.51 and new has ABI "NtSetIntervalProfile@8"
639NtSetInformationTransactionManager@16
640NtSetInformationVirtualMemory@24
641NtSetInformationWorkerFactory@16
642NtSetIntervalProfile@8
643NtSetIoCompletion@20
644NtSetIoCompletionEx@24
645NtSetLdtEntries@24319NtSetLdtEntries@24
646NtSetLowEventPair@4320NtSetLowEventPair@4
647NtSetLowWaitHighEventPair@4321NtSetLowWaitHighEventPair@4
648NtSetQuotaInformationFile@16322; NtSetLowWaitHighThread@0 ; removed in Windows 2000
649NtSetSecurityObject@12323NtSetSecurityObject@12
650NtSetSystemEnvironmentValue@8324NtSetSystemEnvironmentValue@8
651NtSetSystemEnvironmentValueEx@20
652NtSetSystemInformation@12
653NtSetSystemPowerState@12
654NtSetSystemTime@8325NtSetSystemTime@8
655NtSetThreadExecutionState@8326NtSetTimer@28 ; Windows NT 3.1-3.5 has ABI "NtSetTimer@20", Windows NT 3.51 has ABI "NtSetTimer@24", Windows NT 4.0 and new has ABI NtSetTimer@28
656NtSetTimer2@16
657NtSetTimer@28
658NtSetTimerEx@16
659NtSetTimerResolution@12
660NtSetUuidSeed@4
661NtSetValueKey@24327NtSetValueKey@24
662NtSetVolumeInformationFile@20328NtSetVolumeInformationFile@20
663NtSetWnfProcessNotificationEvent@4
664NtShutdownSystem@4329NtShutdownSystem@4
665NtShutdownWorkerFactory@8
666NtSignalAndWaitForSingleObject@16
667NtSinglePhaseReject@8
668NtStartProfile@4330NtStartProfile@4
669NtStopProfile@4331NtStopProfile@4
670NtSubmitIoRing@16
671NtSubscribeWnfStateChange@16
672NtSuspendProcess@4
673NtSuspendThread@8332NtSuspendThread@8
674NtSystemDebugControl@24333NtSystemDebugControl@24
675NtTerminateEnclave@8
676NtTerminateJobObject@8
677NtTerminateProcess@8334NtTerminateProcess@8
678NtTerminateThread@8335NtTerminateThread@8
679NtTestAlert@0336NtTestAlert@0
680NtThawRegistry@0
681NtThawTransactions@0
682NtTraceControl@24
683NtTraceEvent@16
684NtTranslateFilePath@16
685NtUmsThreadYield@4
686NtUnloadDriver@4337NtUnloadDriver@4
687NtUnloadKey2@8
688NtUnloadKey@4338NtUnloadKey@4
689NtUnloadKeyEx@8
690NtUnlockFile@20339NtUnlockFile@20
691NtUnlockVirtualMemory@16340NtUnlockVirtualMemory@16
692NtUnmapViewOfSection@8341NtVdmControl@8 ; Windows NT 3.1 has ABI "NtVdmControl@16", Windows NT 3.5 and new has ABI "NtVdmControl@8"
693NtUnmapViewOfSectionEx@12342; NtVdmStartExecution@0 ; removed in Windows NT 3.5
694NtUnsubscribeWnfStateChange@4
695NtUpdateWnfStateData@28
696NtVdmControl@8
697NtWaitForAlertByThreadId@8
698NtWaitForDebugEvent@16
699NtWaitForKeyedEvent@16
700NtWaitForMultipleObjects32@20
701NtWaitForMultipleObjects@20343NtWaitForMultipleObjects@20
702NtWaitForSingleObject@12344; NtWaitForProcessMutant@0 ; removed in Windows NT 4.0
703NtWaitForWorkViaWorkerFactory@8
704NtWaitHighEventPair@4345NtWaitHighEventPair@4
705NtWaitLowEventPair@4346NtWaitLowEventPair@4
706NtWorkerFactoryWorkerReady@4
707NtWow64CallFunction64@28
708NtWow64CsrAllocateCaptureBuffer@8
709NtWow64CsrAllocateMessagePointer@12
710NtWow64CsrCaptureMessageBuffer@16
711NtWow64CsrCaptureMessageString@20
712NtWow64CsrClientCallServer@16
713NtWow64CsrClientConnectToServer@20
714NtWow64CsrFreeCaptureBuffer@4
715NtWow64CsrGetProcessId@0
716NtWow64CsrIdentifyAlertableThread@0
717NtWow64CsrVerifyRegion@8
718NtWow64DebuggerCall@20
719NtWow64GetCurrentProcessorNumberEx@4
720NtWow64GetNativeSystemInformation@16
721NtWow64InterlockedPopEntrySList@4
722NtWow64QueryInformationProcess64@20
723NtWow64QueryVirtualMemory64@32
724NtWow64ReadVirtualMemory64@28
725NtWow64WriteVirtualMemory64@28
726NtWriteFile@36347NtWriteFile@36
727NtWriteFileGather@36
728NtWriteRequestData@24348NtWriteRequestData@24
729NtWriteVirtualMemory@20349NtWriteVirtualMemory@20
730NtYieldExecution@0
731; Not sure, but we assume here standard DefWindowProc arguments
732NtdllDefWindowProc_A@16
733NtdllDefWindowProc_W@16
734; Not sure, but we assume here standard DefDlgProc arguments
735NtdllDialogWndProc_A@16
736NtdllDialogWndProc_W@16
737PfxFindPrefix@8350PfxFindPrefix@8
738PfxInitialize@4351PfxInitialize@4
739PfxInsertPrefix@12352PfxInsertPrefix@12
740PfxRemovePrefix@8353PfxRemovePrefix@8
741PssNtCaptureSnapshot@16
742PssNtDuplicateSnapshot@20
743PssNtFreeRemoteSnapshot@8
744PssNtFreeSnapshot@4
745PssNtFreeWalkMarker@4
746PssNtQuerySnapshot@16
747PssNtValidateDescriptor@8
748PssNtWalkSnapshot@20
749RtlAbortRXact@4354RtlAbortRXact@4
750RtlAbsoluteToSelfRelativeSD@12355RtlAbsoluteToSelfRelativeSD@12
751RtlAcquirePebLock@0356RtlAcquirePebLock@0
752RtlAcquirePrivilege@16
753RtlAcquireReleaseSRWLockExclusive@4
754RtlAcquireResourceExclusive@8357RtlAcquireResourceExclusive@8
755RtlAcquireResourceShared@8358RtlAcquireResourceShared@8
756RtlAcquireSRWLockExclusive@4
757RtlAcquireSRWLockShared@4
758RtlActivateActivationContext@12
759RtlActivateActivationContextEx@16
760RtlAddAccessAllowedAce@16359RtlAddAccessAllowedAce@16
761RtlAddAccessAllowedAceEx@20
762RtlAddAccessAllowedObjectAce@28
763RtlAddAccessDeniedAce@16360RtlAddAccessDeniedAce@16
764RtlAddAccessDeniedAceEx@20
765RtlAddAccessDeniedObjectAce@28
766RtlAddAccessFilterAce@32
767RtlAddAce@20361RtlAddAce@20
768RtlAddActionToRXact@24362RtlAddActionToRXact@24
769RtlAddAtomToAtomTable@12
770RtlAddAttributeActionToRXact@32363RtlAddAttributeActionToRXact@32
771RtlAddAuditAccessAce@24364RtlAddAuditAccessAce@24
772RtlAddAuditAccessAceEx@28
773RtlAddAuditAccessObjectAce@36
774RtlAddCompoundAce@24
775RtlAddIntegrityLabelToBoundaryDescriptor@8
776RtlAddMandatoryAce@24
777RtlAddProcessTrustLabelAce@24
778RtlAddRefActivationContext@4
779RtlAddRange@36
780RtlAddRefMemoryStream@4
781RtlAddResourceAttributeAce@28
782RtlAddSIDToBoundaryDescriptor@8
783RtlAddScopedPolicyIDAce@20
784RtlAddVectoredContinueHandler@8
785RtlAddVectoredExceptionHandler@8
786RtlAddressInSectionTable@12
787RtlAdjustPrivilege@16365RtlAdjustPrivilege@16
788RtlAllocateActivationContextStack@4
789RtlAllocateAndInitializeSid@44366RtlAllocateAndInitializeSid@44
790RtlAllocateAndInitializeSidEx@16367; RtlAnalyzeProfile@0 ; removed in Windows NT 3.5
791RtlAllocateHandle@8
792RtlAllocateHeap@12
793RtlAllocateMemoryBlockLookaside@12
794RtlAllocateMemoryZone@12
795RtlAllocateWnfSerializationGroup@0
796RtlAnsiCharToUnicodeChar@4368RtlAnsiCharToUnicodeChar@4
797RtlAnsiStringToUnicodeSize@4
798RtlAnsiStringToUnicodeString@12
799RtlAppendAsciizToString@8369RtlAppendAsciizToString@8
800RtlAppendPathElement@12
801RtlAppendStringToString@8370RtlAppendStringToString@8
802RtlAppendUnicodeStringToString@8371RtlAppendUnicodeStringToString@8
803RtlAppendUnicodeToString@8372RtlAppendUnicodeToString@8
804RtlApplicationVerifierStop@40
805RtlApplyRXact@4373RtlApplyRXact@4
806RtlApplyRXactNoFlush@4374RtlApplyRXactNoFlush@4
807RtlAppxIsFileOwnedByTrustedInstaller@8
808RtlAreAllAccessesGranted@8375RtlAreAllAccessesGranted@8
809RtlAreAnyAccessesGranted@8376RtlAreAnyAccessesGranted@8
810RtlAreBitsClear@12377RtlAreBitsClear@12
811RtlAreBitsSet@12378RtlAreBitsSet@12
812RtlAreLongPathsEnabled@0
813RtlAssert@16379RtlAssert@16
814RtlAvlInsertNodeEx@16
815RtlAvlRemoveNode@8
816RtlBarrier@8
817RtlBarrierForDelete@8
818RtlCallbackLpcClient@12
819RtlCancelTimer@8
820RtlCanonicalizeDomainName@12
821RtlCapabilityCheck@12
822RtlCapabilityCheckForSingleSessionSku@12
823RtlCaptureContext@4
824RtlCaptureStackBackTrace@16380RtlCaptureStackBackTrace@16
825RtlCaptureStackContext@12
826RtlCharToInteger@12381RtlCharToInteger@12
827RtlCheckBootStatusIntegrity@8
828RtlCheckForOrphanedCriticalSections@4
829RtlCheckPortableOperatingSystem@4
830RtlCheckRegistryKey@8382RtlCheckRegistryKey@8
831RtlCheckSandboxedToken@8
832RtlCheckSystemBootStatusIntegrity@4
833RtlCheckTokenCapability@12
834RtlCheckTokenMembership@12
835RtlCheckTokenMembershipEx@16
836RtlCleanUpTEBLangLists@0
837RtlClearAllBits@4383RtlClearAllBits@4
838RtlClearBit@8
839RtlClearBits@12384RtlClearBits@12
840RtlClearThreadWorkOnBehalfTicket@0
841RtlCloneMemoryStream@8
842RtlCloneUserProcess@20
843RtlCmDecodeMemIoResource@8
844RtlCmEncodeMemIoResource@24
845RtlCommitDebugInfo@8
846RtlCommitMemoryStream@8
847RtlCompactHeap@8385RtlCompactHeap@8
848RtlCompareAltitudes@8
849RtlCompareExchangePointerMapping@16
850RtlCompareExchangePropertyStore@16
851RtlCompareMemory@12386RtlCompareMemory@12
852RtlCompareMemoryUlong@12387RtlCompareMemoryUlong@12
853RtlCompareString@12388RtlCompareString@12
854RtlCompareUnicodeString@12389RtlCompareUnicodeString@12
855RtlCompareUnicodeStrings@20
856RtlCompressBuffer@32
857RtlComputeCrc32@12
858RtlComputeImportTableHash@12
859RtlComputePrivatizedDllName_U@12
860RtlConnectToSm@16
861RtlConsoleMultiByteToUnicodeN@24390RtlConsoleMultiByteToUnicodeN@24
862RtlConstructCrossVmEventPath@12
863RtlConstructCrossVmMutexPath@12
864RtlContractHashTable@4
865RtlConvertDeviceFamilyInfoToString@16
866RtlConvertExclusiveToShared@4391RtlConvertExclusiveToShared@4
867RtlConvertLCIDToString@20
868RtlConvertLongToLargeInteger@4
869RtlConvertSRWLockExclusiveToShared@4
870RtlConvertSharedToExclusive@4392RtlConvertSharedToExclusive@4
871RtlConvertSidToUnicodeString@12393RtlConvertSidToUnicodeString@12
872RtlConvertToAutoInheritSecurityObject@24394RtlConvertUiListToApiList@12 ; removed in Windows 8.1
873RtlConvertUiListToApiList@12
874RtlConvertUlongToLargeInteger@4
875RtlCopyBitMap@12
876RtlCopyContext@12
877RtlCopyExtendedContext@12
878RtlCopyLuid@8395RtlCopyLuid@8
879RtlCopyLuidAndAttributesArray@12396RtlCopyLuidAndAttributesArray@12
880RtlCopyMappedMemory@12
881RtlCopyMemoryStreamTo@24
882RtlCopyOutOfProcessMemoryStreamTo@24
883RtlCopyRangeList@8
884RtlCopySecurityDescriptor@8397RtlCopySecurityDescriptor@8
885RtlCopySid@12398RtlCopySid@12
886RtlCopySidAndAttributesArray@28399RtlCopySidAndAttributesArray@28
887RtlCopyString@8400RtlCopyString@8
888RtlCopyUnicodeString@8401RtlCopyUnicodeString@8
889RtlCrc32@12
890RtlCrc64@16
891RtlCreateAcl@12402RtlCreateAcl@12
892RtlCreateActivationContext@24
893RtlCreateAndSetSD@20403RtlCreateAndSetSD@20
894RtlCreateAtomTable@8
895RtlCreateBootStatusDataFile@4
896RtlCreateBoundaryDescriptor@8
897RtlCreateEnvironment@8404RtlCreateEnvironment@8
898RtlCreateEnvironmentEx@12
899RtlCreateHashTable@12
900RtlCreateHashTableEx@16
901RtlCreateHeap@24
902RtlCreateLpcServer@24
903RtlCreateMemoryBlockLookaside@20
904RtlCreateMemoryZone@12
905RtlCreateProcessParameters@40405RtlCreateProcessParameters@40
906RtlCreateProcessParametersEx@44
907RtlCreateProcessParametersWithTemplate@12
908RtlCreateProcessReflection@24
909RtlCreateQueryDebugBuffer@8
910RtlCreateRegistryKey@8406RtlCreateRegistryKey@8
911RtlCreateSecurityDescriptor@8
912RtlCreateServiceSid@12
913RtlCreateSystemVolumeInformationFolder@4
914RtlCreateTagHeap@16
915RtlCreateTimer@28
916RtlCreateTimerQueue@4
917RtlCreateUnicodeString@8407RtlCreateUnicodeString@8
918RtlCreateUnicodeStringFromAsciiz@8408RtlCreateUnicodeStringFromAsciiz@8
919RtlCreateUserProcess@40409RtlCreateUserProcess@40
920RtlCreateUserProcessEx@20
921RtlCreateUserSecurityObject@28410RtlCreateUserSecurityObject@28
922RtlCreateUserStack@24
923RtlCreateUserThread@40411RtlCreateUserThread@40
924RtlCreateVirtualAccountSid@16
925RtlCultureNameToLCID@8
926RtlCustomCPToUnicodeN@24412RtlCustomCPToUnicodeN@24
927RtlCutoverTimeToSystemTime@16
928RtlDeCommitDebugInfo@12
929RtlDeNormalizeProcessParams@4413RtlDeNormalizeProcessParams@4
930RtlDeactivateActivationContext@8
931RtlDebugPrintTimes@0
932RtlDecodePointer@4
933RtlDecodeRemotePointer@12
934RtlDecodeSystemPointer@4
935RtlDecompressBuffer@24
936RtlDecompressBufferEx@28
937RtlDecompressFragment@32
938RtlDefaultNpAcl@4
939RtlDelayExecution@8
940RtlDelete@4414RtlDelete@4
941RtlDeleteAce@8415RtlDeleteAce@8
942RtlDeleteAtomFromAtomTable@8
943RtlDeleteBarrier@4
944RtlDeleteBoundaryDescriptor@4
945RtlDeleteCriticalSection@4416RtlDeleteCriticalSection@4
946RtlDeleteElementGenericTable@8417RtlDeleteElementGenericTable@8
947RtlDeleteElementGenericTableAvl@8
948RtlDeleteElementGenericTableAvlEx@8
949RtlDeleteHashTable@4
950RtlDeleteNoSplay@8
951RtlDeleteOwnersRanges@8
952RtlDeleteRange@24
953RtlDeleteRegistryValue@12418RtlDeleteRegistryValue@12
954RtlDeleteResource@4419RtlDeleteResource@4
955RtlDeleteSecurityObject@4420RtlDeleteSecurityObject@4
956RtlDeleteTimer@12
957RtlDeleteTimerQueue@4
958RtlDeleteTimerQueueEx@8
959RtlDeregisterSecureMemoryCacheCallback@4
960RtlDeregisterWait@4
961RtlDeregisterWaitEx@8
962RtlDeriveCapabilitySidsFromName@12
963RtlDestroyAtomTable@4
964RtlDestroyEnvironment@4421RtlDestroyEnvironment@4
965RtlDestroyHandleTable@4
966RtlDestroyHeap@4
967RtlDestroyMemoryBlockLookaside@4
968RtlDestroyMemoryZone@4
969RtlDestroyProcessParameters@4422RtlDestroyProcessParameters@4
970RtlDestroyQueryDebugBuffer@4
971RtlDetectHeapLeaks@0
972RtlDetermineDosPathNameType_U@4423RtlDetermineDosPathNameType_U@4
973RtlDisableThreadProfiling@4
974RtlDllShutdownInProgress@0
975RtlDnsHostNameToComputerName@12
976RtlDoesFileExists_U@4424RtlDoesFileExists_U@4
977RtlDoesNameContainWildCards@4
978RtlDosApplyFileIsolationRedirection_Ustr@36
979RtlDosLongPathNameToNtPathName_U_WithStatus@16
980RtlDosLongPathNameToRelativeNtPathName_U_WithStatus@16
981RtlDosPathNameToNtPathName_U@16425RtlDosPathNameToNtPathName_U@16
982RtlDosPathNameToNtPathName_U_WithStatus@16
983RtlDosPathNameToRelativeNtPathName_U@16
984RtlDosPathNameToRelativeNtPathName_U_WithStatus@16
985RtlDosSearchPath_U@24426RtlDosSearchPath_U@24
986RtlDosSearchPath_Ustr@36
987RtlDowncaseUnicodeChar@4
988RtlDowncaseUnicodeString@12
989RtlDumpResource@4427RtlDumpResource@4
990RtlDuplicateUnicodeString@12
991RtlEmptyAtomTable@8
992RtlEnableEarlyCriticalSectionEventCreation@0
993RtlEnableThreadProfiling@20
994RtlEncodePointer@4
995RtlEncodeRemotePointer@12
996RtlEncodeSystemPointer@4
997RtlEndEnumerationHashTable@8
998RtlEndStrongEnumerationHashTable@8
999RtlEndWeakEnumerationHashTable@8
1000RtlEnlargedIntegerMultiply@8
1001RtlEnlargedUnsignedDivide@16
1002RtlEnlargedUnsignedMultiply@8
1003RtlEnterCriticalSection@4428RtlEnterCriticalSection@4
1004RtlEnumProcessHeaps@8
1005RtlEnumerateEntryHashTable@8
1006RtlEnumerateGenericTable@8429RtlEnumerateGenericTable@8
1007RtlEnumerateGenericTableAvl@8
1008RtlEnumerateGenericTableLikeADirectory@28
1009RtlEnumerateGenericTableWithoutSplaying@8430RtlEnumerateGenericTableWithoutSplaying@8
1010RtlEnumerateGenericTableWithoutSplayingAvl@8
1011RtlEqualComputerName@8431RtlEqualComputerName@8
1012RtlEqualDomainName@8432RtlEqualDomainName@8
1013RtlEqualLuid@8433RtlEqualLuid@8
...@@ -1015,600 +435,141 @@ RtlEqualPrefixSid@8...@@ -1015,600 +435,141 @@ RtlEqualPrefixSid@8
1015RtlEqualSid@8435RtlEqualSid@8
1016RtlEqualString@12436RtlEqualString@12
1017RtlEqualUnicodeString@12437RtlEqualUnicodeString@12
1018RtlEqualWnfChangeStamps@8
1019RtlEraseUnicodeString@4438RtlEraseUnicodeString@4
1020RtlEthernetAddressToStringA@8439; RtlExpandEnvironmentStrings@16 ; removed in Windows NT 3.5
1021RtlEthernetAddressToStringW@8
1022RtlEthernetStringToAddressA@12
1023RtlEthernetStringToAddressW@12
1024RtlExitUserProcess@4
1025RtlExitUserThread@4 ; Not sure, but we assume @4
1026RtlExpandEnvironmentStrings@24
1027RtlExpandEnvironmentStrings_U@16440RtlExpandEnvironmentStrings_U@16
1028RtlExpandHashTable@4
1029RtlExtendCorrelationVector@4
1030RtlExtendMemoryBlockLookaside@8
1031RtlExtendMemoryZone@8
1032RtlExtendedIntegerMultiply@12
1033RtlExtendedLargeIntegerDivide@16
1034RtlExtendedMagicDivide@20
1035RtlExtractBitMap@16
1036RtlExtendHeap@16
1037RtlFillMemory@12
1038RtlFillMemoryUlong@12441RtlFillMemoryUlong@12
1039RtlFillMemoryUlonglong@16
1040RtlFinalReleaseOutOfProcessMemoryStream@4
1041RtlFindAceByType@12
1042RtlFindActivationContextSectionGuid@20
1043RtlFindActivationContextSectionString@20
1044RtlFindCharInUnicodeString@16
1045RtlFindClearBits@12442RtlFindClearBits@12
1046RtlFindClearBitsAndSet@12443RtlFindClearBitsAndSet@12
1047RtlFindClearRuns@16
1048RtlFindClosestEncodableLength@12
1049RtlFindExportedRoutineByName@8
1050RtlFindLastBackwardRunClear@12
1051RtlFindLeastSignificantBit@8
1052RtlFindLongestRunClear@8444RtlFindLongestRunClear@8
1053RtlFindLongestRunSet@8445RtlFindLongestRunSet@8 ; removed in Windows 2000
1054RtlFindMessage@20446RtlFindMessage@20
1055RtlFindMostSignificantBit@8
1056RtlFindNextForwardRunClear@12
1057RtlFindRange@48
1058RtlFindSetBits@12447RtlFindSetBits@12
1059RtlFindSetBitsAndClear@12448RtlFindSetBitsAndClear@12
1060RtlFindUnicodeSubstring@12
1061RtlFirstEntrySList@4
1062RtlFirstFreeAce@8449RtlFirstFreeAce@8
1063RtlFlsAlloc@8
1064RtlFlsFree@4
1065RtlFlsGetValue@8
1066RtlFlsSetValue@8
1067RtlFlushHeaps@0
1068RtlFlushSecureMemoryCache@8
1069RtlFormatCurrentUserKeyPath@4
1070RtlFormatMessage@36450RtlFormatMessage@36
1071RtlFormatMessageEx@40
1072RtlFreeActivationContextStack@4
1073RtlFreeAnsiString@4451RtlFreeAnsiString@4
1074RtlFreeHandle@8
1075RtlFreeHeap@12
1076RtlFreeMemoryBlockLookaside@8
1077RtlFreeOemString@4452RtlFreeOemString@4
1078RtlFreeSid@4453RtlFreeSid@4
1079RtlFreeThreadActivationContextStack@0
1080RtlFreeUTF8String@4
1081RtlFreeUnicodeString@4454RtlFreeUnicodeString@4
1082RtlFreeUserStack@4455RtlGenerate8dot3Name@16 ; Windows NT 3.1 has ABI "RtlGenerate8dot3Name@12", Windows NT 3.5 and new has ABI "RtlGenerate8dot3Name@16"
1083RtlFreeUserThreadStack@8
1084RtlGUIDFromString@8
1085RtlGenerate8dot3Name@16
1086RtlGetAce@12456RtlGetAce@12
1087RtlGetActiveActivationContext@4
1088RtlGetActiveConsoleId@0
1089RtlGetAppContainerNamedObjectPath@16
1090RtlGetAppContainerParent@8
1091RtlGetAppContainerSidType@8
1092RtlGetCallersAddress@8457RtlGetCallersAddress@8
1093RtlGetCompressionWorkSpaceSize@12
1094RtlGetConsoleSessionForegroundProcessId@0
1095RtlGetControlSecurityDescriptor@12458RtlGetControlSecurityDescriptor@12
1096RtlGetCriticalSectionRecursionCount@4
1097RtlGetCurrentDirectory_U@8459RtlGetCurrentDirectory_U@8
1098RtlGetCurrentPeb@0
1099RtlGetCurrentProcessorNumber@0
1100RtlGetCurrentProcessorNumberEx@4
1101RtlGetCurrentServiceSessionId@0
1102RtlGetCurrentTransaction@0
1103RtlGetDaclSecurityDescriptor@16460RtlGetDaclSecurityDescriptor@16
1104RtlGetDeviceFamilyInfoEnum@12
1105RtlGetElementGenericTable@8461RtlGetElementGenericTable@8
1106RtlGetElementGenericTableAvl@8
1107RtlGetEnabledExtendedFeatures@8
1108RtlGetExePath@8
1109RtlGetExtendedContextLength2@16
1110RtlGetExtendedContextLength@8
1111RtlGetExtendedFeaturesMask@4
1112RtlGetFileMUIPath@28
1113RtlGetFirstRange@12
1114RtlGetFrame@0
1115RtlGetFullPathName_U@16462RtlGetFullPathName_U@16
1116RtlGetFullPathName_UEx@20
1117RtlGetFullPathName_UstrEx@32
1118RtlGetGroupSecurityDescriptor@12463RtlGetGroupSecurityDescriptor@12
1119RtlGetImageFileMachines@8464; RtlGetHeapUserValue@4 ; removed in Windows NT 3.5
1120RtlGetIntegerAtom@8
1121RtlGetInterruptTimePrecise@4
1122RtlGetLastNtStatus@0
1123RtlGetLastWin32Error@0
1124RtlGetLengthWithoutLastFullDosOrNtPathElement@12
1125RtlGetLengthWithoutTrailingPathSeperators@12
1126RtlGetLocaleFileMappingAddress@12
1127RtlGetLongestNtPathLength@0
1128RtlGetMultiTimePrecise@12
1129RtlGetNativeSystemInformation@16
1130RtlGetNextRange@12
1131RtlGetNextEntryHashTable@8
1132RtlGetNtGlobalFlags@0465RtlGetNtGlobalFlags@0
1133RtlGetNtProductType@4466RtlGetNtProductType@4
1134RtlGetNtSystemRoot@0
1135RtlGetNtVersionNumbers@12
1136RtlGetOwnerSecurityDescriptor@12467RtlGetOwnerSecurityDescriptor@12
1137RtlGetParentLocaleName@16
1138RtlGetPersistedStateLocation@28
1139RtlGetProcessHeaps@8
1140RtlGetProcessPreferredUILanguages@16
1141RtlGetProductInfo@20
1142RtlGetReturnAddressHijackTarget@0
1143RtlGetSaclSecurityDescriptor@16468RtlGetSaclSecurityDescriptor@16
1144RtlGetSearchPath@4
1145RtlGetSecurityDescriptorRMControl@8
1146RtlGetSessionProperties@8
1147RtlGetSetBootStatusData@24
1148RtlGetSuiteMask@0
1149RtlGetSystemBootStatus@16
1150RtlGetSystemBootStatusEx@12
1151RtlGetSystemGlobalData@12
1152RtlGetSystemPreferredUILanguages@20
1153RtlGetSystemTimeAndBias@12
1154RtlGetSystemTimePrecise@0
1155RtlGetThreadErrorMode@0
1156RtlGetThreadLangIdByIndex@16
1157RtlGetThreadPreferredUILanguages@16
1158RtlGetThreadWorkOnBehalfTicket@8
1159RtlGetTokenNamedObjectPath@12
1160RtlGetUILanguageInfo@20
1161RtlGetUnloadEventTrace@0
1162RtlGetUnloadEventTraceEx@12
1163RtlGetUserInfoHeap@20
1164RtlGetUserPreferredUILanguages@20
1165RtlGetVersion@4
1166RtlGuardCheckLongJumpTarget@12
1167RtlHashUnicodeString@16
1168RtlHeapTrkInitialize@4
1169RtlIdentifierAuthoritySid@4469RtlIdentifierAuthoritySid@4
1170RtlIdnToAscii@20
1171RtlIdnToNameprepUnicode@20
1172RtlIdnToUnicode@20
1173RtlImageDirectoryEntryToData@16
1174RtlImageNtHeader@4
1175RtlImageNtHeaderEx@20
1176RtlImageRvaToSection@12
1177RtlImageRvaToVa@16
1178RtlImpersonateLpcClient@8
1179RtlImpersonateSelf@4470RtlImpersonateSelf@4
1180RtlImpersonateSelfEx@12
1181RtlIncrementCorrelationVector@4
1182RtlInitAnsiString@8
1183RtlInitAnsiStringEx@8
1184RtlInitBarrier@12
1185RtlInitCodePageTable@8471RtlInitCodePageTable@8
1186RtlInitEnumerationHashTable@8
1187RtlInitMemoryStream@4
1188RtlInitNlsTables@16472RtlInitNlsTables@16
1189RtlInitOutOfProcessMemoryStream@4
1190RtlInitString@8
1191RtlInitStringEx@8
1192RtlInitStrongEnumerationHashTable@8
1193RtlInitUTF8String@8
1194RtlInitUTF8StringEx@8
1195RtlInitUnicodeString@8
1196RtlInitUnicodeStringEx@8
1197RtlInitWeakEnumerationHashTable@8
1198RtlInitializeAtomPackage@4
1199RtlInitializeBitMap@12473RtlInitializeBitMap@12
1200RtlInitializeConditionVariable@4
1201RtlInitializeContext@20474RtlInitializeContext@20
1202RtlInitializeCorrelationVector@12
1203RtlInitializeCriticalSection@4475RtlInitializeCriticalSection@4
1204RtlInitializeCriticalSectionAndSpinCount@8
1205RtlInitializeCriticalSectionEx@12
1206RtlInitializeExceptionChain@4
1207RtlInitializeExtendedContext2@20
1208RtlInitializeExtendedContext@12
1209RtlInitializeGenericTable@20476RtlInitializeGenericTable@20
1210RtlInitializeGenericTableAvl@20477; RtlInitializeProfile@4 ; removed in Windows NT 3.5
1211RtlInitializeHandleTable@12
1212RtlInitializeNtUserPfn@24
1213RtlInitializeRXact@12478RtlInitializeRXact@12
1214RtlInitializeResource@4479RtlInitializeResource@4
1215RtlInitializeSListHead@4
1216RtlInitializeSRWLock@4
1217RtlInitializeSid@12480RtlInitializeSid@12
1218RtlInitializeSidEx@0481; RtlInitializeStackTraceDataBase@12 ; removed in Windows NT 3.51, added back in Windows XP SP2 and removed again in Windows Server 2003
1219RtlInsertElementGenericTable@16482RtlInsertElementGenericTable@16
1220RtlInsertElementGenericTableAvl@16
1221RtlInsertElementGenericTableFull@24
1222RtlInsertElementGenericTableFullAvl@24
1223RtlInsertEntryHashTable@16
1224RtlInt64ToUnicodeString@16
1225RtlIntegerToChar@16483RtlIntegerToChar@16
1226RtlIntegerToUnicodeString@12
1227RtlInterlockedClearBitRun@12
1228RtlInterlockedCompareExchange64@20
1229RtlInterlockedFlushSList@4
1230RtlInterlockedPopEntrySList@4
1231RtlInterlockedPushEntrySList@8
1232RtlInterlockedPushListSListEx@16
1233RtlInvertRangeList@8
1234RtlInterlockedSetBitRun@12
1235RtlIoDecodeMemIoResource@16
1236RtlIoEncodeMemIoResource@40
1237RtlIpv4AddressToStringA@8
1238RtlIpv4AddressToStringExA@16
1239RtlIpv4AddressToStringExW@16
1240RtlIpv4AddressToStringW@8
1241RtlIpv4StringToAddressA@16
1242RtlIpv4StringToAddressExA@16
1243RtlIpv4StringToAddressExW@16
1244RtlIpv4StringToAddressW@16
1245RtlIpv6AddressToStringA@8
1246RtlIpv6AddressToStringExA@20
1247RtlIpv6AddressToStringExW@20
1248RtlIpv6AddressToStringW@8
1249RtlIpv6StringToAddressA@12
1250RtlIpv6StringToAddressExA@16
1251RtlIpv6StringToAddressExW@16
1252RtlIpv6StringToAddressW@12
1253RtlIsActivationContextActive@4
1254RtlIsApiSetImplemented@4
1255RtlIsCapabilitySid@4
1256RtlIsCloudFilesPlaceholder@8
1257RtlIsCriticalSectionLocked@4
1258RtlIsCriticalSectionLockedByThread@4
1259RtlIsCurrentProcess@4
1260RtlIsCurrentThread@4
1261RtlIsCurrentThreadAttachExempt@0
1262RtlIsDosDeviceName_U@4484RtlIsDosDeviceName_U@4
1263RtlIsElevatedRid@4
1264RtlIsEnclaveFeaturePresent@4
1265RtlIsGenericTableEmpty@4485RtlIsGenericTableEmpty@4
1266RtlIsGenericTableEmptyAvl@4
1267RtlIsMultiSessionSku@0
1268RtlIsMultiUsersInSessionSku@0
1269RtlIsNameInExpression@16
1270RtlIsNameInUnUpcasedExpression@16
1271RtlIsNameLegalDOS8Dot3@12
1272RtlIsNonEmptyDirectoryReparsePointAllowed@4
1273RtlIsNormalizedString@16
1274RtlIsPackageSid@4
1275RtlIsParentOfChildAppContainer@8
1276RtlIsPartialPlaceholder@8
1277RtlIsPartialPlaceholderFileHandle@8
1278RtlIsPartialPlaceholderFileInfo@12
1279RtlIsProcessorFeaturePresent@4
1280RtlIsRangeAvailable@40
1281RtlIsStateSeparationEnabled@0
1282RtlIsTextUnicode@12
1283RtlIsThreadWithinLoaderCallout@0
1284RtlIsUntrustedObject@12
1285RtlIsValidHandle@8
1286RtlIsValidIndexHandle@12
1287RtlIsValidLocaleName@8
1288RtlIsValidProcessTrustLabelSid@4
1289RtlIsZeroMemory@8
1290RtlKnownExceptionFilter@4
1291RtlLCIDToCultureName@8
1292RtlLargeIntegerAdd@16
1293RtlLargeIntegerArithmeticShift@12
1294RtlLargeIntegerDivide@20
1295RtlLargeIntegerNegate@8
1296RtlLargeIntegerShiftLeft@12
1297RtlLargeIntegerShiftRight@12
1298RtlLargeIntegerSubtract@16
1299RtlLargeIntegerToChar@16486RtlLargeIntegerToChar@16
1300RtlLcidToLocaleName@16
1301RtlLeaveCriticalSection@4487RtlLeaveCriticalSection@4
1302RtlLengthRequiredSid@4488RtlLengthRequiredSid@4
1303RtlLengthSecurityDescriptor@4489RtlLengthSecurityDescriptor@4
1304RtlLengthSid@4490RtlLengthSid@4
1305RtlLengthSidAsUnicodeString@8
1306RtlLoadString@32
1307RtlLocalTimeToSystemTime@8491RtlLocalTimeToSystemTime@8
1308RtlLocaleNameToLcid@12
1309RtlLocateExtendedFeature2@16
1310RtlLocateExtendedFeature@12
1311RtlLocateLegacyContext@8
1312RtlLockBootStatusData@4
1313RtlLockCurrentThread@0
1314RtlLockHeap@4492RtlLockHeap@4
1315RtlLockMemoryBlockLookaside@4493; RtlLogStackBackTrace@0 ; removed in Windows NT 3.51
1316RtlLockMemoryStreamRegion@24
1317RtlLockMemoryZone@4
1318RtlLockModuleSection@4
1319RtlLogStackBackTrace@0
1320RtlLookupAtomInAtomTable@12
1321RtlLookupElementGenericTable@8494RtlLookupElementGenericTable@8
1322RtlLookupElementGenericTableAvl@8495; RtlLookupSymbolByAddress@24 ; removed in Windows NT 3.51
1323RtlLookupElementGenericTableFull@16496; RtlLookupSymbolByName@16 ; removed in Windows NT 3.51
1324RtlLookupElementGenericTableFullAvl@16
1325RtlLookupEntryHashTable@12
1326RtlLookupFirstMatchingElementGenericTableAvl@12
1327RtlMakeSelfRelativeSD@12497RtlMakeSelfRelativeSD@12
1328RtlMapGenericMask@8498RtlMapGenericMask@8
1329RtlMapSecurityErrorToNtStatus@4
1330RtlMergeRangeLists@16
1331RtlMoveMemory@12
1332RtlMultiAppendUnicodeStringBuffer@12
1333RtlMultiByteToUnicodeN@20
1334RtlMultiByteToUnicodeSize@12499RtlMultiByteToUnicodeSize@12
1335RtlMultipleAllocateHeap@20
1336RtlMultipleFreeHeap@16
1337RtlNewInstanceSecurityObject@40500RtlNewInstanceSecurityObject@40
1338RtlNewSecurityGrantedAccess@24501RtlNewSecurityGrantedAccess@24
1339RtlNewSecurityObject@24502RtlNewSecurityObject@24
1340RtlNewSecurityObjectEx@32
1341RtlNewSecurityObjectWithMultipleInheritance@36
1342RtlNormalizeProcessParams@4503RtlNormalizeProcessParams@4
1343RtlNormalizeSecurityDescriptor@20
1344RtlNormalizeString@20
1345RtlNotifyFeatureUsage@4
1346RtlNtPathNameToDosPathName@16
1347RtlNtStatusToDosError@4
1348RtlNtStatusToDosErrorNoTeb@4
1349RtlNumberGenericTableElements@4504RtlNumberGenericTableElements@4
1350RtlNumberGenericTableElementsAvl@4
1351RtlNumberOfClearBits@4505RtlNumberOfClearBits@4
1352RtlNumberOfClearBitsInRange@12
1353RtlNumberOfSetBits@4506RtlNumberOfSetBits@4
1354RtlNumberOfSetBitsInRange@12
1355RtlNumberOfSetBitsUlongPtr@4
1356RtlOemStringToUnicodeSize@4507RtlOemStringToUnicodeSize@4
1357RtlOemStringToUnicodeString@12508RtlOemStringToUnicodeString@12
1358RtlOemToUnicodeN@20509RtlOemToUnicodeN@20
1359RtlOpenCurrentUser@8510RtlOpenCurrentUser@8
1360RtlOsDeploymentState@4
1361RtlOwnerAcesPresent@4
1362RtlPcToFileHeader@8511RtlPcToFileHeader@8
1363RtlPinAtomInAtomTable@8
1364RtlPopFrame@4
1365RtlPrefixString@12512RtlPrefixString@12
1366RtlPrefixUnicodeString@12513RtlPrefixUnicodeString@12
1367RtlProcessFlsData@4514; RtlQueryEnvironmentVariable@0 ; removed in Windows NT 3.5
1368RtlProtectHeap@8
1369RtlPublishWnfStateData@24
1370RtlPushFrame@4
1371RtlQueryActivationContextApplicationSettings@28
1372RtlQueryAllFeatureConfigurations@16
1373RtlQueryAtomInAtomTable@24
1374RtlQueryCriticalSectionOwner@4
1375RtlQueryDepthSList@4
1376RtlQueryDynamicTimeZoneInformation@4
1377RtlQueryElevationFlags@4
1378RtlQueryEnvironmentVariable@24
1379RtlQueryEnvironmentVariable_U@12515RtlQueryEnvironmentVariable_U@12
1380RtlQueryFeatureConfiguration@16
1381RtlQueryFeatureConfigurationChangeStamp@0
1382RtlQueryFeatureUsageNotificationSubscriptions@8
1383RtlQueryHeapInformation@20
1384RtlQueryImageMitigationPolicy@20
1385RtlQueryInformationAcl@16516RtlQueryInformationAcl@16
1386RtlQueryInformationActivationContext@28517; RtlQueryModuleInformation@24 ; removed in Windows NT 3.51
1387RtlQueryInformationActiveActivationContext@16518RtlQueryProcessBackTraceInformation@4 ; Windows NT 3.1-3.5 has ABI "RtlQueryProcessBackTraceInformation@12", Windows NT 3.51 and new has ABI "RtlQueryProcessBackTraceInformation@4"
1388RtlQueryInterfaceMemoryStream@12519RtlQueryProcessHeapInformation@4 ; Windows NT 3.1-3.5 has ABI "RtlQueryProcessHeapInformation@12", Windows NT 3.51 and new has ABI "RtlQueryProcessHeapInformation@4"
1389RtlQueryModuleInformation@12520RtlQueryProcessLockInformation@4 ; Windows NT 3.1-3.5 has ABI "RtlQueryProcessLockInformation@12", Windows NT 3.51 and new has ABI "RtlQueryProcessLockInformation@4"
1390RtlQueryPackageClaims@32
1391RtlQueryPackageIdentity@24
1392RtlQueryPackageIdentityEx@28
1393RtlQueryPerformanceCounter@4
1394RtlQueryPerformanceFrequency@4
1395RtlQueryPointerMapping@8
1396RtlQueryProcessBackTraceInformation@4
1397RtlQueryProcessDebugInformation@12
1398RtlQueryProcessHeapInformation@4
1399RtlQueryProcessLockInformation@4
1400RtlQueryProcessPlaceholderCompatibilityMode@0
1401RtlQueryPropertyStore@8
1402RtlQueryProtectedPolicy@8
1403RtlQueryRegistryValueWithFallback@28
1404RtlQueryRegistryValues@20521RtlQueryRegistryValues@20
1405RtlQueryRegistryValuesEx@20
1406RtlQueryResourcePolicy@16
1407RtlQuerySecurityObject@20522RtlQuerySecurityObject@20
1408RtlQueryTagHeap@20
1409RtlQueryThreadPlaceholderCompatibilityMode@0
1410RtlQueryThreadProfiling@8
1411RtlQueryTimeZoneInformation@4523RtlQueryTimeZoneInformation@4
1412RtlQueryTokenHostIdAsUlong64@8
1413RtlQueryUnbiasedInterruptTime@4
1414RtlQueryValidationRunlevel@4
1415RtlQueryWnfMetaNotification@20
1416RtlQueryWnfStateData@24
1417RtlQueryWnfStateDataWithExplicitScope@28
1418RtlQueueApcWow64Thread@20
1419RtlQueueWorkItem@12
1420RtlRaiseCustomSystemEventTrigger@4
1421RtlRaiseException@4524RtlRaiseException@4
1422RtlRaiseStatus@4525RtlRaiseStatus@4
1423RtlRandom@4526RtlRandom@4
1424RtlRandomEx@4
1425RtlRbInsertNodeEx@16
1426RtlRbRemoveNode@8
1427RtlReAllocateHeap@16
1428RtlReadMemoryStream@16
1429RtlReadOutOfProcessMemoryStream@16
1430RtlReadThreadProfilingData@12
1431RtlRealPredecessor@4527RtlRealPredecessor@4
1432RtlRealSuccessor@4528RtlRealSuccessor@4
1433RtlRegisterFeatureConfigurationChangeNotification@16
1434RtlRegisterForWnfMetaNotification@24
1435RtlRegisterSecureMemoryCacheCallback@4
1436RtlRegisterThreadWithCsrss@0
1437RtlRegisterWait@24
1438RtlReleaseActivationContext@4
1439RtlReleaseMemoryStream@4
1440RtlReleasePath@4
1441RtlReleasePebLock@0529RtlReleasePebLock@0
1442RtlReleasePrivilege@4
1443RtlReleaseRelativeName@4
1444RtlReleaseResource@4530RtlReleaseResource@4
1445RtlReleaseSRWLockExclusive@4
1446RtlReleaseSRWLockShared@4
1447RtlRemoteCall@28531RtlRemoteCall@28
1448RtlRemoveEntryHashTable@12
1449RtlRemovePointerMapping@8
1450RtlRemovePrivileges@12
1451RtlRemovePropertyStore@8
1452RtlRemoveVectoredContinueHandler@4
1453RtlRemoveVectoredExceptionHandler@4
1454RtlReplaceSidInSd@16
1455RtlReplaceSystemDirectoryInPath@16
1456RtlReportException@12
1457RtlReportExceptionEx@20
1458RtlReportSilentProcessExit@8
1459RtlReportSqmEscalation@24
1460RtlResetMemoryBlockLookaside@4
1461RtlResetMemoryZone@4
1462RtlResetNtUserPfn@0
1463RtlResetRtlTranslations@4532RtlResetRtlTranslations@4
1464RtlRestoreBootStatusDefaults@4
1465RtlRestoreContext@8
1466RtlRestoreLastWin32Error@4
1467RtlRestoreSystemBootStatusDefaults@0
1468RtlRestoreThreadPreferredUILanguages@4
1469RtlRetrieveNtUserPfn@12
1470RtlRevertMemoryStream@4
1471RtlRunDecodeUnicodeString@8533RtlRunDecodeUnicodeString@8
1472RtlRunEncodeUnicodeString@8534RtlRunEncodeUnicodeString@8
1473RtlRunOnceBeginInitialize@12
1474RtlRunOnceComplete@12
1475RtlRunOnceExecuteOnce@16
1476RtlRunOnceInitialize@4
1477RtlSecondsSince1970ToTime@8535RtlSecondsSince1970ToTime@8
1478RtlSecondsSince1980ToTime@8536RtlSecondsSince1980ToTime@8
1479RtlSeekMemoryStream@20
1480RtlSelfRelativeToAbsoluteSD2@8
1481RtlSelfRelativeToAbsoluteSD@44537RtlSelfRelativeToAbsoluteSD@44
1482RtlSendMsgToSm@8
1483RtlSetAllBits@4538RtlSetAllBits@4
1484RtlSetAttributesSecurityDescriptor@12
1485RtlSetBit@8
1486RtlSetBits@12539RtlSetBits@12
1487RtlSetControlSecurityDescriptor@12
1488RtlSetCriticalSectionSpinCount@8
1489RtlSetCurrentDirectory_U@4540RtlSetCurrentDirectory_U@4
1490RtlSetCurrentEnvironment@8541RtlSetCurrentEnvironment@8
1491RtlSetCurrentTransaction@4
1492RtlSetDaclSecurityDescriptor@16
1493RtlSetDynamicTimeZoneInformation@4
1494RtlSetEnvironmentStrings@8
1495RtlSetEnvironmentVar@20
1496RtlSetEnvironmentVariable@12542RtlSetEnvironmentVariable@12
1497RtlSetExtendedFeaturesMask@12
1498RtlSetFeatureConfigurations@16
1499RtlSetGroupSecurityDescriptor@12543RtlSetGroupSecurityDescriptor@12
1500RtlSetHeapInformation@16544; RtlSetHeapUserValue@8 ; removed in Windows NT 3.5
1501RtlSetImageMitigationPolicy@20
1502RtlSetInformationAcl@16545RtlSetInformationAcl@16
1503RtlSetIoCompletionCallback@12
1504RtlSetLastWin32Error@4
1505RtlSetLastWin32ErrorAndNtStatusFromNtStatus@4
1506RtlSetMemoryStreamSize@12
1507RtlSetOwnerSecurityDescriptor@12546RtlSetOwnerSecurityDescriptor@12
1508RtlSetPortableOperatingSystem@4
1509RtlSetProcessDebugInformation@12
1510RtlSetProcessIsCritical@0
1511RtlSetProcessPlaceholderCompatibilityMode@4
1512RtlSetProcessPreferredUILanguages@12
1513RtlSetProtectedPolicy@12
1514RtlSetProxiedProcessId@4
1515RtlSetSaclSecurityDescriptor@16547RtlSetSaclSecurityDescriptor@16
1516RtlSetSearchPathMode@4
1517RtlSetSecurityDescriptorRMControl@8
1518RtlSetSecurityObject@20548RtlSetSecurityObject@20
1519RtlSetSecurityObjectEx@24
1520RtlSetSystemBootStatus@16
1521RtlSetSystemBootStatusEx@12
1522RtlSetThreadErrorMode@8
1523RtlSetThreadIsCritical@0
1524RtlSetThreadPlaceholderCompatibilityMode@4
1525RtlSetThreadPoolStartFunc@8
1526RtlSetThreadPreferredUILanguages2@16
1527RtlSetThreadPreferredUILanguages@12
1528RtlSetThreadSubProcessTag@4
1529RtlSetThreadWorkOnBehalfTicket@4
1530RtlSetTimeZoneInformation@4549RtlSetTimeZoneInformation@4
1531RtlSetTimer@28550; RtlSnapShotHeap@16 ; removed in Windows NT 3.51
1532RtlSetUnhandledExceptionFilter@4
1533RtlSetUserCallbackExceptionFilter@4
1534RtlSetUserFlagsHeap@20
1535RtlSetUserValueHeap@16
1536RtlShutdownLpcServer@4
1537RtlSidDominates@12
1538RtlSidDominatesForTrust@12
1539RtlSidEqualLevel@12
1540RtlSidHashInitialize@12
1541RtlSidHashLookup@8
1542RtlSidIsHigherLevel@12
1543RtlSizeHeap@12
1544RtlSleepConditionVariableCS@12
1545RtlSleepConditionVariableSRW@16
1546RtlSplay@4551RtlSplay@4
552; RtlStartProfile@0 ; removed in Windows NT 3.5
1547RtlStartRXact@4553RtlStartRXact@4
1548RtlStatMemoryStream@12554; RtlStopProfile@0 ; removed in Windows NT 3.5
1549RtlStringFromGUID@8
1550RtlStringFromGUIDEx@12
1551RtlStronglyEnumerateEntryHashTable@8
1552RtlSubAuthorityCountSid@4555RtlSubAuthorityCountSid@4
1553RtlSubAuthoritySid@8556RtlSubAuthoritySid@8
1554RtlSubscribeForFeatureUsageNotification@8
1555RtlSubscribeWnfStateChangeNotification@36
1556RtlSubtreePredecessor@4557RtlSubtreePredecessor@4
1557RtlSubtreeSuccessor@4558RtlSubtreeSuccessor@4
1558RtlSwitchedVVI@16
1559RtlSystemTimeToLocalTime@8559RtlSystemTimeToLocalTime@8
1560RtlTestAndPublishWnfStateData@28
1561RtlTestBit@8
1562RtlTestProtectedAccess@8
1563RtlTimeFieldsToTime@8560RtlTimeFieldsToTime@8
1564RtlTimeToElapsedTimeFields@8561RtlTimeToElapsedTimeFields@8
1565RtlTimeToSecondsSince1970@8562RtlTimeToSecondsSince1970@8
1566RtlTimeToSecondsSince1980@8563RtlTimeToSecondsSince1980@8
1567RtlTimeToTimeFields@8564RtlTimeToTimeFields@8
1568RtlTraceDatabaseAdd@16
1569RtlTraceDatabaseCreate@20
1570RtlTraceDatabaseDestroy@4
1571RtlTraceDatabaseEnumerate@12
1572RtlTraceDatabaseFind@16
1573RtlTraceDatabaseLock@4
1574RtlTraceDatabaseUnlock@4
1575RtlTraceDatabaseValidate@4
1576RtlTryAcquirePebLock@0
1577RtlTryAcquireSRWLockExclusive@4
1578RtlTryAcquireSRWLockShared@4
1579RtlTryConvertSRWLockSharedToExclusiveOrRelease@4
1580RtlTryEnterCriticalSection@4
1581RtlUTF8StringToUnicodeString@12
1582RtlUTF8ToUnicodeN@20
1583RtlUdiv128@28
1584RtlUnhandledExceptionFilter2@8
1585RtlUnhandledExceptionFilter@4
1586RtlUnicodeStringToAnsiSize@4
1587RtlUnicodeStringToAnsiString@12
1588RtlUnicodeStringToCountedOemString@12565RtlUnicodeStringToCountedOemString@12
1589RtlUnicodeStringToInteger@12
1590RtlUnicodeStringToOemSize@4566RtlUnicodeStringToOemSize@4
1591RtlUnicodeStringToOemString@12567RtlUnicodeStringToOemString@12
1592RtlUnicodeStringToUTF8String@12
1593RtlUnicodeToCustomCPN@24568RtlUnicodeToCustomCPN@24
1594RtlUnicodeToMultiByteN@20
1595RtlUnicodeToMultiByteSize@12569RtlUnicodeToMultiByteSize@12
1596RtlUnicodeToOemN@20570RtlUnicodeToOemN@20
1597RtlUnicodeToUTF8N@20
1598RtlUniform@4571RtlUniform@4
1599RtlUnlockBootStatusData@4
1600RtlUnlockCurrentThread@0
1601RtlUnlockHeap@4572RtlUnlockHeap@4
1602RtlUnlockMemoryBlockLookaside@4
1603RtlUnlockMemoryStreamRegion@24
1604RtlUnlockMemoryZone@4
1605RtlUnlockModuleSection@4
1606RtlUnregisterFeatureConfigurationChangeNotification@4
1607RtlUnsubscribeFromFeatureUsageNotifications@8
1608RtlUnsubscribeWnfNotificationWaitForCompletion@4
1609RtlUnsubscribeWnfNotificationWithCompletionCallback@12
1610RtlUnsubscribeWnfStateChangeNotification@4
1611RtlUnwind@16
1612RtlUpcaseUnicodeChar@4573RtlUpcaseUnicodeChar@4
1613RtlUpcaseUnicodeString@12574RtlUpcaseUnicodeString@12
1614RtlUpcaseUnicodeStringToAnsiString@12575RtlUpcaseUnicodeStringToAnsiString@12
...@@ -1617,712 +578,2338 @@ RtlUpcaseUnicodeStringToOemString@12...@@ -1617,712 +578,2338 @@ RtlUpcaseUnicodeStringToOemString@12
1617RtlUpcaseUnicodeToCustomCPN@24578RtlUpcaseUnicodeToCustomCPN@24
1618RtlUpcaseUnicodeToMultiByteN@20579RtlUpcaseUnicodeToMultiByteN@20
1619RtlUpcaseUnicodeToOemN@20580RtlUpcaseUnicodeToOemN@20
1620RtlUpdateClonedCriticalSection@4
1621RtlUpdateClonedSRWLock@8
1622RtlUpdateTimer@16
1623RtlUpperChar@4581RtlUpperChar@4
1624RtlUpperString@8582RtlUpperString@8
1625RtlUsageHeap@12
1626; Not sure.
1627RtlUserThreadStart
1628RtlValidAcl@4583RtlValidAcl@4
1629RtlValidProcessProtection@4
1630RtlValidRelativeSecurityDescriptor@12
1631RtlValidSecurityDescriptor@4584RtlValidSecurityDescriptor@4
1632RtlValidSid@4585RtlValidSid@4
1633RtlValidateCorrelationVector@4
1634RtlValidateHeap@12
1635RtlValidateProcessHeaps@0
1636RtlValidateUnicodeString@8
1637RtlVerifyVersionInfo@16
1638RtlWaitForWnfMetaNotification@24
1639RtlWaitOnAddress@16
1640RtlWakeAddressAll@4
1641RtlWakeAddressAllNoFence@4
1642RtlWakeAddressSingle@4
1643RtlWakeAddressSingleNoFence@4
1644RtlWakeAllConditionVariable@4
1645RtlWakeConditionVariable@4
1646RtlWalkFrameChain@12
1647RtlWalkHeap@8
1648RtlWeaklyEnumerateEntryHashTable@8
1649RtlWerpReportException@16
1650RtlWnfCompareChangeStamp@8
1651RtlWnfDllUnloadCallback@4
1652RtlWow64CallFunction64@28
1653RtlWow64EnableFsRedirection@4
1654RtlWow64EnableFsRedirectionEx@8
1655RtlWow64GetCurrentMachine@0
1656RtlWow64GetEquivalentMachineCHPE@4
1657RtlWow64GetProcessMachines@12
1658RtlWow64GetSharedInfoProcess@12
1659RtlWow64IsWowGuestMachineSupported@8
1660RtlWow64LogMessageInEventLogger@12
1661RtlWriteMemoryStream@16
1662RtlWriteRegistryValue@24586RtlWriteRegistryValue@24
1663RtlZeroHeap@8587; RtlpInitializeRtl@12 ; removed in Windows NT 4.0
1664RtlZeroMemory@8
1665RtlZombifyActivationContext@4
1666RtlpApplyLengthFunction@16
1667RtlpCheckDynamicTimeZoneInformation@8
1668RtlpCleanupRegistryKeys@0
1669RtlpConvertAbsoluteToRelativeSecurityAttribute@12
1670RtlpConvertCultureNamesToLCIDs@8
1671RtlpConvertLCIDsToCultureNames@8
1672RtlpConvertRelativeToAbsoluteSecurityAttribute@16
1673RtlpCreateProcessRegistryInfo@4
1674RtlpEnsureBufferSize@12
1675RtlpFreezeTimeBias@0
1676RtlpGetDeviceFamilyInfoEnum@12
1677RtlpGetLCIDFromLangInfoNode@12
1678RtlpGetNameFromLangInfoNode@12
1679RtlpGetSystemDefaultUILanguage@4 ; Check!!! gendef says @8
1680RtlpGetUserOrMachineUILanguage4NLS@12
1681RtlpInitializeLangRegistryInfo@4
1682RtlpIsQualifiedLanguage@12
1683RtlpLoadMachineUIByPolicy@12
1684RtlpLoadUserUIByPolicy@12
1685RtlpMergeSecurityAttributeInformation@16
1686RtlpMuiFreeLangRegistryInfo@4
1687RtlpMuiRegCreateRegistryInfo@0
1688RtlpMuiRegFreeRegistryInfo@8
1689RtlpMuiRegLoadRegistryInfo@8
1690RtlpNotOwnerCriticalSection@0 ; Check!!! gebdef says @4
1691RtlpNtCreateKey@24588RtlpNtCreateKey@24
1692RtlpNtEnumerateSubKey@16589RtlpNtEnumerateSubKey@16
1693RtlpNtMakeTemporaryKey@4590RtlpNtMakeTemporaryKey@4
1694RtlpNtOpenKey@16591RtlpNtOpenKey@16
1695RtlpNtQueryValueKey@20592RtlpNtQueryValueKey@20
1696RtlpNtSetValueKey@16593RtlpNtSetValueKey@16
1697RtlpQueryDefaultUILanguage@8
1698; Not sure.
1699RtlpQueryProcessDebugInformationRemote
1700RtlpRefreshCachedUILanguage@8
1701RtlpSetInstallLanguage@8
1702RtlpSetPreferredUILanguages@12
1703RtlpSetUserPreferredUILanguages@12
1704RtlpTimeFieldsToTime@12
1705RtlpTimeToTimeFields@12
1706RtlpUnWaitCriticalSection@4594RtlpUnWaitCriticalSection@4
1707RtlpVerifyAndCommitUILanguageSettings@4
1708RtlpWaitForCriticalSection@4595RtlpWaitForCriticalSection@4
1709RtlxAnsiStringToUnicodeSize@4
1710RtlxOemStringToUnicodeSize@4
1711RtlxUnicodeStringToAnsiSize@4
1712RtlxUnicodeStringToOemSize@4
1713SbExecuteProcedure@20
1714SbSelectProcedure@16
1715ShipAssert@8
1716ShipAssertGetBufferInfo@8
1717ShipAssertMsgA@12
1718ShipAssertMsgW@12
1719TpAllocAlpcCompletion@20
1720TpAllocAlpcCompletionEx@20
1721TpAllocCleanupGroup@4
1722TpAllocIoCompletion@20
1723TpAllocJobNotification@20
1724TpAllocPool@8
1725TpAllocTimer@16
1726TpAllocWait@16
1727TpAllocWork@16
1728TpAlpcRegisterCompletionList@4
1729TpAlpcUnregisterCompletionList@4
1730TpCallbackDetectedUnrecoverableError@4
1731TpCallbackIndependent@4
1732TpCallbackLeaveCriticalSectionOnCompletion@8
1733TpCallbackMayRunLong@4
1734TpCallbackReleaseMutexOnCompletion@8
1735TpCallbackReleaseSemaphoreOnCompletion@12
1736TpCallbackSendAlpcMessageOnCompletion@16
1737TpCallbackSendPendingAlpcMessage@4
1738TpCallbackSetEventOnCompletion@8
1739TpCallbackUnloadDllOnCompletion@8
1740TpCancelAsyncIoOperation@4
1741TpCaptureCaller@4
1742TpCheckTerminateWorker@4
1743TpDbgDumpHeapUsage@12
1744TpDbgGetFreeInfo@8
1745TpDbgSetLogRoutine@4
1746TpDisablePoolCallbackChecks@4
1747TpDisassociateCallback@4
1748TpIsTimerSet@4
1749TpPoolFreeUnusedNodes@4
1750TpPostWork@4
1751TpQueryPoolStackInformation@8
1752TpReleaseAlpcCompletion@4
1753TpReleaseCleanupGroup@4
1754TpReleaseCleanupGroupMembers@12
1755TpReleaseIoCompletion@4
1756TpReleaseJobNotification@4
1757TpReleasePool@4
1758TpReleaseTimer@4
1759TpReleaseWait@4
1760TpReleaseWork@4
1761TpSetDefaultPoolMaxThreads@4
1762TpSetDefaultPoolStackInformation@4
1763TpSetPoolMaxThreads@8
1764TpSetPoolMaxThreadsSoftLimit@8
1765TpSetPoolMinThreads@8
1766TpSetPoolStackInformation@8
1767TpSetPoolThreadBasePriority@8
1768TpSetPoolThreadCpuSets@12
1769TpSetPoolWorkerThreadIdleTimeout@12
1770TpSetTimer@16
1771TpSetTimerEx@16
1772TpSetWait@12
1773TpSetWaitEx@16
1774TpSimpleTryPost@12
1775TpStartAsyncIoOperation@4
1776TpTimerOutstandingCallbackCount@4
1777TpTrimPools@0
1778TpWaitForAlpcCompletion@4
1779TpWaitForIoCompletion@8
1780TpWaitForJobNotification@4
1781TpWaitForTimer@8
1782TpWaitForWait@8
1783TpWaitForWork@8
1784VerSetConditionMask@16
1785WerCheckEventEscalation@8
1786WerReportExceptionWorker@4
1787WerReportSQMEvent@12
1788WerReportWatsonEvent@16
1789WerReportSQMEvent@16
1790WinSqmAddToAverageDWORD@12
1791WinSqmAddToStream@16
1792WinSqmAddToStreamEx@20
1793WinSqmCheckEscalationAddToStreamEx@20
1794WinSqmCheckEscalationSetDWORD64@20
1795WinSqmCheckEscalationSetDWORD@16
1796WinSqmCheckEscalationSetString@16
1797WinSqmCommonDatapointDelete@4
1798WinSqmCommonDatapointSetDWORD64@16
1799WinSqmCommonDatapointSetDWORD@12
1800WinSqmCommonDatapointSetStreamEx@20
1801WinSqmCommonDatapointSetString@12
1802WinSqmEndSession@4
1803WinSqmEventEnabled@8
1804WinSqmEventWrite@12
1805WinSqmGetEscalationRuleStatus@8
1806WinSqmGetInstrumentationProperty@16
1807WinSqmIncrementDWORD@12
1808WinSqmIsOptedIn@0
1809WinSqmIsOptedInEx@4
1810WinSqmIsSessionDisabled@4
1811WinSqmSetDWORD64@16
1812WinSqmSetDWORD@12
1813WinSqmSetEscalationInfo@16
1814WinSqmSetIfMaxDWORD@12
1815WinSqmSetIfMinDWORD@12
1816WinSqmSetString@12
1817WinSqmStartSession@12
1818WinSqmStartSessionForPartner@16
1819WinSqmStartSqmOptinListener@0
1820ZwAcceptConnectPort@24596ZwAcceptConnectPort@24
1821ZwAccessCheck@32597ZwAccessCheck@32
1822ZwAccessCheckAndAuditAlarm@44598ZwAccessCheckAndAuditAlarm@44
1823ZwAccessCheckByType@44
1824ZwAccessCheckByTypeAndAuditAlarm@64
1825ZwAccessCheckByTypeResultList@44
1826ZwAccessCheckByTypeResultListAndAuditAlarm@64
1827ZwAccessCheckByTypeResultListAndAuditAlarmByHandle@68
1828ZwAcquireCrossVmMutant@8
1829ZwAcquireCMFViewOwnership@12
1830ZwAcquireProcessActivityReference@12
1831ZwAddAtom@12
1832ZwAddAtomEx@16
1833ZwAddBootEntry@8
1834ZwAddDriverEntry@8
1835ZwAdjustGroupsToken@24599ZwAdjustGroupsToken@24
1836ZwAdjustPrivilegesToken@24600ZwAdjustPrivilegesToken@24
1837ZwAdjustTokenClaimsAndDeviceGroups@64
1838ZwAlertResumeThread@8601ZwAlertResumeThread@8
1839ZwAlertThread@4602ZwAlertThread@4
1840ZwAlertThreadByThreadId@4
1841ZwAllocateLocallyUniqueId@4603ZwAllocateLocallyUniqueId@4
1842ZwAllocateReserveObject@12
1843ZwAllocateUserPhysicalPages@12
1844ZwAllocateUserPhysicalPagesEx@20
1845ZwAllocateUuids@16
1846ZwAllocateVirtualMemory@24604ZwAllocateVirtualMemory@24
1847ZwAllocateVirtualMemoryEx@28
1848ZwAlpcAcceptConnectPort@36
1849ZwAlpcCancelMessage@12
1850ZwAlpcConnectPort@44
1851ZwAlpcConnectPortEx@44
1852ZwAlpcCreatePort@12
1853ZwAlpcCreatePortSection@24
1854ZwAlpcCreateResourceReserve@16
1855ZwAlpcCreateSectionView@12
1856ZwAlpcCreateSecurityContext@12
1857ZwAlpcDeletePortSection@12
1858ZwAlpcDeleteResourceReserve@12
1859ZwAlpcDeleteSectionView@12
1860ZwAlpcDeleteSecurityContext@12
1861ZwAlpcDisconnectPort@8
1862ZwAlpcImpersonateClientContainerOfPort@12
1863ZwAlpcImpersonateClientOfPort@12
1864ZwAlpcOpenSenderProcess@24
1865ZwAlpcOpenSenderThread@24
1866ZwAlpcQueryInformation@20
1867ZwAlpcQueryInformationMessage@24
1868ZwAlpcRevokeSecurityContext@12
1869ZwAlpcSendWaitReceivePort@32
1870ZwAlpcSetInformation@16
1871ZwApphelpCacheControl@8
1872ZwAreMappedFilesTheSame@8
1873ZwAssignProcessToJobObject@8
1874ZwAssociateWaitCompletionPacket@32
1875ZwCallEnclave@16
1876ZwCallbackReturn@12
1877ZwCancelDeviceWakeupRequest@4
1878ZwCancelIoFile@8605ZwCancelIoFile@8
1879ZwCancelIoFileEx@12
1880ZwCancelSynchronousIoFile@12
1881ZwCancelTimer2@8
1882ZwCancelTimer@8606ZwCancelTimer@8
1883ZwCancelWaitCompletionPacket@8
1884ZwChangeProcessState@24
1885ZwChangeThreadState@24
1886ZwClearEvent@4
1887ZwClose@4607ZwClose@4
1888ZwCloseObjectAuditAlarm@12608ZwCloseObjectAuditAlarm@12
1889ZwCommitComplete@8
1890ZwCommitEnlistment@8
1891ZwCommitRegistryTransaction@8
1892ZwCommitTransaction@8
1893ZwCompactKeys@8
1894ZwCompareObjects@8
1895ZwCompareSigningLevels@8
1896ZwCompareTokens@12
1897ZwCompleteConnectPort@4609ZwCompleteConnectPort@4
1898ZwCompressKey@4
1899ZwConnectPort@32610ZwConnectPort@32
1900ZwContinue@8611ZwContinue@8
1901ZwContinueEx@8
1902ZwConvertBetweenAuxiliaryCounterAndPerformanceCounter@16
1903ZwCreateCrossVmEvent@24
1904ZwCreateCrossVmMutant@24
1905ZwCreateDebugObject@16
1906ZwCreateDirectoryObject@12612ZwCreateDirectoryObject@12
1907ZwCreateDirectoryObjectEx@20
1908ZwCreateEnclave@36
1909ZwCreateEnlistment@32
1910ZwCreateEvent@20613ZwCreateEvent@20
1911ZwCreateEventPair@12614ZwCreateEventPair@12
1912ZwCreateFile@44615ZwCreateFile@44
1913ZwCreateIRTimer@12
1914ZwCreateIoCompletion@16
1915ZwCreateIoRing@20
1916ZwCreateJobObject@12
1917ZwCreateJobSet@12
1918ZwCreateKey@28616ZwCreateKey@28
1919ZwCreateKeyTransacted@32
1920ZwCreateKeyedEvent@16
1921ZwCreateLowBoxToken@36
1922ZwCreateMailslotFile@32617ZwCreateMailslotFile@32
1923ZwCreateMutant@16618ZwCreateMutant@16
1924ZwCreateNamedPipeFile@56619ZwCreateNamedPipeFile@56
1925ZwCreatePagingFile@16620ZwCreatePagingFile@16
1926ZwCreatePartition@16
1927ZwCreatePort@20621ZwCreatePort@20
1928ZwCreatePrivateNamespace@16
1929ZwCreateProcess@32622ZwCreateProcess@32
1930ZwCreateProcessEx@36623ZwCreateProfile@36 ; Windows NT 3.1-3.5 has ABI "ZwCreateProfile@28", Windows NT 3.51 and new has ABI "ZwCreateProfile@36"
1931ZwCreateProcessStateChange@20
1932ZwCreateProfile@36
1933ZwCreateProfileEx@40
1934ZwCreateRegistryTransaction@16
1935ZwCreateResourceManager@28
1936ZwCreateSection@28624ZwCreateSection@28
1937ZwCreateSectionEx@36
1938ZwCreateSemaphore@20625ZwCreateSemaphore@20
1939ZwCreateSymbolicLinkObject@16626ZwCreateSymbolicLinkObject@16
1940ZwCreateThread@32627ZwCreateThread@32
1941ZwCreateThreadEx@44628ZwCreateTimer@16 ; Windows NT 3.1-3.51 has ABI "ZwCreateTimer@12", Windows NT 4.0 and new has ABI "ZwCreateTimer@16"
1942ZwCreateThreadStateChange@20
1943ZwCreateTimer2@20
1944ZwCreateTimer@16
1945ZwCreateToken@52629ZwCreateToken@52
1946ZwCreateTokenEx@68
1947ZwCreateTransaction@40
1948ZwCreateTransactionManager@24
1949ZwCreateUserProcess@44
1950ZwCreateWaitCompletionPacket@12
1951ZwCreateWaitablePort@20
1952ZwCreateWnfStateName@28
1953ZwCreateWorkerFactory@40
1954ZwDebugActiveProcess@8
1955ZwDebugContinue@12
1956ZwDelayExecution@8630ZwDelayExecution@8
1957ZwDeleteAtom@4
1958ZwDeleteBootEntry@4
1959ZwDeleteDriverEntry@4
1960ZwDeleteFile@4
1961ZwDeleteKey@4631ZwDeleteKey@4
1962ZwDeleteObjectAuditAlarm@12
1963ZwDeletePrivateNamespace@4
1964ZwDeleteValueKey@8632ZwDeleteValueKey@8
1965ZwDeleteWnfStateData@8
1966ZwDeleteWnfStateName@4
1967ZwDeviceIoControlFile@40633ZwDeviceIoControlFile@40
1968ZwDirectGraphicsCall@20
1969ZwDisableLastKnownGood@0
1970ZwDisplayString@4634ZwDisplayString@4
1971ZwDrawText@4
1972ZwDuplicateObject@28635ZwDuplicateObject@28
1973ZwDuplicateToken@24636ZwDuplicateToken@24
1974ZwEnableLastKnownGood@0
1975ZwEnumerateBootEntries@8
1976ZwEnumerateDriverEntries@8
1977ZwEnumerateKey@24637ZwEnumerateKey@24
1978ZwEnumerateSystemEnvironmentValuesEx@12
1979ZwEnumerateTransactionObject@20
1980ZwEnumerateValueKey@24638ZwEnumerateValueKey@24
1981ZwExtendSection@8639ZwExtendSection@8
1982ZwFilterBootOption@20
1983ZwFilterToken@24
1984ZwFilterTokenEx@56
1985ZwFindAtom@12
1986ZwFlushBuffersFile@8640ZwFlushBuffersFile@8
1987ZwFlushBuffersFileEx@20
1988ZwFlushInstallUILanguage@8
1989ZwFlushInstructionCache@12641ZwFlushInstructionCache@12
1990ZwFlushKey@4642ZwFlushKey@4
1991ZwFlushProcessWriteBuffers@0
1992ZwFlushVirtualMemory@16643ZwFlushVirtualMemory@16
1993ZwFlushWriteBuffer@0644ZwFlushWriteBuffer@0
1994ZwFreeUserPhysicalPages@12
1995ZwFreeVirtualMemory@16645ZwFreeVirtualMemory@16
1996ZwFreezeRegistry@4
1997ZwFreezeTransactions@8
1998ZwFsControlFile@40646ZwFsControlFile@40
1999ZwGetCachedSigningLevel@24
2000ZwGetCompleteWnfStateSubscription@24
2001ZwGetContextThread@8647ZwGetContextThread@8
2002ZwGetCurrentProcessorNumber@0648ZwGetTickCount@0 ; removed in Windows XP
2003ZwGetCurrentProcessorNumberEx@4
2004ZwGetDevicePowerState@8
2005ZwGetMUIRegistryInfo@12
2006ZwGetNextProcess@20
2007ZwGetNextThread@24
2008ZwGetNlsSectionPtr@20
2009ZwGetNotificationResourceManager@28
2010ZwGetPlugPlayEvent@16
2011ZwGetTickCount@0
2012ZwGetWriteWatch@28
2013ZwImpersonateAnonymousToken@4
2014ZwImpersonateClientOfPort@8649ZwImpersonateClientOfPort@8
2015ZwImpersonateThread@12650ZwImpersonateThread@12
2016ZwInitializeEnclave@20
2017ZwInitializeNlsFiles@16
2018ZwInitializeRegistry@4651ZwInitializeRegistry@4
2019ZwInitiatePowerAction@16652; ZwInitializeVDM@0 ; removed in Windows NT 3.5
2020ZwIsProcessInJob@8
2021ZwIsSystemResumeAutomatic@0
2022ZwIsUILanguageComitted@0
2023ZwListenPort@8653ZwListenPort@8
2024ZwLoadDriver@4654ZwLoadDriver@4
2025ZwLoadEnclaveData@36
2026ZwLoadKey2@12
2027ZwLoadKey3@32
2028ZwLoadKey@8655ZwLoadKey@8
2029ZwLoadKeyEx@32
2030ZwLockFile@40656ZwLockFile@40
2031ZwLockProductActivationKeys@8
2032ZwLockRegistryKey@4
2033ZwLockVirtualMemory@16657ZwLockVirtualMemory@16
2034ZwMakePermanentObject@4
2035ZwMakeTemporaryObject@4658ZwMakeTemporaryObject@4
2036ZwManageHotPatch@16
2037ZwManagePartition@20
2038ZwMapCMFModule@24
2039ZwMapUserPhysicalPages@12
2040ZwMapUserPhysicalPagesScatter@12
2041ZwMapViewOfSection@40659ZwMapViewOfSection@40
2042ZwMapViewOfSectionEx@36
2043ZwModifyBootEntry@4
2044ZwModifyDriverEntry@4
2045ZwNotifyChangeDirectoryFile@36660ZwNotifyChangeDirectoryFile@36
2046ZwNotifyChangeDirectoryFileEx@40
2047ZwNotifyChangeKey@40661ZwNotifyChangeKey@40
2048ZwNotifyChangeMultipleKeys@48
2049ZwNotifyChangeSession@32
2050ZwOpenDirectoryObject@12662ZwOpenDirectoryObject@12
2051ZwOpenEnlistment@20
2052ZwOpenEvent@12663ZwOpenEvent@12
2053ZwOpenEventPair@12664ZwOpenEventPair@12
2054ZwOpenFile@24665ZwOpenFile@24
2055ZwOpenIoCompletion@12
2056ZwOpenJobObject@12
2057ZwOpenKey@12666ZwOpenKey@12
2058ZwOpenKeyEx@16
2059ZwOpenKeyTransacted@16
2060ZwOpenKeyTransactedEx@20
2061ZwOpenKeyedEvent@12
2062ZwOpenMutant@12667ZwOpenMutant@12
2063ZwOpenObjectAuditAlarm@48668ZwOpenObjectAuditAlarm@48
2064ZwOpenPartition@12
2065ZwOpenPrivateNamespace@16
2066ZwOpenProcess@16669ZwOpenProcess@16
2067ZwOpenProcessToken@12670ZwOpenProcessToken@12
2068ZwOpenProcessTokenEx@16
2069ZwOpenRegistryTransaction@12
2070ZwOpenResourceManager@20
2071ZwOpenSection@12671ZwOpenSection@12
2072ZwOpenSemaphore@12672ZwOpenSemaphore@12
2073ZwOpenSession@12
2074ZwOpenSymbolicLinkObject@12673ZwOpenSymbolicLinkObject@12
2075ZwOpenThread@16674ZwOpenThread@16
2076ZwOpenThreadToken@16675ZwOpenThreadToken@16
2077ZwOpenThreadTokenEx@20
2078ZwOpenTimer@12676ZwOpenTimer@12
2079ZwOpenTransaction@20
2080ZwOpenTransactionManager@24
2081ZwPlugPlayControl@12
2082ZwPowerInformation@20
2083ZwPrePrepareComplete@8
2084ZwPrePrepareEnlistment@8
2085ZwPrepareComplete@8
2086ZwPrepareEnlistment@8
2087ZwPrivilegeCheck@12677ZwPrivilegeCheck@12
2088ZwPrivilegeObjectAuditAlarm@24678ZwPrivilegeObjectAuditAlarm@24
2089ZwPrivilegedServiceAuditAlarm@20679ZwPrivilegedServiceAuditAlarm@20
2090ZwPropagationComplete@16
2091ZwPropagationFailed@12
2092ZwProtectVirtualMemory@20680ZwProtectVirtualMemory@20
2093ZwPssCaptureVaSpaceBulk@20
2094ZwPulseEvent@8681ZwPulseEvent@8
2095ZwQueryAttributesFile@8
2096ZwQueryAuxiliaryCounterFrequency@4
2097ZwQueryBootEntryOrder@8
2098ZwQueryBootOptions@8
2099ZwQueryDebugFilterState@8
2100ZwQueryDefaultLocale@8682ZwQueryDefaultLocale@8
2101ZwQueryDefaultUILanguage@4
2102ZwQueryDirectoryFile@44683ZwQueryDirectoryFile@44
2103ZwQueryDirectoryFileEx@40
2104ZwQueryDirectoryObject@28684ZwQueryDirectoryObject@28
2105ZwQueryDriverEntryOrder@8
2106ZwQueryEaFile@36685ZwQueryEaFile@36
2107ZwQueryEvent@20686ZwQueryEvent@20
2108ZwQueryFullAttributesFile@8
2109ZwQueryInformationAtom@20
2110ZwQueryInformationByName@20
2111ZwQueryInformationEnlistment@20
2112ZwQueryInformationFile@20687ZwQueryInformationFile@20
2113ZwQueryInformationJobObject@20
2114ZwQueryInformationPort@20688ZwQueryInformationPort@20
2115ZwQueryInformationProcess@20689ZwQueryInformationProcess@20
2116ZwQueryInformationResourceManager@20
2117ZwQueryInformationThread@20690ZwQueryInformationThread@20
2118ZwQueryInformationToken@20691ZwQueryInformationToken@20
2119ZwQueryInformationTransaction@20692ZwQueryIntervalProfile@8 ; Windows NT 3.1-3.51 has ABI "ZwQueryIntervalProfile@4", Windows NT 4.0 and new has ABI "ZwQueryIntervalProfile@8"
2120ZwQueryInformationTransactionManager@20
2121ZwQueryInformationWorkerFactory@20
2122ZwQueryInstallUILanguage@4
2123ZwQueryIntervalProfile@8
2124ZwQueryIoCompletion@20
2125ZwQueryIoRingCapabilities@8
2126ZwQueryKey@20693ZwQueryKey@20
2127ZwQueryLicenseValue@20
2128ZwQueryMultipleValueKey@24
2129ZwQueryMutant@20694ZwQueryMutant@20
2130ZwQueryObject@20695ZwQueryObject@20
2131ZwQueryOpenSubKeys@8
2132ZwQueryOpenSubKeysEx@16
2133ZwQueryPerformanceCounter@8696ZwQueryPerformanceCounter@8
2134ZwQueryPortInformationProcess@0
2135ZwQueryQuotaInformationFile@36
2136ZwQuerySection@20697ZwQuerySection@20
2137ZwQuerySecurityAttributesToken@24
2138ZwQuerySecurityObject@20698ZwQuerySecurityObject@20
2139ZwQuerySecurityPolicy@24
2140ZwQuerySemaphore@20699ZwQuerySemaphore@20
2141ZwQuerySymbolicLinkObject@12700ZwQuerySymbolicLinkObject@12
2142ZwQuerySystemEnvironmentValue@16701ZwQuerySystemEnvironmentValue@16
2143ZwQuerySystemEnvironmentValueEx@20
2144ZwQuerySystemInformation@16702ZwQuerySystemInformation@16
2145ZwQuerySystemInformationEx@24
2146ZwQuerySystemTime@4703ZwQuerySystemTime@4
2147ZwQueryTimer@20704ZwQueryTimer@20
2148ZwQueryTimerResolution@12
2149ZwQueryValueKey@24705ZwQueryValueKey@24
2150ZwQueryVirtualMemory@24706ZwQueryVirtualMemory@24
2151ZwQueryVolumeInformationFile@20707ZwQueryVolumeInformationFile@20
2152ZwQueryWnfStateData@24
2153ZwQueryWnfStateNameInformation@20
2154ZwQueueApcThread@20
2155ZwQueueApcThreadEx2@28
2156ZwQueueApcThreadEx@24
2157ZwRaiseException@12708ZwRaiseException@12
2158ZwRaiseHardError@24709ZwRaiseHardError@24
2159ZwReadFile@36710ZwReadFile@36
2160ZwReadFileScatter@36
2161ZwReadOnlyEnlistment@8
2162ZwReadRequestData@24711ZwReadRequestData@24
2163ZwReadVirtualMemory@20712ZwReadVirtualMemory@20
2164ZwReadVirtualMemoryEx@24
2165ZwRecoverEnlistment@8
2166ZwRecoverResourceManager@4
2167ZwRecoverTransactionManager@4
2168ZwRegisterProtocolAddressInformation@20
2169ZwRegisterThreadTerminatePort@4713ZwRegisterThreadTerminatePort@4
2170ZwReleaseCMFViewOwnership@0
2171ZwReleaseKeyedEvent@16
2172ZwReleaseMutant@8714ZwReleaseMutant@8
715; ZwReleaseProcessMutant@0 ; removed in Windows NT 4.0
2173ZwReleaseSemaphore@12716ZwReleaseSemaphore@12
2174ZwReleaseWorkerFactoryWorker@4717; ZwRenameValueKey@16 ; removed in Windows NT 3.5
2175ZwRemoveIoCompletion@20
2176ZwRemoveIoCompletionEx@24
2177ZwRemoveProcessDebug@8
2178ZwRenameKey@8
2179ZwRenameTransactionManager@8
2180ZwReplaceKey@12718ZwReplaceKey@12
2181ZwReplacePartitionUnit@12
2182ZwReplyPort@8719ZwReplyPort@8
2183ZwReplyWaitReceivePort@16720ZwReplyWaitReceivePort@16
2184ZwReplyWaitReceivePortEx@20
2185ZwReplyWaitReplyPort@8721ZwReplyWaitReplyPort@8
2186ZwRequestDeviceWakeup@4
2187ZwRequestPort@8722ZwRequestPort@8
2188ZwRequestWaitReplyPort@12723ZwRequestWaitReplyPort@12
2189ZwRequestWakeupLatency@4
2190ZwResetEvent@8724ZwResetEvent@8
2191ZwResetWriteWatch@12
2192ZwRestoreKey@12725ZwRestoreKey@12
2193ZwResumeProcess@4
2194ZwResumeThread@8726ZwResumeThread@8
2195ZwRevertContainerImpersonation@0
2196ZwRollbackComplete@8
2197ZwRollbackEnlistment@8
2198ZwRollbackRegistryTransaction@8
2199ZwRollbackTransaction@8
2200ZwRollforwardTransactionManager@8
2201ZwSaveKey@8727ZwSaveKey@8
2202ZwSaveKeyEx@12
2203ZwSaveMergedKeys@12
2204ZwSecureConnectPort@36
2205ZwSerializeBoot@0
2206ZwSetBootEntryOrder@8
2207ZwSetBootOptions@8
2208ZwSetCachedSigningLevel2@24
2209ZwSetCachedSigningLevel@20
2210ZwSetContextThread@8728ZwSetContextThread@8
2211ZwSetDebugFilterState@12
2212ZwSetDefaultHardErrorPort@4729ZwSetDefaultHardErrorPort@4
2213ZwSetDefaultLocale@8730ZwSetDefaultLocale@8
2214ZwSetDefaultUILanguage@4
2215ZwSetDriverEntryOrder@8
2216ZwSetEaFile@16731ZwSetEaFile@16
2217ZwSetEvent@8732ZwSetEvent@8
2218ZwSetEventBoostPriority@4
2219ZwSetHighEventPair@4733ZwSetHighEventPair@4
2220ZwSetHighWaitLowEventPair@4734ZwSetHighWaitLowEventPair@4
2221ZwSetIRTimer@8735; ZwSetHighWaitLowThread@0 ; removed in Windows 2000
2222ZwSetInformationDebugObject@20
2223ZwSetInformationEnlistment@16
2224ZwSetInformationFile@20736ZwSetInformationFile@20
2225ZwSetInformationIoRing@16
2226ZwSetInformationJobObject@16
2227ZwSetInformationKey@16737ZwSetInformationKey@16
2228ZwSetInformationObject@16
2229ZwSetInformationProcess@16738ZwSetInformationProcess@16
2230ZwSetInformationResourceManager@16
2231ZwSetInformationSymbolicLink@16
2232ZwSetInformationThread@16739ZwSetInformationThread@16
2233ZwSetInformationToken@16740ZwSetInformationToken@16
2234ZwSetInformationTransaction@16741ZwSetIntervalProfile@8 ; Windows NT 3.1-3.5 has ABI "ZwSetIntervalProfile@4", Windows NT 3.51 and new has ABI "ZwSetIntervalProfile@8"
2235ZwSetInformationTransactionManager@16
2236ZwSetInformationVirtualMemory@24
2237ZwSetInformationWorkerFactory@16
2238ZwSetIntervalProfile@8
2239ZwSetIoCompletion@20
2240ZwSetIoCompletionEx@24
2241ZwSetLdtEntries@24742ZwSetLdtEntries@24
2242ZwSetLowEventPair@4743ZwSetLowEventPair@4
2243ZwSetLowWaitHighEventPair@4744ZwSetLowWaitHighEventPair@4
2244ZwSetQuotaInformationFile@16745; ZwSetLowWaitHighThread@0 ; removed in Windows 2000
2245ZwSetSecurityObject@12746ZwSetSecurityObject@12
2246ZwSetSystemEnvironmentValue@8747ZwSetSystemEnvironmentValue@8
2247ZwSetSystemEnvironmentValueEx@20
2248ZwSetSystemInformation@12
2249ZwSetSystemPowerState@12
2250ZwSetSystemTime@8748ZwSetSystemTime@8
2251ZwSetThreadExecutionState@8749ZwSetTimer@28 ; Windows NT 3.1-3.5 has ABI "ZwSetTimer@20", Windows NT 3.51 has ABI "ZwSetTimer@24", Windows NT 4.0 and new has ABI "ZwSetTimer@28"
2252ZwSetTimer2@16
2253ZwSetTimer@28
2254ZwSetTimerEx@16
2255ZwSetTimerResolution@12
2256ZwSetUuidSeed@4
2257ZwSetValueKey@24750ZwSetValueKey@24
2258ZwSetVolumeInformationFile@20751ZwSetVolumeInformationFile@20
2259ZwSetWnfProcessNotificationEvent@4
2260ZwShutdownSystem@4752ZwShutdownSystem@4
2261ZwShutdownWorkerFactory@8
2262ZwSignalAndWaitForSingleObject@16
2263ZwSinglePhaseReject@8
2264ZwStartProfile@4753ZwStartProfile@4
2265ZwStopProfile@4754ZwStopProfile@4
2266ZwSubmitIoRing@16
2267ZwSubscribeWnfStateChange@16
2268ZwSuspendProcess@4
2269ZwSuspendThread@8755ZwSuspendThread@8
2270ZwSystemDebugControl@24756ZwSystemDebugControl@24
2271ZwTerminateEnclave@8
2272ZwTerminateJobObject@8
2273ZwTerminateProcess@8757ZwTerminateProcess@8
2274ZwTerminateThread@8758ZwTerminateThread@8
2275ZwTestAlert@0759ZwTestAlert@0
2276ZwThawRegistry@0
2277ZwThawTransactions@0
2278ZwTraceControl@24
2279ZwTraceEvent@16
2280ZwTranslateFilePath@16
2281ZwUmsThreadYield@4
2282ZwUnloadDriver@4760ZwUnloadDriver@4
2283ZwUnloadKey2@8
2284ZwUnloadKey@4761ZwUnloadKey@4
2285ZwUnloadKeyEx@8
2286ZwUnlockFile@20762ZwUnlockFile@20
2287ZwUnlockVirtualMemory@16763ZwUnlockVirtualMemory@16
2288ZwUnmapViewOfSection@8764ZwUnmapViewOfSection@8
2289ZwUnmapViewOfSectionEx@12765ZwVdmControl@8 ; Windows NT 3.1 has ABI "ZwVdmControl@16", Windows NT 3.5 and new has ABI "ZwVdmControl@8"
2290ZwUnsubscribeWnfStateChange@4766; ZwVdmStartExecution@0 ; removed in Windows NT 3.5
2291ZwUpdateWnfStateData@28
2292ZwVdmControl@8
2293ZwWaitForAlertByThreadId@8
2294ZwWaitForDebugEvent@16
2295ZwWaitForKeyedEvent@16
2296ZwWaitForMultipleObjects32@20
2297ZwWaitForMultipleObjects@20767ZwWaitForMultipleObjects@20
768; ZwWaitForProcessMutant@0 ; removed in Windows NT 4.0
2298ZwWaitForSingleObject@12769ZwWaitForSingleObject@12
2299ZwWaitForWorkViaWorkerFactory@8
2300ZwWaitHighEventPair@4770ZwWaitHighEventPair@4
2301ZwWaitLowEventPair@4771ZwWaitLowEventPair@4
2302ZwWorkerFactoryWorkerReady@4
2303ZwWow64CallFunction64@28
2304ZwWow64CsrAllocateCaptureBuffer@8
2305ZwWow64CsrAllocateMessagePointer@12
2306ZwWow64CsrCaptureMessageBuffer@16
2307ZwWow64CsrCaptureMessageString@20
2308ZwWow64CsrClientCallServer@16
2309ZwWow64CsrClientConnectToServer@20
2310ZwWow64CsrFreeCaptureBuffer@4
2311ZwWow64CsrGetProcessId@0
2312ZwWow64CsrIdentifyAlertableThread@0
2313ZwWow64CsrVerifyRegion@8
2314ZwWow64DebuggerCall@20
2315ZwWow64GetCurrentProcessorNumberEx@4
2316ZwWow64GetNativeSystemInformation@16
2317ZwWow64InterlockedPopEntrySList@4
2318ZwWow64QueryInformationProcess64@20
2319ZwWow64QueryVirtualMemory64@32
2320ZwWow64ReadVirtualMemory64@28
2321ZwWow64WriteVirtualMemory64@28
2322ZwWriteFile@36772ZwWriteFile@36
2323ZwWriteFileGather@36
2324ZwWriteRequestData@24773ZwWriteRequestData@24
2325ZwWriteVirtualMemory@20774ZwWriteVirtualMemory@20
775; xRtlDosPathNameToNtPathName@16 ; removed in Windows NT 3.5
776
777; This is list of non-stdcall FPU emulator symbols, available since Windows NT 3.1 and removed in Windows XP SP2 and Windows Server 2003 SP1
778; NPXEMULATORTABLE DATA ; removed in Windows XP
779; RestoreEm87Context
780; SaveEm87Context
781; __eCommonExceptions
782; __eEmulatorInit
783; __eF2XM1
784; __eFABS
785; __eFADD32
786; __eFADD64
787; __eFADDPreg
788; __eFADDreg
789; __eFADDtop
790; __eFCHS
791; __eFCOM32
792; __eFCOM64
793; __eFCOM
794; __eFCOMP32
795; __eFCOMP64
796; __eFCOMP
797; __eFCOMPP
798; __eFCOS
799; __eFDECSTP
800; __eFDIV32
801; __eFDIV64
802; __eFDIVPreg
803; __eFDIVR32
804; __eFDIVR64
805; __eFDIVRPreg
806; __eFDIVRreg
807; __eFDIVRtop
808; __eFDIVreg
809; __eFDIVtop
810; __eFFREE
811; __eFIADD16
812; __eFIADD32
813; __eFICOM16
814; __eFICOM32
815; __eFICOMP16
816; __eFICOMP32
817; __eFIDIV16
818; __eFIDIV32
819; __eFIDIVR16
820; __eFIDIVR32
821; __eFILD16
822; __eFILD32
823; __eFILD64
824; __eFIMUL16
825; __eFIMUL32
826; __eFINCSTP
827; __eFINIT
828; __eFIST16
829; __eFIST32
830; __eFISTP16
831; __eFISTP32
832; __eFISTP64
833; __eFISUB16
834; __eFISUB32
835; __eFISUBR16
836; __eFISUBR32
837; __eFLD1
838; __eFLD32
839; __eFLD64
840; __eFLD80
841; __eFLDCW
842; __eFLDENV
843; __eFLDL2E
844; __eFLDLN2
845; __eFLDPI
846; __eFLDZ
847; __eFMUL32
848; __eFMUL64
849; __eFMULPreg
850; __eFMULreg
851; __eFMULtop
852; __eFPATAN
853; __eFPREM
854; __eFPREM1
855; __eFPTAN
856; __eFRNDINT
857; __eFRSTOR
858; __eFSAVE
859; __eFSCALE
860; __eFSIN
861; __eFSQRT
862; __eFST32
863; __eFST64
864; __eFST
865; __eFSTCW
866; __eFSTENV
867; __eFSTP32
868; __eFSTP64
869; __eFSTP80
870; __eFSTP
871; __eFSTSW
872; __eFSUB32
873; __eFSUB64
874; __eFSUBPreg
875; __eFSUBR32
876; __eFSUBR64
877; __eFSUBRPreg
878; __eFSUBRreg
879; __eFSUBRtop
880; __eFSUBreg
881; __eFSUBtop
882; __eFTST
883; __eFUCOM
884; __eFUCOMP
885; __eFUCOMPP
886; __eFXAM
887; __eFXCH
888; __eFXTRACT
889; __eFYL2X
890; __eFYL2XP1
891; __eGetStatusWord
892
893; This is list of symbols added in Windows NT 3.5
894LdrDisableThreadCalloutsForDll@4
895NlsMbCodePageTag DATA
896NlsMbOemCodePageTag DATA
897NtClearEvent@4
898NtCreateIoCompletion@16
899NtDeleteFile@4
900NtOpenIoCompletion@12
901NtQueryAttributesFile@8
902NtQueryIoCompletion@20
903NtQueryTimerResolution@12
904NtRemoveIoCompletion@20
905NtSetInformationObject@16
906NtSetSystemInformation@12
907NtSetTimerResolution@12
908RtlCompressBuffer@32
909RtlCutoverTimeToSystemTime@16
910RtlDecompressBuffer@24
911RtlDecompressFragment@32
912RtlFormatCurrentUserKeyPath@4
913RtlGetCompressionWorkSpaceSize@12
914RtlGetLongestNtPathLength@0
915; RtlGetUserFlagsHeap@16 ; removed in Windows NT 3.51
916; RtlGetUserValueHeap@16 ; removed in Windows NT 3.51
917RtlIsTextUnicode@12
918RtlSetUserFlagsHeap@20
919RtlSetUserValueHeap@16
920RtlWalkHeap@8
921RtlZeroHeap@8
922RtlxAnsiStringToUnicodeSize@4
923RtlxOemStringToUnicodeSize@4
924RtlxUnicodeStringToAnsiSize@4
925RtlxUnicodeStringToOemSize@4
926ZwClearEvent@4
927ZwCreateIoCompletion@16
928ZwDeleteFile@4
929ZwOpenIoCompletion@12
930ZwQueryAttributesFile@8
931ZwQueryIoCompletion@20
932ZwQueryTimerResolution@12
933ZwRemoveIoCompletion@20
934ZwSetInformationObject@16
935ZwSetSystemInformation@12
936ZwSetTimerResolution@12
937
938; This is list of symbols added in Windows NT 3.51
939KiUserCallbackDispatcher@12 ; really stdcall @12, gendef detects it incorrectly
940LdrEnumResources@20
941NtAllocateUuids@16 ; Windows NT 3.51-4.0 has ABI "NtAllocateUuids@12", Windows 2000 and new has ABI "NtAllocateUuids@16"
942NtCallbackReturn@12
943; NtEnumerateBus@8 ; removed in Windows NT 4.0
944NtGetPlugPlayEvent@16 ; removed in Windows 8
945NtPlugPlayControl@12 ; Windows NT 3.51-4.0 has ABI "NtPlugPlayControl@16", Windows 2000 and new has ABI "NtPlugPlayControl@12"
946; NtRegisterNewDevice@8 ; removed in Windows NT 4.0
947NtSetIoCompletion@20
948; NtW32Call@20 ; removed in Windows NT 4.0 SP4
949RtlCreateQueryDebugBuffer@8
950RtlCreateTagHeap@16
951RtlDestroyQueryDebugBuffer@4
952RtlEnumProcessHeaps@8
953RtlExtendHeap@16 ; removed in Windows Vista
954RtlGetProcessHeaps@8
955RtlGetUserInfoHeap@20
956RtlIsNameLegalDOS8Dot3@12
957RtlProtectHeap@8
958RtlQueryProcessDebugInformation@12
959RtlQueryTagHeap@20
960RtlUsageHeap@12 ; removed in Windows Vista
961RtlValidateProcessHeaps@0
962ZwAllocateUuids@16 ; Windows NT 3.51-4.0 has ABI "ZwAllocateUuids@12", Windows 2000 and new has ABI "ZwAllocateUuids@16"
963ZwCallbackReturn@12
964; ZwEnumerateBus@8 ; remvoed in Windows NT 4.0
965ZwGetPlugPlayEvent@16 ; removed in Windows 8
966ZwPlugPlayControl@12 ; Windows NT 3.51-4.0 has ABI "ZwPlugPlayControl@16", Windows 2000 and new has ABI "ZwPlugPlayControl@12"
967; ZwRegisterNewDevice@8 ; removed in Windows NT 4.0
968ZwSetIoCompletion@20
969ZwSetSystemPowerState@12
970; ZwW32Call@20 ; removed in Windows NT 4.0 SP4
971
972; This is list of symbols added in Windows NT 4.0
973; public: virtual void *__thiscall CBufferAllocator::Allocate(unsigned long)
974; ?Allocate@CBufferAllocator@@UAEPAXK@Z ; has WINAPI (@4) ; removed in Windows 2000
975KiRaiseUserExceptionDispatcher@0
976NlsAnsiCodePage DATA
977NtAddAtom@12 ; Windows NT 4.0 has ABI "NtAddAtom@8", Windows 2000 and new has ABI "NtAddAtom@12"
978; NtCreateChannel@8 ; removed in Windows XP
979NtDeleteAtom@4
980NtDeleteObjectAuditAlarm@12
981NtFindAtom@12 ; Windows NT 4.0 has ABI "NtFindAtom@8", Windows 2000 and new has ABI "NtFindAtom@12"
982; NtListenChannel@8 ; removed in Windows XP
983NtLoadKey2@12
984; NtOpenChannel@8 ; removed in Windows XP
985NtQueryFullAttributesFile@8
986NtQueryInformationAtom@20
987NtQueryMultipleValueKey@24
988; NtQueryOleDirectoryFile@44 ; removed in Windows 2000
989NtQueueApcThread@20
990; NtReplyWaitSendChannel@12 ; removed in Windows XP
991; NtSendWaitReplyChannel@16 ; removed in Windows XP
992; NtSetContextChannel@4 ; removed in Windows XP
993NtSignalAndWaitForSingleObject@16
994NtYieldExecution@0
995; PropertyLengthAsVariant@16 ; removed in Windows Vista
996RtlAddAtomToAtomTable@12
997RtlAddCompoundAce@24
998RtlAllocateHandle@8
999; RtlClosePropertySet@4 ; removed in Windows 2000
1000; RtlCompareVariants@12 ; removed in Windows 2000
1001; RtlConvertPropertyToVariant@16 ; removed in Windows Vista
1002; RtlConvertVariantToProperty@28 ; removed in Windows Vista
1003RtlCreateAtomTable@8
1004; RtlCreatePropertySet@36 ; removed in Windows 2000
1005RtlDeleteAtomFromAtomTable@8
1006RtlDeleteNoSplay@8
1007RtlDestroyAtomTable@4
1008RtlDestroyHandleTable@4
1009RtlDowncaseUnicodeString@12
1010RtlEmptyAtomTable@8
1011; RtlEnumerateProperties@24 ; removed in Windows 2000
1012; RtlFlushPropertySet@4 ; removed in Windows 2000
1013RtlFreeHandle@8
1014RtlFreeUserThreadStack@8 ; removed in Windows Vista
1015; RtlGuidToPropertySetName@8 ; removed in Windows 2000
1016RtlImageRvaToSection@12
1017RtlImageRvaToVa@16
1018RtlInitializeAtomPackage@4
1019RtlInitializeHandleTable@12
1020RtlIsValidHandle@8
1021RtlIsValidIndexHandle@12
1022RtlLookupAtomInAtomTable@12
1023RtlPinAtomInAtomTable@8
1024; RtlPropertySetNameToGuid@12 ; removed in Windows 2000
1025RtlQueryAtomInAtomTable@24
1026; RtlQueryProperties@28 ; removed in Windows 2000
1027; RtlQueryPropertyNames@16 ; removed in Windows 2000
1028; RtlQueryPropertySet@8 ; removed in Windows 2000
1029RtlSetAttributesSecurityDescriptor@12
1030; RtlSetProperties@28 ; removed in Windows 2000
1031; RtlSetPropertyNames@16 ; removed in Windows 2000
1032; RtlSetPropertySetClassId@8 ; removed in Windows 2000
1033; RtlSetUnicodeCallouts@4 ; removed in Windows Vista
1034RtlTryEnterCriticalSection@4
1035ZwAddAtom@12 ; Windows NT 4.0 has ABI "ZwAddAtom@8", Windows 2000 and new has ABI "ZwAddAtom@12"
1036; ZwCreateChannel@8 ; removed in Windows XP
1037ZwDeleteAtom@4
1038ZwDeleteObjectAuditAlarm@12
1039ZwFindAtom@12 ; Windows NT 4.0 has ABI "ZwFindAtom@8", Windows 2000 and new has ABI "ZwFindAtom@12"
1040; ZwListenChannel@8 ; removed in Windows XP
1041ZwLoadKey2@12
1042; ZwOpenChannel@8 ; removed in Windows XP
1043ZwQueryFullAttributesFile@8
1044ZwQueryInformationAtom@20
1045ZwQueryMultipleValueKey@24
1046; ZwQueryOleDirectoryFile@44 ; removed in Windows 2000
1047ZwQueueApcThread@20
1048; ZwReplyWaitSendChannel@12 ; removed in Windows XP
1049; ZwSendWaitReplyChannel@16 ; removed in Windows XP
1050; ZwSetContextChannel@4 ; removed in Windows XP
1051ZwSignalAndWaitForSingleObject@16
2326ZwYieldExecution@01052ZwYieldExecution@0
2327vDbgPrintEx@161053
2328vDbgPrintExWithPrefix@201054; In Windows NT 4.0 SP1 was not added any new symbol
1055
1056; This is list of symbols added in Windows NT 4.0 SP2
1057NtReadFileScatter@36
1058NtWriteFileGather@36
1059; RtlOnMappedStreamEvent@12 ; removed in Windows 2000
1060ZwReadFileScatter@36
1061ZwWriteFileGather@36
1062
1063; This is list of symbols added in Windows NT 4.0 SP3
1064RtlInitializeCriticalSectionAndSpinCount@8
1065RtlSetCriticalSectionSpinCount@8
1066
1067; In Windows NT 4.0 SP4 was not added any new symbol but some were removed
1068
1069; In Windows NT 4.0 SP5 was not added any new symbol
1070
1071; In Windows NT 4.0 SP6 was not added any new symbol
1072
1073; In Windows NT 4.0 SP6a was not added any new symbol
1074
1075; This is list of symbols added in Windows 2000
1076DbgPrintReturnControlC ; cdecl
1077LdrAlternateResourcesEnabled@0 ; removed in Windows Vista
1078LdrFlushAlternateResourceModules@0
1079LdrLoadAlternateResourceModule@16 ; Windows 2000-2003 has ABI "LdrLoadAlternateResourceModule@8", Windows Vista and new has ABI "LdrLoadAlternateResourceModule@16"
1080LdrUnloadAlternateResourceModule@4
1081NtAccessCheckByType@44
1082NtAccessCheckByTypeAndAuditAlarm@64
1083NtAccessCheckByTypeResultList@44
1084NtAccessCheckByTypeResultListAndAuditAlarm@64
1085NtAccessCheckByTypeResultListAndAuditAlarmByHandle@68
1086NtAllocateUserPhysicalPages@12
1087NtAreMappedFilesTheSame@8
1088NtAssignProcessToJobObject@8
1089NtCancelDeviceWakeupRequest@4 ; removed in Windows 7
1090NtCreateJobObject@12
1091NtCreateWaitablePort@20
1092NtFilterToken@24
1093NtFreeUserPhysicalPages@12
1094NtGetDevicePowerState@8
1095NtGetWriteWatch@28
1096NtImpersonateAnonymousToken@4
1097NtIsSystemResumeAutomatic@0
1098NtMapUserPhysicalPages@12
1099NtMapUserPhysicalPagesScatter@12
1100NtNotifyChangeMultipleKeys@48
1101NtOpenJobObject@12
1102NtQueryDefaultUILanguage@4
1103NtQueryInformationJobObject@20
1104NtQueryInstallUILanguage@4
1105NtQueryOpenSubKeys@8
1106NtQueryQuotaInformationFile@36
1107NtReplyWaitReceivePortEx@20
1108NtRequestDeviceWakeup@4 ; removed in Windows 7
1109NtResetWriteWatch@12
1110NtSaveMergedKeys@12
1111NtSecureConnectPort@36
1112NtSetDefaultUILanguage@4
1113NtSetInformationJobObject@16
1114NtSetQuotaInformationFile@16
1115NtSetThreadExecutionState@8
1116NtSetUuidSeed@4
1117NtTerminateJobObject@8
1118RtlAddAccessAllowedAceEx@20
1119RtlAddAccessAllowedObjectAce@28
1120RtlAddAccessDeniedAceEx@20
1121RtlAddAccessDeniedObjectAce@28
1122RtlAddAuditAccessAceEx@28
1123RtlAddAuditAccessObjectAce@36
1124RtlAddRange@36 ; removed in Windows Server 2003
1125RtlCallbackLpcClient@12 ; removed in Windows XP
1126RtlCancelTimer@8
1127RtlCheckForOrphanedCriticalSections@4
1128RtlConvertToAutoInheritSecurityObject@24
1129RtlCopyRangeList@8 ; removed in Windows Server 2003
1130RtlCreateLpcServer@24 ; removed in Windows XP
1131RtlCreateTimer@28
1132RtlCreateTimerQueue@4
1133RtlDebugPrintTimes@0
1134RtlDefaultNpAcl@4
1135RtlDeleteOwnersRanges@8 ; removed in Windows Server 2003
1136RtlDeleteRange@24 ; removed in Windows Server 2003
1137RtlDeleteTimer@12
1138RtlDeleteTimerQueue@4
1139RtlDeleteTimerQueueEx@8
1140RtlDeregisterWait@4
1141RtlDeregisterWaitEx@8
1142RtlDnsHostNameToComputerName@12
1143RtlEnableEarlyCriticalSectionEventCreation@0
1144RtlFindLastBackwardRunClear@12
1145RtlFindLeastSignificantBit@8
1146RtlFindMostSignificantBit@8
1147RtlFindNextForwardRunClear@12
1148RtlFindRange@48 ; removed in Windows Server 2003
1149; RtlFreeRangeList@4 ; removed in Windows Server 2003
1150RtlGUIDFromString@8
1151RtlGetFirstRange@12 ; removed in Windows Server 2003
1152RtlGetNextRange@12 ; removed in Windows Server 2003
1153RtlGetSecurityDescriptorRMControl@8
1154RtlGetVersion@4
1155RtlImpersonateLpcClient@8 ; removed in Windows XP
1156; RtlInitializeRangeList@4 ; removed in Windows Server 2003
1157RtlInt64ToUnicodeString@16
1158RtlInvertRangeList@8 ; removed in Windows Server 2003
1159RtlIsRangeAvailable@40 ; removed in Windows Server 2003
1160RtlMergeRangeLists@16 ; removed in Windows Server 2003
1161RtlNewSecurityObjectEx@32
1162RtlQueueWorkItem@12
1163RtlRegisterWait@24
1164RtlSelfRelativeToAbsoluteSD2@8
1165RtlSetControlSecurityDescriptor@12
1166RtlSetIoCompletionCallback@12
1167RtlSetSecurityDescriptorRMControl@8
1168RtlSetSecurityObjectEx@24
1169RtlSetThreadPoolStartFunc@8
1170RtlSetTimer@28
1171RtlShutdownLpcServer@4 ; removed in Windows XP
1172RtlStringFromGUID@8
1173@RtlUlongByteSwap@4 ; fastcall
1174@RtlUlonglongByteSwap@8 ; fastcall
1175RtlUpdateTimer@16
1176@RtlUshortByteSwap@4 ; fastcall
1177RtlValidRelativeSecurityDescriptor@12
1178RtlVerifyVersionInfo@16
1179RtlWalkFrameChain@12
1180VerSetConditionMask@16
1181ZwAccessCheckByType@44
1182ZwAccessCheckByTypeAndAuditAlarm@64
1183ZwAccessCheckByTypeResultList@44
1184ZwAccessCheckByTypeResultListAndAuditAlarm@64
1185ZwAccessCheckByTypeResultListAndAuditAlarmByHandle@68
1186ZwAllocateUserPhysicalPages@12
1187ZwAreMappedFilesTheSame@8
1188ZwAssignProcessToJobObject@8
1189ZwCancelDeviceWakeupRequest@4 ; removed in Windows 7
1190ZwCreateJobObject@12
1191ZwCreateWaitablePort@20
1192ZwFilterToken@24
1193ZwFreeUserPhysicalPages@12
1194ZwGetDevicePowerState@8
1195ZwGetWriteWatch@28
1196ZwImpersonateAnonymousToken@4
1197ZwInitiatePowerAction@16
1198ZwIsSystemResumeAutomatic@0
1199ZwMapUserPhysicalPages@12
1200ZwMapUserPhysicalPagesScatter@12
1201ZwNotifyChangeMultipleKeys@48
1202ZwOpenJobObject@12
1203ZwPowerInformation@20
1204ZwQueryDefaultUILanguage@4
1205ZwQueryInformationJobObject@20
1206ZwQueryInstallUILanguage@4
1207ZwQueryOpenSubKeys@8
1208ZwQueryQuotaInformationFile@36
1209ZwReplyWaitReceivePortEx@20
1210ZwRequestDeviceWakeup@4 ; removed in Windows 7
1211ZwRequestWakeupLatency@4 ; removed in Windows 7
1212ZwResetWriteWatch@12
1213ZwSaveMergedKeys@12
1214ZwSecureConnectPort@36
1215ZwSetDefaultUILanguage@4
1216ZwSetInformationJobObject@16
1217ZwSetQuotaInformationFile@16
1218ZwSetThreadExecutionState@8
1219ZwSetUuidSeed@4
1220ZwTerminateJobObject@8
1221
1222; This is list of symbols added in Windows 2000 SP1
1223RtlTraceDatabaseAdd@16
1224RtlTraceDatabaseCreate@20
1225RtlTraceDatabaseDestroy@4
1226RtlTraceDatabaseEnumerate@12
1227RtlTraceDatabaseFind@16
1228RtlTraceDatabaseLock@4
1229RtlTraceDatabaseUnlock@4
1230RtlTraceDatabaseValidate@4
1231
1232; In Windows 2000 SP2 was not added any new symbol
1233
1234; In Windows 2000 SP3 was not added any new symbol
1235
1236; In Windows 2000 SP4 was not added any new symbol
1237
1238; This is list of symbols added in Windows XP
1239CsrCaptureMessageMultiUnicodeStringsInPlace@12
1240CsrGetProcessId@0
1241DbgPrintEx ; cdecl
1242DbgQueryDebugFilterState@8
1243DbgSetDebugFilterState@12
1244DbgUiConvertStateChangeStructure@8
1245DbgUiDebugActiveProcess@4
1246DbgUiGetThreadDebugObject@0
1247DbgUiIssueRemoteBreakin@4
1248DbgUiRemoteBreakin@4
1249DbgUiSetThreadDebugObject@4
1250DbgUiStopDebugging@4
1251; LdrAccessOutOfProcessResource@20 ; removed in Windows Vista
1252LdrAddRefDll@8
1253; LdrCreateOutOfProcessImage@20 ; Windows XP has ABI "LdrCreateOutOfProcessImage@16", Windows Server 2003 has ABI "LdrCreateOutOfProcessImage@20", removed in Windows Vista
1254; LdrDestroyOutOfProcessImage@4 ; removed in Windows Vista
1255; LdrFindCreateProcessManifest@20 ; removed in Windows Vista
1256LdrFindResourceEx_U@20
1257LdrGetDllHandleEx@20
1258LdrInitShimEngineDynamic@4 ; Windows XP-7 has ABI "LdrInitShimEngineDynamic@4", Windows 8 an new has ABI "LdrInitShimEngineDynamic@8"
1259LdrLockLoaderLock@12
1260LdrSetAppCompatDllRedirectionCallback@12
1261LdrSetDllManifestProber@4 ; Windows XP-Vista has ABI "LdrSetDllManifestProber@4", Windows 7 an new has ABI "LdrSetDllManifestProber@12"
1262LdrUnlockLoaderLock@8
1263NtAddBootEntry@8
1264NtCompactKeys@8
1265NtCompareTokens@12
1266NtCompressKey@4
1267NtCreateDebugObject@16
1268NtCreateJobSet@12
1269NtCreateKeyedEvent@16
1270NtCreateProcessEx@36
1271NtDebugActiveProcess@8
1272NtDebugContinue@12
1273NtDeleteBootEntry@4
1274NtEnumerateBootEntries@8
1275NtEnumerateSystemEnvironmentValuesEx@12
1276NtIsProcessInJob@8
1277NtLockProductActivationKeys@8
1278NtLockRegistryKey@4
1279NtMakePermanentObject@4
1280NtModifyBootEntry@4
1281NtOpenKeyedEvent@12
1282NtOpenProcessTokenEx@16
1283NtOpenThreadTokenEx@20
1284NtQueryBootEntryOrder@8
1285NtQueryBootOptions@8
1286NtQueryDebugFilterState@8
1287NtQueryPortInformationProcess@0
1288NtQuerySystemEnvironmentValueEx@20
1289NtReleaseKeyedEvent@16
1290NtRemoveProcessDebug@8
1291NtRenameKey@8
1292NtResumeProcess@4
1293NtSaveKeyEx@12
1294NtSetBootEntryOrder@8
1295NtSetBootOptions@8
1296NtSetDebugFilterState@12
1297NtSetEventBoostPriority@4
1298NtSetInformationDebugObject@20
1299NtSetSystemEnvironmentValueEx@20
1300NtSuspendProcess@4
1301NtTraceEvent@16
1302NtTranslateFilePath@16
1303NtUnloadKeyEx@8
1304NtWaitForDebugEvent@16
1305NtWaitForKeyedEvent@16
1306RtlActivateActivationContext@12
1307RtlActivateActivationContextEx@16
1308@RtlActivateActivationContextUnsafeFast@8 ; fastcall
1309RtlAddRefActivationContext@4
1310RtlAddRefMemoryStream@4 ; not available in Windows XP x64 WoW64 version, but available in Windows Vista and new WoW64 version
1311RtlAddVectoredExceptionHandler@8
1312RtlAddressInSectionTable@12
1313RtlAppendPathElement@12
1314RtlApplicationVerifierStop@40
1315; RtlAssert2@20 ; removed in Windows Server 2003
1316RtlCaptureContext@4
1317RtlCaptureStackContext@12
1318; RtlCheckProcessParameters@16 ; removed in Windows Vista
1319RtlCloneMemoryStream@8 ; not available in Windows XP x64 WoW64 version, but available in Windows Vista and new WoW64 version
1320RtlCommitMemoryStream@8 ; not available in Windows XP x64 WoW64 version, but available in Windows Vista and new WoW64 version
1321RtlComputeCrc32@12
1322RtlComputeImportTableHash@12
1323RtlComputePrivatizedDllName_U@12
1324RtlCopyMemoryStreamTo@24 ; not available in Windows XP x64 WoW64 version, but available in Windows Vista and new WoW64 version
1325RtlCopyOutOfProcessMemoryStreamTo@24 ; not available in Windows XP x64 WoW64 version, but available in Windows Vista and new WoW64 version
1326RtlCreateActivationContext@24
1327RtlCreateBootStatusDataFile@4 ; Windows XP-2003 has ABI "RtlCreateBootStatusDataFile@0", Windows Vista and new has ABI "RtlCreateBootStatusDataFile@4"
1328RtlCreateSystemVolumeInformationFolder@4
1329RtlDeactivateActivationContext@8
1330@RtlDeactivateActivationContextUnsafeFast@4 ; fastcall
1331RtlDeleteElementGenericTableAvl@8
1332RtlDllShutdownInProgress@0
1333RtlDosApplyFileIsolationRedirection_Ustr@36
1334RtlDosSearchPath_Ustr@36
1335RtlDowncaseUnicodeChar@4
1336RtlDuplicateUnicodeString@12
1337RtlEnumerateGenericTableAvl@8
1338RtlEnumerateGenericTableLikeADirectory@28
1339RtlEnumerateGenericTableWithoutSplayingAvl@8
1340RtlExitUserThread@4
1341RtlFinalReleaseOutOfProcessMemoryStream@4 ; not available in Windows XP x64 WoW64 version, but available in Windows Vista and new WoW64 version
1342RtlFindActivationContextSectionGuid@20
1343RtlFindActivationContextSectionString@20
1344RtlFindCharInUnicodeString@16
1345RtlFindClearRuns@16
1346RtlFirstEntrySList@4
1347RtlFlushSecureMemoryCache@8
1348RtlFreeThreadActivationContextStack@0
1349RtlGetActiveActivationContext@4
1350RtlGetCurrentPeb@0
1351RtlGetElementGenericTableAvl@8
1352RtlGetFrame@0
1353RtlGetLastNtStatus@0
1354RtlGetLastWin32Error@0
1355RtlGetLengthWithoutLastFullDosOrNtPathElement@12
1356RtlGetLengthWithoutTrailingPathSeperators@12
1357RtlGetNativeSystemInformation@16
1358RtlGetNtVersionNumbers@12
1359RtlGetSetBootStatusData@24
1360RtlHashUnicodeString@16
1361RtlInitMemoryStream@4 ; not available in Windows XP x64 WoW64 version, but available in Windows Vista and new WoW64 version
1362RtlInitOutOfProcessMemoryStream@4 ; not available in Windows XP x64 WoW64 version, but available in Windows Vista and new WoW64 version
1363RtlInitUnicodeStringEx@8
1364RtlInitializeGenericTableAvl@20
1365RtlInitializeSListHead@4
1366RtlInsertElementGenericTableAvl@16
1367RtlInterlockedFlushSList@4
1368RtlInterlockedPopEntrySList@4
1369RtlInterlockedPushEntrySList@8
1370@RtlInterlockedPushListSList@16 ; fastcall
1371RtlIpv4AddressToStringA@8
1372RtlIpv4AddressToStringW@8
1373RtlIpv4StringToAddressA@16
1374RtlIpv4StringToAddressW@16
1375RtlIpv6AddressToStringA@8
1376RtlIpv6AddressToStringW@8
1377RtlIpv6StringToAddressA@12
1378RtlIpv6StringToAddressW@12
1379RtlIsActivationContextActive@4
1380RtlIsGenericTableEmptyAvl@4
1381RtlLockBootStatusData@4
1382RtlLockMemoryStreamRegion@24 ; not available in Windows XP x64 WoW64 version, but available in Windows Vista and new WoW64 version
1383RtlLogStackBackTrace@0
1384RtlLookupElementGenericTableAvl@8
1385RtlMapSecurityErrorToNtStatus@4
1386RtlMultiAppendUnicodeStringBuffer@12
1387RtlNewSecurityObjectWithMultipleInheritance@36
1388RtlNtPathNameToDosPathName@16
1389RtlNtStatusToDosErrorNoTeb@4
1390RtlNumberGenericTableElementsAvl@4
1391RtlPopFrame@4
1392RtlPushFrame@4
1393RtlQueryDepthSList@4
1394RtlQueryHeapInformation@20
1395RtlQueryInformationActivationContext@28
1396RtlQueryInformationActiveActivationContext@16
1397RtlQueryInterfaceMemoryStream@12 ; not available in Windows XP x64 WoW64 version, but available in Windows Vista and new WoW64 version
1398RtlQueueApcWow64Thread@20
1399RtlRandomEx@4
1400RtlReadMemoryStream@16 ; not available in Windows XP x64 WoW64 version, but available in Windows Vista and new WoW64 version
1401RtlReadOutOfProcessMemoryStream@16 ; not available in Windows XP x64 WoW64 version, but available in Windows Vista and new WoW64 version
1402RtlRegisterSecureMemoryCacheCallback@4
1403RtlReleaseActivationContext@4
1404RtlReleaseMemoryStream@4 ; not available in Windows XP x64 WoW64 version, but available in Windows Vista and new WoW64 version
1405RtlRemoveVectoredExceptionHandler@4
1406RtlRestoreLastWin32Error@4
1407RtlRevertMemoryStream@4 ; not available in Windows XP x64 WoW64 version, but available in Windows Vista and new WoW64 version
1408RtlSeekMemoryStream@20 ; not available in Windows XP x64 WoW64 version, but available in Windows Vista and new WoW64 version
1409RtlSetHeapInformation@16
1410RtlSetLastWin32Error@4
1411RtlSetLastWin32ErrorAndNtStatusFromNtStatus@4
1412RtlSetMemoryStreamSize@12 ; not available in Windows XP x64 WoW64 version, but available in Windows Vista and new WoW64 version
1413RtlSetProcessIsCritical ; cdecl
1414RtlSetThreadIsCritical ; cdecl
1415RtlStatMemoryStream@12 ; not available in Windows XP x64 WoW64 version, but available in Windows Vista and new WoW64 version
1416RtlUnhandledExceptionFilter2@8
1417RtlUnhandledExceptionFilter@4
1418RtlUnlockBootStatusData@4
1419RtlUnlockMemoryStreamRegion@24 ; not available in Windows XP x64 WoW64 version, but available in Windows Vista and new WoW64 version
1420RtlValidateUnicodeString@8
1421RtlWriteMemoryStream@16 ; not available in Windows XP x64 WoW64 version, but available in Windows Vista and new WoW64 version
1422RtlZombifyActivationContext@4
1423RtlpApplyLengthFunction@16
1424RtlpEnsureBufferSize@12
1425RtlpNotOwnerCriticalSection@4
1426ZwAddBootEntry@8
1427ZwCompactKeys@8
1428ZwCompareTokens@12
1429ZwCompressKey@4
1430ZwCreateDebugObject@16
1431ZwCreateJobSet@12
1432ZwCreateKeyedEvent@16
1433ZwCreateProcessEx@36
1434ZwDebugActiveProcess@8
1435ZwDebugContinue@12
1436ZwDeleteBootEntry@4
1437ZwEnumerateBootEntries@8
1438ZwEnumerateSystemEnvironmentValuesEx@12
1439ZwIsProcessInJob@8
1440ZwLockProductActivationKeys@8
1441ZwLockRegistryKey@4
1442ZwMakePermanentObject@4
1443ZwModifyBootEntry@4
1444ZwOpenKeyedEvent@12
1445ZwOpenProcessTokenEx@16
1446ZwOpenThreadTokenEx@20
1447ZwQueryBootEntryOrder@8
1448ZwQueryBootOptions@8
1449ZwQueryDebugFilterState@8
1450ZwQueryPortInformationProcess@0
1451ZwQuerySystemEnvironmentValueEx@20
1452ZwReleaseKeyedEvent@16
1453ZwRemoveProcessDebug@8
1454ZwRenameKey@8
1455ZwResumeProcess@4
1456ZwSaveKeyEx@12
1457ZwSetBootEntryOrder@8
1458ZwSetBootOptions@8
1459ZwSetDebugFilterState@12
1460ZwSetEventBoostPriority@4
1461ZwSetInformationDebugObject@20
1462ZwSetSystemEnvironmentValueEx@20
1463ZwSuspendProcess@4
1464ZwTraceEvent@16
1465ZwTranslateFilePath@16
1466ZwUnloadKeyEx@8
1467ZwWaitForDebugEvent@16
1468ZwWaitForKeyedEvent@16
1469vDbgPrintEx@16
1470vDbgPrintExWithPrefix@20
1471
1472; This is list of symbols added in Windows XP SP1
1473LdrEnumerateLoadedModules@12
1474RtlIsThreadWithinLoaderCallout@0
1475
1476; This is list of symbols added in Windows XP SP2
1477LdrHotPatchRoutine@0 ; removed in Windows 8.1
1478RtlGetUnloadEventTrace@0
1479RtlIpv4AddressToStringExA@16
1480RtlIpv4AddressToStringExW@16
1481RtlIpv4StringToAddressExA@16
1482RtlIpv4StringToAddressExW@16
1483RtlIpv6AddressToStringExA@20
1484RtlIpv6AddressToStringExW@20
1485RtlIpv6StringToAddressExA@16
1486RtlIpv6StringToAddressExW@16
1487
1488; This is list of symbols added in Windows XP SP2 and in Windows Server 2003 SP1 (not available in 2003 without SP1)
1489KiFastSystemCall@0
1490KiFastSystemCallRet@0
1491KiIntSystemCall@0
1492RtlDecodePointer@4
1493RtlDecodeSystemPointer@4
1494RtlEncodePointer@4
1495RtlEncodeSystemPointer@4
1496
1497; In Windows XP SP3 was not added any new symbol
1498
1499; This is list of symbols added in Windows Server 2003
1500; EtwControlTraceA@20 ; removed in Windows Vista
1501; EtwControlTraceW@20 ; removed in Windows Vista
1502EtwCreateTraceInstanceId@8
1503; EtwEnableTrace@24 ; removed in Windows Vista
1504; EtwEnumerateTraceGuids@12 ; removed in Windows Vista
1505; EtwFlushTraceA@16 ; removed in Windows Vista
1506; EtwFlushTraceW@16 ; removed in Windows Vista
1507EtwGetTraceEnableFlags@8
1508EtwGetTraceEnableLevel@8
1509EtwGetTraceLoggerHandle@4
1510; EtwNotificationRegistrationA@20 ; removed in Windows Vista
1511; EtwNotificationRegistrationW@20 ; removed in Windows Vista
1512; EtwQueryAllTracesA@12 ; removed in Windows Vista
1513; EtwQueryAllTracesW@12 ; removed in Windows Vista
1514; EtwQueryTraceA@16 ; removed in Windows Vista
1515; EtwQueryTraceW@16 ; removed in Windows Vista
1516; EtwReceiveNotificationsA@16 ; removed in Windows Vista
1517; EtwReceiveNotificationsW@16 ; removed in Windows Vista
1518EtwRegisterTraceGuidsA@32
1519EtwRegisterTraceGuidsW@32
1520; EtwStartTraceA@12 ; removed in Windows Vista
1521; EtwStartTraceW@12 ; removed in Windows Vista
1522; EtwStopTraceA@16 ; removed in Windows Vista
1523; EtwStopTraceW@16 ; removed in Windows Vista
1524; EtwTraceEvent@12 ; removed in Windows Vista
1525EtwTraceEventInstance@20
1526EtwTraceMessage ; cdecl
1527EtwTraceMessageVa@24
1528EtwUnregisterTraceGuids@8
1529; EtwUpdateTraceA@16 ; removed in Windows Vista
1530; EtwUpdateTraceW@16 ; removed in Windows Vista
1531; EtwpGetTraceBuffer@16 ; removed in Windows Vista
1532; EtwpSetHWConfigFunction@8 ; removed in Windows Vista
1533LdrQueryImageFileExecutionOptionsEx@28
1534NtAddDriverEntry@8
1535NtApphelpCacheControl@8
1536NtDeleteDriverEntry@4
1537NtEnumerateDriverEntries@8
1538NtGetCurrentProcessorNumber@0
1539NtGetTickCount@0
1540NtLoadKeyEx@32 ; Windows Server 2003 has ABI "NtLoadKeyEx@16", Windows Vista and new has ABI "NtLoadKeyEx@32"
1541NtModifyDriverEntry@4
1542NtQueryDriverEntryOrder@8
1543NtQueryOpenSubKeysEx@16
1544NtSetDriverEntryOrder@8
1545NtUnloadKey2@8
1546RtlCopyMappedMemory@12
1547RtlDosPathNameToRelativeNtPathName_U@16
1548RtlGetFullPathName_UstrEx@32
1549RtlGetThreadErrorMode@0
1550RtlImageNtHeaderEx@20
1551RtlInitAnsiStringEx@8
1552RtlInsertElementGenericTableFull@24
1553RtlInsertElementGenericTableFullAvl@24
1554RtlInterlockedCompareExchange64@20
1555RtlLookupElementGenericTableFull@16
1556RtlLookupElementGenericTableFullAvl@16
1557RtlMultipleAllocateHeap@20
1558RtlMultipleFreeHeap@16
1559RtlReleaseRelativeName@4
1560RtlSetEnvironmentStrings@8
1561RtlSetThreadErrorMode@8
1562RtlWow64EnableFsRedirection@4
1563ZwAddDriverEntry@8
1564ZwApphelpCacheControl@8
1565ZwDeleteDriverEntry@4
1566ZwEnumerateDriverEntries@8
1567ZwGetCurrentProcessorNumber@0
1568ZwLoadKeyEx@32 ; Windows Server 2003 has ABI "ZwLoadKeyEx@16", Windows Vista and new has ABI "ZwLoadKeyEx@32"
1569ZwModifyDriverEntry@4
1570ZwQueryDriverEntryOrder@8
1571ZwQueryOpenSubKeysEx@16
1572ZwSetDriverEntryOrder@8
1573ZwUnloadKey2@8
1574
1575; This is list of symbols added in Windows Server 2003 SP1 and Windows XP x64 SP1 (WoW64 version)
1576ExpInterlockedPopEntrySListEnd@0 ; removed in Windows 10 November Update (Threshold 2 / 1511) WoW64 version, but available in non-WoW64 version
1577ExpInterlockedPopEntrySListFault@0 ; removed in Windows 10 November Update (Threshold 2 / 1511) WoW64 version, but available in non-WoW64 version
1578ExpInterlockedPopEntrySListResume@0 ; removed in Windows 10 November Update (Threshold 2 / 1511) WoW64 version, but available in non-WoW64 version
1579LdrOpenImageFileOptionsKey@12
1580LdrQueryImageFileKeyOption@24
1581NtWaitForMultipleObjects32@20
1582NtWow64CsrAllocateCaptureBuffer@8 ; available only in 32-bit WoW64 version on 64-bit system
1583NtWow64CsrAllocateMessagePointer@12 ; available only in 32-bit WoW64 version on 64-bit system
1584NtWow64CsrCaptureMessageBuffer@16 ; available only in 32-bit WoW64 version on 64-bit system
1585NtWow64CsrCaptureMessageString@20 ; available only in 32-bit WoW64 version on 64-bit system
1586NtWow64CsrClientCallServer@16 ; available only in 32-bit WoW64 version on 64-bit system
1587NtWow64CsrClientConnectToServer@20 ; available only in 32-bit WoW64 version on 64-bit system
1588NtWow64CsrFreeCaptureBuffer@4 ; available only in 32-bit WoW64 version on 64-bit system
1589NtWow64CsrGetProcessId@0 ; available only in 32-bit WoW64 version on 64-bit system
1590NtWow64CsrIdentifyAlertableThread@0 ; available only in 32-bit WoW64 version on 64-bit system
1591; NtWow64CsrNewThread@0 ; available only in 32-bit WoW64 version on 64-bit system, removed in Windows 7
1592; NtWow64CsrSetPriorityClass@8 ; available only in 32-bit WoW64 version on 64-bit system, removed in Windows 7
1593NtWow64DebuggerCall@20 ; available only in 32-bit WoW64 version on 64-bit system
1594NtWow64GetNativeSystemInformation@16 ; available only in 32-bit WoW64 version on 64-bit system
1595NtWow64QueryInformationProcess64@20 ; available only in 32-bit WoW64 version on 64-bit system
1596NtWow64QueryVirtualMemory64@32 ; available only in 32-bit WoW64 version on 64-bit system, removed in Windows 10 (Threshold / 1507)
1597NtWow64ReadVirtualMemory64@28 ; available only in 32-bit WoW64 version on 64-bit system
1598RtlAcquirePrivilege@16
1599RtlAddVectoredContinueHandler@8
1600RtlAllocateActivationContextStack@4
1601RtlDosPathNameToNtPathName_U_WithStatus@16
1602RtlDosPathNameToRelativeNtPathName_U_WithStatus@16
1603RtlFormatMessageEx@40
1604RtlFreeActivationContextStack@4
1605RtlGetCriticalSectionRecursionCount@4
1606RtlGetCurrentProcessorNumber@0
1607RtlIsCriticalSectionLocked@4
1608RtlIsCriticalSectionLockedByThread@4
1609RtlReleasePrivilege@4
1610RtlRemoveVectoredContinueHandler@4
1611RtlSetUnhandledExceptionFilter@4
1612RtlWow64EnableFsRedirectionEx@8
1613ZwWaitForMultipleObjects32@20
1614ZwWow64CsrAllocateCaptureBuffer@8 ; available only in 32-bit WoW64 version on 64-bit system
1615ZwWow64CsrAllocateMessagePointer@12 ; available only in 32-bit WoW64 version on 64-bit system
1616ZwWow64CsrCaptureMessageBuffer@16 ; available only in 32-bit WoW64 version on 64-bit system
1617ZwWow64CsrCaptureMessageString@20 ; available only in 32-bit WoW64 version on 64-bit system
1618ZwWow64CsrClientCallServer@16 ; available only in 32-bit WoW64 version on 64-bit system
1619ZwWow64CsrClientConnectToServer@20 ; available only in 32-bit WoW64 version on 64-bit system
1620ZwWow64CsrFreeCaptureBuffer@4 ; available only in 32-bit WoW64 version on 64-bit system
1621ZwWow64CsrGetProcessId@0 ; available only in 32-bit WoW64 version on 64-bit system
1622ZwWow64CsrIdentifyAlertableThread@0 ; available only in 32-bit WoW64 version on 64-bit system
1623; ZwWow64CsrNewThread@0 ; available only in 32-bit WoW64 version on 64-bit system, removed in Windows 7
1624; ZwWow64CsrSetPriorityClass@8 ; available only in 32-bit WoW64 version on 64-bit system, removed in Windows 7
1625ZwWow64DebuggerCall@20 ; available only in 32-bit WoW64 version on 64-bit system
1626ZwWow64GetNativeSystemInformation@16 ; available only in 32-bit WoW64 version on 64-bit system
1627ZwWow64QueryInformationProcess64@20 ; available only in 32-bit WoW64 version on 64-bit system
1628ZwWow64QueryVirtualMemory64@32 ; available only in 32-bit WoW64 version on 64-bit system, removed in Windows 10 (Threshold / 1507)
1629ZwWow64ReadVirtualMemory64@28 ; available only in 32-bit WoW64 version on 64-bit system
1630
1631; In Windows Server 2003 SP2 and Windows XP x64 SP2 (WoW64 version) was not added any new symbol
1632
1633; This is list of symbols added in Windows Vista
1634A_SHAFinal@8
1635A_SHAInit@4
1636A_SHAUpdate@12
1637AlpcAdjustCompletionListConcurrencyCount@8
1638AlpcFreeCompletionListMessage@8
1639AlpcGetCompletionListLastMessageInformation@12
1640AlpcGetCompletionListMessageAttributes@8
1641AlpcGetHeaderSize@4
1642AlpcGetMessageAttribute@8
1643AlpcGetMessageFromCompletionList@8
1644AlpcGetOutstandingCompletionListMessageCount@4
1645AlpcInitializeMessageAttribute@16
1646AlpcMaxAllowedMessageLength@0
1647AlpcRegisterCompletionList@20
1648AlpcRegisterCompletionListWorkerThread@4
1649AlpcUnregisterCompletionList@4
1650AlpcUnregisterCompletionListWorkerThread@4
1651CsrVerifyRegion@8
1652EtwDeliverDataBlock@4
1653EtwEnumerateProcessRegGuids@12
1654EtwEventActivityIdControl@8
1655EtwEventEnabled@12
1656EtwEventProviderEnabled@20
1657EtwEventRegister@16
1658EtwEventUnregister@8
1659EtwEventWrite@20
1660EtwEventWriteEndScenario@20
1661EtwEventWriteFull@32
1662EtwEventWriteStartScenario@20
1663EtwEventWriteString@24
1664EtwEventWriteTransfer@28
1665EtwLogTraceEvent@12
1666EtwNotificationRegister@20
1667EtwNotificationUnregister@12
1668EtwProcessPrivateLoggerRequest@4
1669EtwRegisterSecurityProvider@0
1670EtwReplyNotification@4
1671EtwSendNotification@20
1672EtwSetMark@16
1673EtwWriteUMSecurityEvent@16
1674EtwpCreateEtwThread@8
1675EtwpGetCpuSpeed@8 ; Windows Vista-8 has ABI "EtwpGetCpuSpeed@8", Windows 8.1 and new has ABI "EtwpGetCpuSpeed@4"
1676; EtwpNotificationThread@0 ; removed in Windows 8.1
1677LdrAddLoadAsDataTable@16 ; Windows Vista has ABI "LdrAddLoadAsDataTable@16", Windows 7 and new has ABI "LdrAddLoadAsDataTable@20"
1678LdrGetFailureData@0
1679LdrGetFileNameFromLoadAsDataTable@8
1680LdrGetProcedureAddressEx@20
1681LdrLoadAlternateResourceModuleEx@20
1682LdrQueryModuleServiceTags@12
1683LdrRegisterDllNotification@16
1684LdrRemoveLoadAsDataTable@16
1685LdrResFindResource@36
1686LdrResFindResourceDirectory@28
1687LdrResRelease@12
1688LdrResSearchResource@32
1689LdrSetMUICacheType@4
1690LdrUnloadAlternateResourceModuleEx@8
1691LdrUnregisterDllNotification@4
1692LdrVerifyImageMatchesChecksumEx@8
1693MD4Final@4
1694MD4Init@4
1695MD4Update@12
1696MD5Final@4
1697MD5Init@4
1698MD5Update@12
1699NtAcquireCMFViewOwnership@12 ; removed in Windows 7
1700NtAlpcAcceptConnectPort@36
1701NtAlpcCancelMessage@12
1702NtAlpcConnectPort@44
1703NtAlpcCreatePort@12
1704NtAlpcCreatePortSection@24
1705NtAlpcCreateResourceReserve@16
1706NtAlpcCreateSectionView@12
1707NtAlpcCreateSecurityContext@12
1708NtAlpcDeletePortSection@12
1709NtAlpcDeleteResourceReserve@12
1710NtAlpcDeleteSectionView@12
1711NtAlpcDeleteSecurityContext@12
1712NtAlpcDisconnectPort@8
1713NtAlpcImpersonateClientOfPort@12
1714NtAlpcOpenSenderProcess@24
1715NtAlpcOpenSenderThread@24
1716NtAlpcQueryInformation@20
1717NtAlpcQueryInformationMessage@24
1718NtAlpcRevokeSecurityContext@12
1719NtAlpcSendWaitReceivePort@32
1720NtAlpcSetInformation@16
1721NtCancelIoFileEx@12
1722NtCancelSynchronousIoFile@12
1723; NtClearAllSavepointsTransaction@4 ; removed in Windows Vista SP1
1724; NtClearSavepointTransaction@8 ; removed in Windows Vista SP1
1725NtCommitComplete@8
1726NtCommitEnlistment@8
1727NtCommitTransaction@8
1728NtCreateEnlistment@32
1729NtCreateKeyTransacted@32
1730NtCreatePrivateNamespace@16
1731NtCreateResourceManager@28
1732NtCreateThreadEx@44
1733NtCreateTransaction@40
1734NtCreateTransactionManager@24
1735NtCreateUserProcess@44
1736NtCreateWorkerFactory@40
1737NtDeletePrivateNamespace@4
1738NtEnumerateTransactionObject@20
1739NtFlushInstallUILanguage@8
1740NtFlushProcessWriteBuffers@0
1741NtFreezeRegistry@4
1742NtFreezeTransactions@8
1743NtGetMUIRegistryInfo@12
1744NtGetNextProcess@20
1745NtGetNextThread@24
1746NtGetNlsSectionPtr@20
1747NtGetNotificationResourceManager@28
1748NtInitializeNlsFiles@16 ; Windows Vista has ABI "NtInitializeNlsFiles@12", Windows Vista SP1 and SP2 has ABI "NtInitializeNlsFiles@16", Windows 7 and new has again ABI "NtInitializeNlsFiles@12"
1749NtIsUILanguageComitted@0
1750; NtListTransactions@12 ; removed in Windows Vista SP1
1751NtMapCMFModule@24
1752; NtMarshallTransaction@24 ; removed in Windows Vista SP1
1753NtOpenEnlistment@20
1754NtOpenKeyTransacted@16
1755NtOpenPrivateNamespace@16
1756NtOpenResourceManager@20
1757NtOpenSession@12
1758NtOpenTransaction@20
1759NtOpenTransactionManager@24
1760NtPrePrepareComplete@8
1761NtPrePrepareEnlistment@8
1762NtPrepareComplete@8
1763NtPrepareEnlistment@8
1764NtPropagationComplete@16
1765NtPropagationFailed@12
1766; NtPullTransaction@28 ; removed in Windows Vista SP1
1767NtQueryInformationEnlistment@20
1768NtQueryInformationResourceManager@20
1769NtQueryInformationTransaction@20
1770NtQueryInformationTransactionManager@20
1771NtQueryInformationWorkerFactory@20
1772NtQueryLicenseValue@20
1773NtReadOnlyEnlistment@8
1774NtRecoverEnlistment@8
1775NtRecoverResourceManager@4
1776NtRecoverTransactionManager@4
1777NtRegisterProtocolAddressInformation@20
1778NtReleaseCMFViewOwnership@0 ; removed in Windows 7
1779NtReleaseWorkerFactoryWorker@4
1780NtRemoveIoCompletionEx@24
1781NtRollbackComplete@8
1782NtRollbackEnlistment@8
1783; NtRollbackSavepointTransaction@8 ; removed in Windows Vista SP1
1784NtRollbackTransaction@8
1785NtRollforwardTransactionManager@8
1786; NtSavepointComplete@8 ; removed in Windows Vista SP1
1787; NtSavepointTransaction@12 ; removed in Windows Vista SP1
1788NtSetInformationEnlistment@16
1789NtSetInformationResourceManager@16
1790NtSetInformationTransaction@16
1791NtSetInformationTransactionManager@16
1792NtSetInformationWorkerFactory@16
1793NtShutdownWorkerFactory@8
1794NtSinglePhaseReject@8
1795; NtStartTm@0 ; removed in Windows Vista SP1
1796NtThawRegistry@0
1797NtThawTransactions@0
1798NtTraceControl@24
1799NtWaitForWorkViaWorkerFactory@8 ; Windows Vista-7 has ABI "NtWaitForWorkViaWorkerFactory@8", Windows 8 has ABI "NtWaitForWorkViaWorkerFactory@16", Windows 8.1 and new has ABI "NtWaitForWorkViaWorkerFactory@20"
1800NtWorkerFactoryWorkerReady@4
1801NtWow64CallFunction64@28 ; available only in 32-bit WoW64 version on 64-bit system
1802NtWow64CsrVerifyRegion@8 ; available only in 32-bit WoW64 version on 64-bit system
1803NtWow64WriteVirtualMemory64@28 ; available only in 32-bit WoW64 version on 64-bit system
1804; ResCCloseRuntimeView@4 ; removed in Windows Vista SP1
1805; ResCCompareCacheIDs@8 ; removed in Windows Vista SP1
1806; ResCCreateCultureMap@12 ; removed in Windows Vista SP1
1807; ResCCreateDefaultCultureMap@4 ; removed in Windows Vista SP1
1808; ResCCreateRuntimeView@16 ; removed in Windows Vista SP1
1809; ResCDirectoryCreateAndPopulate@12 ; removed in Windows Vista SP1
1810; ResCDirectoryCreateMapping@16 ; removed in Windows Vista SP1
1811; ResCDirectoryFree@4 ; removed in Windows Vista SP1
1812; ResCDirectoryGetBaseFolder@4 ; removed in Windows Vista SP1
1813; ResCDirectoryGetEntry@24 ; removed in Windows Vista SP1
1814; ResCDirectoryGetEntryCopy@28 ; removed in Windows Vista SP1
1815; ResCDirectoryGetEntryEx@32 ; removed in Windows Vista SP1
1816; ResCDirectoryGetEntryExCopy@36 ; removed in Windows Vista SP1
1817; ResCDirectoryGetEntryIndex@24 ; removed in Windows Vista SP1
1818; ResCDirectoryGetEntryIndexEx@32 ; removed in Windows Vista SP1
1819; ResCDirectoryGetFirstEntry@20 ; removed in Windows Vista SP1
1820; ResCDirectoryGetFirstEntryIndex@20 ; removed in Windows Vista SP1
1821; ResCDirectoryGetSegmentIndex@8 ; removed in Windows Vista SP1
1822; ResCDirectoryGetSegmentName@8 ; removed in Windows Vista SP1
1823; ResCDirectoryLoadFixedSize@4 ; removed in Windows Vista SP1
1824; ResCDirectoryOpenMapping@8 ; removed in Windows Vista SP1
1825; ResCFreeCultureMap@4 ; removed in Windows Vista SP1
1826; ResCGetCacheIndices@16 ; removed in Windows Vista SP1
1827; ResCGetCultureID@8 ; removed in Windows Vista SP1
1828; ResCGetCultureIndex@8 ; removed in Windows Vista SP1
1829; ResCGetCultureName@16 ; removed in Windows Vista SP1
1830; ResCGetHighestCacheIndex@4 ; removed in Windows Vista SP1
1831; ResCGetHighestConsecutiveCacheIndex@12 ; removed in Windows Vista SP1
1832; ResCGetIndexedName@20 ; removed in Windows Vista SP1
1833; ResCGetName@16 ; removed in Windows Vista SP1
1834; ResCGetRegistryBaseFolder@16 ; removed in Windows Vista SP1
1835; ResCGetRegistryConfig@8 ; removed in Windows Vista SP1
1836; ResCGetRegistryLatestIndex@8 ; removed in Windows Vista SP1
1837; ResCGetRegistryMappingPrefix@16 ; removed in Windows Vista SP1
1838; ResCGetRegistryStatus@8 ; removed in Windows Vista SP1
1839; ResCGetSubIndexedName@24 ; removed in Windows Vista SP1
1840; ResCInitRuntimeView@8 ; removed in Windows Vista SP1
1841; ResCInitRuntimeViewEx@12 ; removed in Windows Vista SP1
1842; ResCKeDirectoryOpenMapping@20 ; removed in Windows Vista SP1
1843; ResCKeGetBaseFolder@8 ; removed in Windows Vista SP1
1844; ResCKeGetCacheIndices@8 ; removed in Windows Vista SP1
1845; ResCKeInitRuntimeViewEx@4 ; removed in Windows Vista SP1
1846; ResCKeSegmentOpenMapping@8 ; removed in Windows Vista SP1
1847; ResCLoadCultureMap@4 ; removed in Windows Vista SP1
1848; ResCOpenRegistryKey@24 ; removed in Windows Vista SP1
1849; ResCOpenRuntimeView@8 ; removed in Windows Vista SP1
1850; ResCReleaseInitMutex@4 ; removed in Windows Vista SP1
1851; ResCReloadCultureMap@4 ; removed in Windows Vista SP1
1852; ResCRequestInitMutex@8 ; removed in Windows Vista SP1
1853; ResCRuntimeGetAnySegmentData@20 ; removed in Windows Vista SP1
1854; ResCRuntimeGetCultureID@8 ; removed in Windows Vista SP1
1855; ResCRuntimeGetEntryData@8 ; removed in Windows Vista SP1
1856; ResCRuntimeGetEntryDataEx@12 ; removed in Windows Vista SP1
1857; ResCRuntimeGetResourceData@32 ; removed in Windows Vista SP1
1858; ResCRuntimeGetResourceDataEx@36 ; removed in Windows Vista SP1
1859; ResCRuntimeGetResourceDataForCulture@32 ; removed in Windows Vista SP1
1860; ResCRuntimeGetSegmentData@16 ; removed in Windows Vista SP1
1861; ResCRuntimeGetSegmentDataEx@20 ; removed in Windows Vista SP1
1862; ResCRuntimeViewLoadCultureMap@4 ; removed in Windows Vista SP1
1863; ResCSaveRegistryBaseFolder@8 ; removed in Windows Vista SP1
1864; ResCSaveRegistryConfig@8 ; removed in Windows Vista SP1
1865; ResCSaveRegistryLatestIndex@8 ; removed in Windows Vista SP1
1866; ResCSaveRegistryStatus@8 ; removed in Windows Vista SP1
1867; ResCSegmentCreateAndPopulate@12 ; removed in Windows Vista SP1
1868; ResCSegmentCreateMapping@20 ; removed in Windows Vista SP1
1869; ResCSegmentFree@4 ; removed in Windows Vista SP1
1870; ResCSegmentGetData@8 ; removed in Windows Vista SP1
1871; ResCSegmentLoadFixedSize@4 ; removed in Windows Vista SP1
1872; ResCSegmentOpenMapping@8 ; removed in Windows Vista SP1
1873; ResCSegmentReserveMapping@16 ; removed in Windows Vista SP1
1874; ResCSetCacheSecurityType@4 ; removed in Windows Vista SP1
1875RtlAcquireSRWLockExclusive@4
1876RtlAcquireSRWLockShared@4
1877RtlAddMandatoryAce@24
1878RtlAddSIDToBoundaryDescriptor@8
1879RtlAllocateMemoryBlockLookaside@12
1880RtlAllocateMemoryZone@12
1881RtlBarrier@8
1882RtlBarrierForDelete@8
1883RtlCleanUpTEBLangLists@0
1884RtlCloneUserProcess@20
1885RtlCmDecodeMemIoResource@8
1886RtlCmEncodeMemIoResource@24
1887RtlCommitDebugInfo@8
1888RtlCompareAltitudes@8
1889RtlCompareUnicodeStrings@20
1890RtlConnectToSm@16
1891RtlConvertLCIDToString@20
1892RtlCreateBoundaryDescriptor@8
1893RtlCreateEnvironmentEx@12
1894RtlCreateMemoryBlockLookaside@20
1895RtlCreateMemoryZone@12
1896RtlCreateProcessParametersEx@44
1897RtlCreateServiceSid@12
1898RtlCreateUserStack@24
1899RtlCultureNameToLCID@8
1900RtlDeCommitDebugInfo@12
1901RtlDeleteBarrier@4
1902RtlDeleteBoundaryDescriptor@4
1903RtlDestroyMemoryBlockLookaside@4
1904RtlDestroyMemoryZone@4
1905RtlExitUserProcess@4
1906RtlExpandEnvironmentStrings@24
1907RtlExtendMemoryBlockLookaside@8
1908RtlExtendMemoryZone@8
1909RtlFindAceByType@12
1910RtlFindClosestEncodableLength@12
1911RtlFlsAlloc@8
1912RtlFlsFree@4
1913RtlFreeMemoryBlockLookaside@8
1914RtlFreeUserStack@4
1915RtlGetCurrentTransaction@0
1916RtlGetFileMUIPath@28
1917RtlGetIntegerAtom@8
1918RtlGetParentLocaleName@16
1919RtlGetProductInfo@20
1920RtlGetSystemPreferredUILanguages@20
1921RtlGetThreadLangIdByIndex@16
1922RtlGetThreadPreferredUILanguages@16
1923RtlGetUILanguageInfo@20
1924RtlGetUnloadEventTraceEx@12
1925RtlGetUserPreferredUILanguages@20
1926RtlHeapTrkInitialize@4
1927RtlIdnToAscii@20
1928RtlIdnToNameprepUnicode@20
1929RtlIdnToUnicode@20
1930RtlImpersonateSelfEx@12
1931RtlInitBarrier@12
1932RtlInitializeConditionVariable@4
1933RtlInitializeCriticalSectionEx@12
1934RtlInitializeNtUserPfn@24
1935RtlInitializeSRWLock@4
1936RtlIoDecodeMemIoResource@16
1937RtlIoEncodeMemIoResource@40
1938RtlIsCurrentThreadAttachExempt@0
1939RtlIsNormalizedString@16
1940RtlIsValidLocaleName@8
1941RtlLCIDToCultureName@8
1942RtlLcidToLocaleName@16
1943RtlLocaleNameToLcid@12
1944RtlLockCurrentThread@0
1945RtlLockMemoryBlockLookaside@4
1946RtlLockMemoryZone@4
1947RtlLockModuleSection@4
1948RtlNormalizeString@20
1949RtlOwnerAcesPresent@4
1950RtlProcessFlsData@4 ; Windows Vista-10 has ABI "RtlProcessFlsData@4", Windows 10 May 2019 Update (19H1 / 1903) and new has ABI "RtlProcessFlsData@8"
1951RtlQueryActivationContextApplicationSettings@28
1952RtlQueryCriticalSectionOwner@4 ; Windows Vista-8.1 has ABI "RtlQueryCriticalSectionOwner@4", Windows 10 and new has ABI "RtlQueryCriticalSectionOwner@8"
1953RtlQueryDynamicTimeZoneInformation@4
1954RtlQueryElevationFlags@4
1955RtlQueryEnvironmentVariable@24
1956RtlQueryModuleInformation@12
1957RtlRegisterThreadWithCsrss@0
1958RtlReleaseSRWLockExclusive@4
1959RtlReleaseSRWLockShared@4
1960RtlRemovePrivileges@12
1961RtlReportException@12
1962RtlResetMemoryBlockLookaside@4
1963RtlResetMemoryZone@4
1964RtlRetrieveNtUserPfn@12
1965RtlRunOnceBeginInitialize@12
1966RtlRunOnceComplete@12
1967RtlRunOnceExecuteOnce@16
1968RtlRunOnceInitialize@4
1969RtlSendMsgToSm@8
1970RtlSetCurrentTransaction@4
1971RtlSetDynamicTimeZoneInformation@4
1972RtlSetEnvironmentVar@20
1973RtlSetProcessDebugInformation@12
1974RtlSetThreadPreferredUILanguages@12
1975RtlSidDominates@12
1976RtlSidEqualLevel@12
1977RtlSidHashInitialize@12
1978RtlSidHashLookup@8
1979RtlSidIsHigherLevel@12
1980RtlSleepConditionVariableCS@12
1981RtlSleepConditionVariableSRW@16
1982RtlTestBit@8
1983RtlTryAcquirePebLock@0
1984RtlUnlockCurrentThread@0
1985RtlUnlockMemoryBlockLookaside@4
1986RtlUnlockMemoryZone@4
1987RtlUnlockModuleSection@4
1988RtlUpdateClonedCriticalSection@4
1989RtlUpdateClonedSRWLock@8
1990RtlUserThreadStart@8
1991RtlWakeAllConditionVariable@4
1992RtlWakeConditionVariable@4
1993RtlWerpReportException@16 ; Windows Vista-8 has ABI "RtlWerpReportException@16", Windows 8.1 and new has ABI "RtlWerpReportException@24"
1994RtlWow64CallFunction64@28
1995RtlWow64LogMessageInEventLogger@12 ; available only in 32-bit WoW64 version on 64-bit system
1996RtlpCleanupRegistryKeys@0
1997RtlpConvertCultureNamesToLCIDs@8
1998RtlpConvertLCIDsToCultureNames@8
1999RtlpCreateProcessRegistryInfo@4
2000RtlpGetLCIDFromLangInfoNode@12
2001RtlpGetNameFromLangInfoNode@12
2002RtlpGetSystemDefaultUILanguage@4 ; Windows Vista has ABI "RtlpGetSystemDefaultUILanguage@4", Windows 7 and new has ABI "RtlpGetSystemDefaultUILanguage@8"
2003RtlpGetUserOrMachineUILanguage4NLS@12
2004RtlpInitializeLangRegistryInfo@4
2005RtlpIsQualifiedLanguage@12
2006RtlpLoadMachineUIByPolicy@12
2007RtlpLoadUserUIByPolicy@12
2008RtlpMuiFreeLangRegistryInfo@4
2009RtlpMuiRegCreateRegistryInfo@0
2010RtlpMuiRegFreeRegistryInfo@8
2011RtlpMuiRegLoadRegistryInfo@8
2012RtlpQueryDefaultUILanguage@8
2013RtlpQueryProcessDebugInformationRemote@4 ; available only in 32-bit WoW64 version on 64-bit system, since Windows 10 Creators Update (Redstone 2 / 1703) available also in non-WoW64 version
2014RtlpRefreshCachedUILanguage@8
2015RtlpSetInstallLanguage@8
2016RtlpSetPreferredUILanguages@12
2017RtlpSetUserPreferredUILanguages@12
2018RtlpVerifyAndCommitUILanguageSettings@4
2019ShipAssert@8
2020ShipAssertGetBufferInfo@8
2021ShipAssertMsgA@12
2022ShipAssertMsgW@12
2023TpAllocAlpcCompletion@20
2024TpAllocCleanupGroup@4
2025TpAllocIoCompletion@20
2026TpAllocPool@8
2027TpAllocTimer@16
2028TpAllocWait@16
2029TpAllocWork@16
2030TpCallbackLeaveCriticalSectionOnCompletion@8
2031TpCallbackMayRunLong@4
2032TpCallbackReleaseMutexOnCompletion@8
2033TpCallbackReleaseSemaphoreOnCompletion@12
2034TpCallbackSetEventOnCompletion@8
2035TpCallbackUnloadDllOnCompletion@8
2036TpCancelAsyncIoOperation@4
2037TpCaptureCaller@4
2038TpCheckTerminateWorker@4
2039TpDbgDumpHeapUsage@12
2040TpDbgSetLogRoutine@4
2041TpDisassociateCallback@4
2042TpIsTimerSet@4
2043TpPostWork@4
2044TpReleaseAlpcCompletion@4
2045TpReleaseCleanupGroup@4
2046TpReleaseCleanupGroupMembers@12
2047TpReleaseIoCompletion@4
2048TpReleasePool@4
2049TpReleaseTimer@4
2050TpReleaseWait@4
2051TpReleaseWork@4
2052TpSetPoolMaxThreads@8
2053TpSetPoolMinThreads@8
2054TpSetTimer@16
2055TpSetWait@12
2056TpSimpleTryPost@12
2057TpStartAsyncIoOperation@4
2058TpWaitForAlpcCompletion@4
2059TpWaitForIoCompletion@8
2060TpWaitForTimer@8
2061TpWaitForWait@8
2062TpWaitForWork@8
2063WerCheckEventEscalation@8 ; removed in Windows 7
2064WerReportSQMEvent@16 ; Windows Vista has ABI "WerReportSQMEvent@12", Windows 7 and new has ABI "WerReportSQMEvent@16"
2065WerReportWatsonEvent@16 ; removed in Windows 7
2066WinSqmAddToStream@16
2067WinSqmEndSession@4
2068WinSqmEventEnabled@8
2069WinSqmEventWrite@12
2070WinSqmIsOptedIn@0
2071WinSqmSetString@12
2072WinSqmStartSession@12
2073ZwAcquireCMFViewOwnership@12 ; removed in Windows 7
2074ZwAlpcAcceptConnectPort@36
2075ZwAlpcCancelMessage@12
2076ZwAlpcConnectPort@44
2077ZwAlpcCreatePort@12
2078ZwAlpcCreatePortSection@24
2079ZwAlpcCreateResourceReserve@16
2080ZwAlpcCreateSectionView@12
2081ZwAlpcCreateSecurityContext@12
2082ZwAlpcDeletePortSection@12
2083ZwAlpcDeleteResourceReserve@12
2084ZwAlpcDeleteSectionView@12
2085ZwAlpcDeleteSecurityContext@12
2086ZwAlpcDisconnectPort@8
2087ZwAlpcImpersonateClientOfPort@12
2088ZwAlpcOpenSenderProcess@24
2089ZwAlpcOpenSenderThread@24
2090ZwAlpcQueryInformation@20
2091ZwAlpcQueryInformationMessage@24
2092ZwAlpcRevokeSecurityContext@12
2093ZwAlpcSendWaitReceivePort@32
2094ZwAlpcSetInformation@16
2095ZwCancelIoFileEx@12
2096ZwCancelSynchronousIoFile@12
2097; ZwClearAllSavepointsTransaction@4 ; removed in Windows Vista SP1
2098; ZwClearSavepointTransaction@8 ; removed in Windows Vista SP1
2099ZwCommitComplete@8
2100ZwCommitEnlistment@8
2101ZwCommitTransaction@8
2102ZwCreateEnlistment@32
2103ZwCreateKeyTransacted@32
2104ZwCreatePrivateNamespace@16
2105ZwCreateResourceManager@28
2106ZwCreateThreadEx@44
2107ZwCreateTransaction@40
2108ZwCreateTransactionManager@24
2109ZwCreateUserProcess@44
2110ZwCreateWorkerFactory@40
2111ZwDeletePrivateNamespace@4
2112ZwEnumerateTransactionObject@20
2113ZwFlushInstallUILanguage@8
2114ZwFlushProcessWriteBuffers@0
2115ZwFreezeRegistry@4
2116ZwFreezeTransactions@8
2117ZwGetMUIRegistryInfo@12
2118ZwGetNextProcess@20
2119ZwGetNextThread@24
2120ZwGetNlsSectionPtr@20
2121ZwGetNotificationResourceManager@28
2122ZwInitializeNlsFiles@16 ; Windows Vista has ABI "ZwInitializeNlsFiles@12", Windows Vista SP1 and SP2 has ABI "ZwInitializeNlsFiles@16", Windows 7 and new has again ABI "ZwInitializeNlsFiles@12"
2123ZwIsUILanguageComitted@0
2124; ZwListTransactions@12 ; removed in Windows Vista SP1
2125ZwMapCMFModule@24
2126; ZwMarshallTransaction@24 ; removed in Windows Vista SP1
2127ZwOpenEnlistment@20
2128ZwOpenKeyTransacted@16
2129ZwOpenPrivateNamespace@16
2130ZwOpenResourceManager@20
2131ZwOpenSession@12
2132ZwOpenTransaction@20
2133ZwOpenTransactionManager@24
2134ZwPrePrepareComplete@8
2135ZwPrePrepareEnlistment@8
2136ZwPrepareComplete@8
2137ZwPrepareEnlistment@8
2138ZwPropagationComplete@16
2139ZwPropagationFailed@12
2140; ZwPullTransaction@28 ; removed in Windows Vista SP1
2141ZwQueryInformationEnlistment@20
2142ZwQueryInformationResourceManager@20
2143ZwQueryInformationTransaction@20
2144ZwQueryInformationTransactionManager@20
2145ZwQueryInformationWorkerFactory@20
2146ZwQueryLicenseValue@20
2147ZwReadOnlyEnlistment@8
2148ZwRecoverEnlistment@8
2149ZwRecoverResourceManager@4
2150ZwRecoverTransactionManager@4
2151ZwRegisterProtocolAddressInformation@20
2152ZwReleaseCMFViewOwnership@0 ; removed in Windows 7
2153ZwReleaseWorkerFactoryWorker@4
2154ZwRemoveIoCompletionEx@24
2155ZwRollbackComplete@8
2156ZwRollbackEnlistment@8
2157; ZwRollbackSavepointTransaction@8 ; removed in Windows Vista SP1
2158ZwRollbackTransaction@8
2159ZwRollforwardTransactionManager@8
2160; ZwSavepointComplete@8 ; removed in Windows Vista SP1
2161; ZwSavepointTransaction@12 ; removed in Windows Vista SP1
2162ZwSetInformationEnlistment@16
2163ZwSetInformationResourceManager@16
2164ZwSetInformationTransaction@16
2165ZwSetInformationTransactionManager@16
2166ZwSetInformationWorkerFactory@16
2167ZwShutdownWorkerFactory@8
2168ZwSinglePhaseReject@8
2169; ZwStartTm@0 ; removed in Windows Vista SP1
2170ZwThawRegistry@0
2171ZwThawTransactions@0
2172ZwTraceControl@24
2173ZwWaitForWorkViaWorkerFactory@8 ; Windows Vista-7 has ABI "ZwWaitForWorkViaWorkerFactory@8", Windows 8 has ABI "ZwWaitForWorkViaWorkerFactory@16", Windows 8.1 and new has ABI "ZwWaitForWorkViaWorkerFactory@20"
2174ZwWorkerFactoryWorkerReady@4
2175ZwWow64CallFunction64@28 ; available only in 32-bit WoW64 version on 64-bit system
2176ZwWow64CsrVerifyRegion@8 ; available only in 32-bit WoW64 version on 64-bit system
2177ZwWow64WriteVirtualMemory64@28 ; available only in 32-bit WoW64 version on 64-bit system
2178; _ResCGetRegistryFlags@16 ; removed in Windows Vista SP1
2179; _ResCMatchFlags@12 ; removed in Windows Vista SP1
2180; _ResCSaveRegistryFlags@16 ; removed in Windows Vista SP1
2181
2182; This is list of symbols added in Windows Vista SP1
2183LdrpResGetMappingSize@16
2184LdrpResGetRCConfig@20 ; removed in Windows 7
2185LdrpResGetResourceDirectory@20
2186NtRenameTransactionManager@8
2187NtReplacePartitionUnit@12
2188NtdllDefWindowProc_A@16 ; same as user32.DefWindowProcA
2189NtdllDefWindowProc_W@16 ; same as user32.DefWindowProcW
2190NtdllDialogWndProc_A@16 ; same as user32.DefDlgProcA
2191NtdllDialogWndProc_W@16 ; same as user32.DefDlgProcW
2192RtlDeregisterSecureMemoryCacheCallback@4
2193RtlInitializeExceptionChain@4
2194RtlNumberOfSetBitsUlongPtr@4
2195RtlpCheckDynamicTimeZoneInformation@8
2196ZwRenameTransactionManager@8
2197ZwReplacePartitionUnit@12
2198
2199; This is list of symbols added in Windows Vista SP2
2200RtlpInterlockedPopEntrySeqSListEnd@0 ; available only in 32-bit WoW64 version on 64-bit system, removed in Windows 7
2201RtlpInterlockedPopEntrySeqSListFault@0 ; available only in 32-bit WoW64 version on 64-bit system, removed in Windows 7
2202RtlpInterlockedPopEntrySeqSListResume@0 ; available only in 32-bit WoW64 version on 64-bit system, removed in Windows 7
2203
2204; This is list of symbols added in Windows 7
2205AlpcRundownCompletionList@4
2206EtwEventWriteEx@40
2207EtwEventWriteNoRegistration@16
2208EvtIntReportAuthzEventAndSourceAsync@44
2209EvtIntReportEventAndSourceAsync@44
2210LdrGetDllHandleByMapping@8
2211LdrGetDllHandleByName@12
2212LdrResGetRCConfig@20
2213LdrRscIsTypeExist@16
2214LdrWx86FormatVirtualImage@12 ; available only in 32-bit WoW64 version on 64-bit system, removed in Windows 10 Creators Update (Redstone 2 / 1703)
2215NtAllocateReserveObject@12
2216NtCreateProfileEx@40
2217NtDisableLastKnownGood@0
2218NtDrawText@4
2219NtEnableLastKnownGood@0
2220NtNotifyChangeSession@32
2221NtOpenKeyEx@16
2222NtOpenKeyTransactedEx@20
2223NtQuerySecurityAttributesToken@24
2224NtQuerySystemInformationEx@24
2225NtQueueApcThreadEx@24
2226NtSerializeBoot@0
2227NtSetIoCompletionEx@24
2228NtSetTimerEx@16
2229NtUmsThreadYield@4
2230NtWow64GetCurrentProcessorNumberEx@4 ; available only in 32-bit WoW64 version on 64-bit system
2231NtWow64InterlockedPopEntrySList@4 ; available only in 32-bit WoW64 version on 64-bit system, removed in Windows 8
2232RtlAcquireReleaseSRWLockExclusive@4
2233RtlAddIntegrityLabelToBoundaryDescriptor@8
2234RtlContractHashTable@4
2235RtlCopyExtendedContext@12
2236RtlCreateHashTable@12
2237RtlCreateProcessReflection@24
2238RtlCreateVirtualAccountSid@16
2239RtlDeleteHashTable@4
2240RtlDetectHeapLeaks@0
2241RtlDisableThreadProfiling@4
2242RtlEnableThreadProfiling@20
2243RtlEndEnumerationHashTable@8
2244RtlEndWeakEnumerationHashTable@8
2245RtlEnumerateEntryHashTable@8
2246RtlEthernetAddressToStringA@8
2247RtlEthernetAddressToStringW@8
2248RtlEthernetStringToAddressA@12
2249RtlEthernetStringToAddressW@12
2250RtlExpandHashTable@4
2251RtlFillMemoryUlonglong@16
2252RtlGetCurrentProcessorNumberEx@4
2253RtlGetEnabledExtendedFeatures@8
2254RtlGetExtendedContextLength@8
2255RtlGetExtendedFeaturesMask@4
2256RtlGetFullPathName_UEx@20
2257RtlGetLocaleFileMappingAddress@12
2258RtlGetNextEntryHashTable@8
2259RtlGetProcessPreferredUILanguages@16
2260RtlInitEnumerationHashTable@8
2261RtlInitWeakEnumerationHashTable@8
2262RtlInitializeExtendedContext@12
2263RtlInsertEntryHashTable@16
2264RtlInterlockedClearBitRun@12
2265RtlInterlockedSetBitRun@12
2266RtlIsNameInExpression@16
2267RtlKnownExceptionFilter@4
2268RtlLoadString@32
2269RtlLocateExtendedFeature@12
2270RtlLocateLegacyContext@8
2271RtlLookupEntryHashTable@12
2272RtlQueryPerformanceCounter@4
2273RtlQueryPerformanceFrequency@4
2274RtlQueryThreadProfiling@8
2275RtlReadThreadProfilingData@12
2276RtlRemoveEntryHashTable@12
2277RtlReplaceSidInSd@16
2278RtlReportSilentProcessExit@8
2279RtlReportSqmEscalation@24
2280RtlSetExtendedFeaturesMask@12
2281RtlSetProcessPreferredUILanguages@12
2282RtlSetUserCallbackExceptionFilter@4 ; available only in 32-bit WoW64 version on 64-bit system
2283RtlTryAcquireSRWLockExclusive@4
2284RtlTryAcquireSRWLockShared@4
2285RtlUTF8ToUnicodeN@20
2286RtlUnicodeToUTF8N@20
2287RtlWeaklyEnumerateEntryHashTable@8
2288SbExecuteProcedure@20
2289SbSelectProcedure@16
2290TpAllocAlpcCompletionEx@20
2291TpAlpcRegisterCompletionList@4
2292TpAlpcUnregisterCompletionList@4
2293TpCallbackIndependent@4
2294TpDbgGetFreeInfo@8 ; removed in Windows 8
2295TpDisablePoolCallbackChecks@4
2296TpPoolFreeUnusedNodes@4 ; removed in Windows 8
2297TpQueryPoolStackInformation@8
2298TpSetDefaultPoolMaxThreads@4
2299TpSetDefaultPoolStackInformation@4
2300TpSetPoolStackInformation@8
2301WinSqmAddToAverageDWORD@12
2302WinSqmAddToStreamEx@20
2303WinSqmCheckEscalationAddToStreamEx@20
2304WinSqmCheckEscalationSetDWORD64@20
2305WinSqmCheckEscalationSetDWORD@16
2306WinSqmCheckEscalationSetString@16
2307WinSqmCommonDatapointDelete@4
2308WinSqmCommonDatapointSetDWORD64@16
2309WinSqmCommonDatapointSetDWORD@12
2310WinSqmCommonDatapointSetStreamEx@20
2311WinSqmCommonDatapointSetString@12
2312WinSqmGetEscalationRuleStatus@8
2313WinSqmGetInstrumentationProperty@16
2314WinSqmIncrementDWORD@12
2315WinSqmIsOptedInEx@4
2316WinSqmSetDWORD64@16
2317WinSqmSetDWORD@12
2318WinSqmSetEscalationInfo@16
2319WinSqmSetIfMaxDWORD@12
2320WinSqmSetIfMinDWORD@12
2321ZwAllocateReserveObject@12
2322ZwCreateProfileEx@40
2323ZwDisableLastKnownGood@0
2324ZwDrawText@4
2325ZwEnableLastKnownGood@0
2326ZwNotifyChangeSession@32
2327ZwOpenKeyEx@16
2328ZwOpenKeyTransactedEx@20
2329ZwQuerySecurityAttributesToken@24
2330ZwQuerySystemInformationEx@24
2331ZwQueueApcThreadEx@24
2332ZwSerializeBoot@0
2333ZwSetIoCompletionEx@24
2334ZwSetTimerEx@16
2335ZwUmsThreadYield@4
2336ZwWow64GetCurrentProcessorNumberEx@4 ; available only in 32-bit WoW64 version on 64-bit system
2337ZwWow64InterlockedPopEntrySList@4 ; available only in 32-bit WoW64 version on 64-bit system, removed in Windows 10 (Threshold / 1507)
2338
2339; This is list of ordinal-only symbols added in Windows 7
2340; Symbol names are taken from:
2341; https://www.geoffchappell.com/studies/windows/win32/ntdll/history/ords61.htm
2342; AitLogFeatureUsageByApp@4 @1 NONAME ; removed in Windows 10 (Threshold / 1507)
2343; AitFireParentUsageEvent@16 @2 NONAME ; removed in Windows 10 (Threshold / 1507)
2344; SbtLogSystemUsageByParent@32 @3 NONAME ; removed in Windows 10 (Threshold / 1507)
2345; SbtLogSystemUsageByStack@28 @4 NONAME ; FIXME: Windows 7 has ABI @28, Windows 8 and 8.1 has ABI @20, removed in Windows 10 (Threshold / 1507)
2346; SbtDisableForCurrentProcess@0 @5 NONAME ; removed in Windows 10 (Threshold / 1507)
2347; SbtLogDllMapping@8 @6 NONAME ; FIXME: Windows 7 has ABI @8, Windows 8 and 8.1 has ABI @0, removed in Windows 10 (Threshold / 1507)
2348; SbtLogExeInitializing@0 @7 NONAME ; removed in Windows 10 (Threshold / 1507)
2349; RtlDispatchAPC@12 @8 NONAME ; since Windows 10 Creators Update (Redstone 2 / 1703) available as normal symbol
2350
2351; This is list of symbols added in Windows 7 SP1
2352RtlCopyContext@12
2353
2354; This is list of symbols added in Windows 8
2355ApiSetQueryApiSetPresence@8
2356EtwEventSetInformation@20
2357LdrAddDllDirectory@8
2358LdrAppxHandleIntegrityFailure@4
2359LdrGetDllDirectory@4
2360LdrGetDllFullName@8
2361LdrGetDllPath@16
2362LdrGetProcedureAddressForCaller@24
2363LdrProcessRelocationBlockEx@20
2364LdrQueryOptionalDelayLoadedAPI@16
2365LdrRemoveDllDirectory@4
2366LdrResolveDelayLoadedAPI@24
2367LdrResolveDelayLoadsFromDll@12
2368LdrSetDefaultDllDirectories@4
2369LdrSetDllDirectory@4
2370LdrStandardizeSystemPath@4
2371LdrSystemDllInitBlock DATA
2372NtAddAtomEx@16
2373NtAdjustTokenClaimsAndDeviceGroups@64
2374NtAlertThreadByThreadId@4
2375NtAlpcConnectPortEx@44
2376NtAssociateWaitCompletionPacket@32
2377NtCancelWaitCompletionPacket@8
2378NtCreateDirectoryObjectEx@20
2379NtCreateIRTimer@12 ; Windows 8-10 has ABI "NtCreateIRTimer@8", Windows 10 Creators Update (Redstone 2 / 1703) and new has ABI "NtCreateIRTimer@12"
2380NtCreateLowBoxToken@36
2381NtCreateTokenEx@68
2382NtCreateWaitCompletionPacket@12
2383NtCreateWnfStateName@28
2384NtDeleteWnfStateData@8
2385NtDeleteWnfStateName@4
2386NtFilterBootOption@20
2387NtFilterTokenEx@56
2388NtFlushBuffersFileEx@20
2389NtGetCachedSigningLevel@24
2390NtQueryWnfStateData@24
2391NtQueryWnfStateNameInformation@20
2392NtSetCachedSigningLevel@20
2393NtSetIRTimer@8
2394NtSetInformationVirtualMemory@24
2395NtSubscribeWnfStateChange@16
2396NtUnmapViewOfSectionEx@12
2397NtUnsubscribeWnfStateChange@4
2398NtUpdateWnfStateData@28
2399NtWaitForAlertByThreadId@8
2400; NtWaitForWnfNotifications@8 ; removed in Windows 8.1
2401; NtWow64AllocateVirtualMemory64@28 ; available only in 32-bit WoW64 version on 64-bit system
2402RtlAddResourceAttributeAce@28
2403RtlAddScopedPolicyIDAce@20
2404RtlAllocateWnfSerializationGroup@0
2405RtlAppxIsFileOwnedByTrustedInstaller@8
2406RtlAvlInsertNodeEx@16
2407RtlAvlRemoveNode@8
2408RtlCanonicalizeDomainName@12
2409RtlCheckPortableOperatingSystem@4
2410RtlCheckTokenCapability@12
2411RtlCheckTokenMembership@12
2412RtlCheckTokenMembershipEx@16
2413RtlClearBit@8
2414RtlCopyBitMap@12
2415RtlCrc32@12
2416RtlCrc64@16
2417RtlCreateHashTableEx@16
2418RtlDecompressBufferEx@28
2419RtlDeleteElementGenericTableAvlEx@8
2420RtlEqualWnfChangeStamps@8
2421RtlExtractBitMap@16
2422RtlFlushHeaps@0
2423RtlGetAppContainerNamedObjectPath@16
2424RtlGetExePath@8
2425RtlGetSearchPath@4
2426RtlGetSystemTimePrecise@0
2427RtlInterlockedPushListSListEx@16
2428RtlIsCapabilitySid@4
2429RtlIsPackageSid@4
2430RtlIsUntrustedObject@12
2431RtlLengthSidAsUnicodeString@8
2432RtlNumberOfClearBitsInRange@12
2433RtlNumberOfSetBitsInRange@12
2434RtlPublishWnfStateData@24
2435RtlQueryPackageIdentity@24
2436RtlQueryRegistryValuesEx@20
2437RtlQueryUnbiasedInterruptTime@4
2438RtlQueryValidationRunlevel@4
2439RtlQueryWnfMetaNotification@20
2440RtlQueryWnfStateData@24
2441RtlQueryWnfStateDataWithExplicitScope@28
2442RtlRbInsertNodeEx@16
2443RtlRbRemoveNode@8
2444RtlRegisterForWnfMetaNotification@24
2445RtlReleasePath@4
2446RtlResetNtUserPfn@0
2447RtlSetBit@8
2448RtlSetPortableOperatingSystem@4
2449RtlSetSearchPathMode@4
2450RtlSubscribeWnfStateChangeNotification@36
2451RtlTestAndPublishWnfStateData@28
2452RtlTryConvertSRWLockSharedToExclusiveOrRelease@4
2453RtlUnsubscribeWnfNotificationWaitForCompletion@4
2454RtlUnsubscribeWnfNotificationWithCompletionCallback@12
2455RtlUnsubscribeWnfStateChangeNotification@4
2456RtlWaitForWnfMetaNotification@24
2457RtlWaitOnAddress@16
2458RtlWakeAddressAll@4
2459RtlWakeAddressAllNoFence@4
2460RtlWakeAddressSingle@4
2461RtlWakeAddressSingleNoFence@4
2462RtlWnfCompareChangeStamp@8 ; removed in Windows 11 2024 Update (Hudson Valley / 24H2)
2463RtlWnfDllUnloadCallback@4
2464RtlpConvertAbsoluteToRelativeSecurityAttribute@12
2465RtlpConvertRelativeToAbsoluteSecurityAttribute@16
2466RtlpFreezeTimeBias DATA
2467RtlpMergeSecurityAttributeInformation@16
2468; RtlpWnfNotificationThread@16 ; removed in Windows 8.1
2469TpAllocJobNotification@20
2470TpCallbackDetectedUnrecoverableError@4
2471TpReleaseJobNotification@4
2472TpSetPoolThreadBasePriority@8
2473TpSetTimerEx@16
2474TpSetWaitEx@16
2475TpTimerOutstandingCallbackCount@4
2476TpWaitForJobNotification@4
2477WinSqmIsSessionDisabled@4
2478ZwAddAtomEx@16
2479ZwAdjustTokenClaimsAndDeviceGroups@64
2480ZwAlertThreadByThreadId@4
2481ZwAlpcConnectPortEx@44
2482ZwAssociateWaitCompletionPacket@32
2483ZwCancelWaitCompletionPacket@8
2484ZwCreateDirectoryObjectEx@20
2485ZwCreateIRTimer@12 ; Windows 8-10 has ABI "ZwCreateIRTimer@8", Windows 10 Creators Update (Redstone 2 / 1703) and new has ABI "ZwCreateIRTimer@12"
2486ZwCreateLowBoxToken@36
2487ZwCreateTokenEx@68
2488ZwCreateWaitCompletionPacket@12
2489ZwCreateWnfStateName@28
2490ZwDeleteWnfStateData@8
2491ZwDeleteWnfStateName@4
2492ZwFilterBootOption@20
2493ZwFilterTokenEx@56
2494ZwFlushBuffersFileEx@20
2495ZwGetCachedSigningLevel@24
2496ZwQueryWnfStateData@24
2497ZwQueryWnfStateNameInformation@20
2498ZwSetCachedSigningLevel@20
2499ZwSetIRTimer@8
2500ZwSetInformationVirtualMemory@24
2501ZwSubscribeWnfStateChange@16
2502ZwUnmapViewOfSectionEx@12
2503ZwUnsubscribeWnfStateChange@4
2504ZwUpdateWnfStateData@28
2505ZwWaitForAlertByThreadId@8
2506; ZwWaitForWnfNotifications@8 ; removed in Windows 8.1
2507; ZwWow64AllocateVirtualMemory64@28 ; available only in 32-bit WoW64 version on 64-bit system
2508
2509; This is list of symbols added in Windows 8.1
2510LdrSetImplicitPathOptions@8
2511NtCancelTimer2@8
2512NtCreateTimer2@20
2513NtGetCompleteWnfStateSubscription@24
2514NtSetTimer2@16
2515NtSetWnfProcessNotificationEvent@4
2516PssNtCaptureSnapshot@16
2517PssNtDuplicateSnapshot@20
2518PssNtFreeRemoteSnapshot@8
2519PssNtFreeSnapshot@4
2520PssNtFreeWalkMarker@4
2521PssNtQuerySnapshot@16
2522PssNtValidateDescriptor@8
2523PssNtWalkSnapshot@20
2524RtlAddProcessTrustLabelAce@24
2525RtlAllocateAndInitializeSidEx@16
2526RtlGetAppContainerParent@8
2527RtlGetAppContainerSidType@8
2528RtlIsParentOfChildAppContainer@8
2529RtlIsValidProcessTrustLabelSid@4
2530RtlQueryPackageIdentityEx@28
2531RtlSidDominatesForTrust@12
2532RtlStringFromGUIDEx@12
2533RtlTestProtectedAccess@8
2534RtlValidProcessProtection@4
2535TpCallbackSendAlpcMessageOnCompletion@16
2536TpCallbackSendPendingAlpcMessage@4
2537WinSqmStartSessionForPartner@16
2538ZwCancelTimer2@8
2539ZwCreateTimer2@20
2540ZwGetCompleteWnfStateSubscription@24
2541ZwSetTimer2@16
2542ZwSetWnfProcessNotificationEvent@4
2543
2544; This is list of symbols added in Windows 10 (Threshold / 1507)
2545DbgUiConvertStateChangeStructureEx@8
2546LdrFastFailInLoaderCallout@0
2547NtAlpcImpersonateClientContainerOfPort@12
2548NtCompareObjects@8
2549NtCreatePartition@16 ; Windows 10 has ABI "NtCreatePartition@20", Windows 10 November Update (Threshold 2 / 1511) and new has ABI "NtCreatePartition@16"
2550NtGetCurrentProcessorNumberEx@4
2551NtManagePartition@20
2552NtOpenPartition@12
2553NtRevertContainerImpersonation@0
2554NtSetInformationSymbolicLink@16
2555; NtWow64IsProcessorFeaturePresent@4 ; available only in 32-bit WoW64 version on 64-bit system
2556RtlCapabilityCheck@12
2557RtlCheckSandboxedToken@8
2558RtlConvertDeviceFamilyInfoToString@16
2559RtlConvertSRWLockExclusiveToShared@4
2560RtlDecodeRemotePointer@12
2561RtlDeriveCapabilitySidsFromName@12
2562RtlEncodeRemotePointer@12
2563RtlEndStrongEnumerationHashTable@8
2564RtlFindUnicodeSubstring@12
2565RtlGetDeviceFamilyInfoEnum@12
2566RtlGetInterruptTimePrecise@4
2567RtlInitStringEx@8
2568RtlInitStrongEnumerationHashTable@8
2569RtlInitializeSidEx@0
2570RtlIsMultiSessionSku@0
2571RtlIsProcessorFeaturePresent@4
2572RtlOsDeploymentState@4
2573RtlQueryPackageClaims@32 ; Windows 10 has ABI "RtlQueryPackageClaims@28", Windows 10 Anniversary Update (Redstone / 1607) and new has ABI "RtlQueryPackageClaims@32"
2574RtlQueryProtectedPolicy@8
2575RtlQueryResourcePolicy@16
2576RtlSetProtectedPolicy@12
2577RtlSetThreadSubProcessTag@4
2578RtlStronglyEnumerateEntryHashTable@8
2579RtlSwitchedVVI@16
2580RtlpGetDeviceFamilyInfoEnum@12
2581TpSetPoolMaxThreadsSoftLimit@8
2582TpSetPoolWorkerThreadIdleTimeout@12
2583TpTrimPools@0
2584WinSqmStartSqmOptinListener@0
2585ZwAlpcImpersonateClientContainerOfPort@12
2586ZwCompareObjects@8
2587ZwCreatePartition@16 ; Windows 10 has ABI "ZwCreatePartition@20", Windows 10 November Update (Threshold 2 / 1511) and new has ABI "ZwCreatePartition@16"
2588ZwGetCurrentProcessorNumberEx@4
2589ZwManagePartition@20
2590ZwOpenPartition@12
2591ZwRevertContainerImpersonation@0
2592ZwSetInformationSymbolicLink@16
2593; ZwWow64IsProcessorFeaturePresent@4 ; available only in 32-bit WoW64 version on 64-bit system
2594
2595; This is list of symbols added in Windows 10 November Update (Threshold 2 / 1511)
2596NtCreateEnclave@36
2597NtInitializeEnclave@20
2598NtLoadEnclaveData@36
2599RtlGetCurrentServiceSessionId@0
2600RtlWow64GetCurrentMachine@0
2601ZwCreateEnclave@36
2602ZwInitializeEnclave@20
2603ZwLoadEnclaveData@36
2604
2605; This is list of symbols added in Windows 10 Anniversary Update (Redstone / 1607)
2606NtCommitRegistryTransaction@8
2607NtCreateRegistryTransaction@16
2608NtOpenRegistryTransaction@12
2609NtQuerySecurityPolicy@24
2610NtRollbackRegistryTransaction@8
2611NtSetCachedSigningLevel2@24
2612RtlAreLongPathsEnabled@0
2613RtlCheckBootStatusIntegrity@8
2614RtlClearThreadWorkOnBehalfTicket@0
2615RtlFindExportedRoutineByName@8
2616RtlGetActiveConsoleId@0
2617RtlGetConsoleSessionForegroundProcessId@0
2618RtlGetSuiteMask@0
2619RtlGetThreadWorkOnBehalfTicket@8
2620RtlGuardCheckLongJumpTarget@12
2621; RtlIsLongPathAwareProcessByManifest@0 ; removed in Windows 10 Creators Update (Redstone 2 / 1703)
2622RtlIsMultiUsersInSessionSku@0
2623RtlLocateExtendedFeature2@16
2624RtlReplaceSystemDirectoryInPath@16
2625RtlReportExceptionEx@20
2626RtlRestoreBootStatusDefaults@4
2627RtlSetThreadWorkOnBehalfTicket@4
2628; RtlSparseBitmapCtxAreAllClear@20 ; removed in Windows 10 Creators Update (Redstone 2 / 1703)
2629; RtlSparseBitmapCtxAreAllSet@20 ; removed in Windows 10 Creators Update (Redstone 2 / 1703)
2630; RtlSparseBitmapCtxCheckBit@12 ; removed in Windows 10 Creators Update (Redstone 2 / 1703)
2631; RtlSparseBitmapCtxCleanup@4 ; removed in Windows 10 Creators Update (Redstone 2 / 1703)
2632; RtlSparseBitmapCtxClearBits@24 ; removed in Windows 10 Creators Update (Redstone 2 / 1703)
2633; RtlSparseBitmapCtxClearBitsEx@32 ; removed in Windows 10 Creators Update (Redstone 2 / 1703)
2634; RtlSparseBitmapCtxCountBitsSet@4 ; removed in Windows 10 Creators Update (Redstone 2 / 1703)
2635; RtlSparseBitmapCtxFindNextBitSet@12 ; removed in Windows 10 Creators Update (Redstone 2 / 1703)
2636; RtlSparseBitmapCtxFindSetRuns@36 ; removed in Windows 10 Creators Update (Redstone 2 / 1703)
2637; RtlSparseBitmapCtxInitialize@4 ; removed in Windows 10 Creators Update (Redstone 2 / 1703)
2638; RtlSparseBitmapCtxMetadataForBit@16 ; removed in Windows 10 Creators Update (Redstone 2 / 1703)
2639; RtlSparseBitmapCtxOrBitmap@8 ; removed in Windows 10 Creators Update (Redstone 2 / 1703)
2640; RtlSparseBitmapCtxPrepareBits@20 ; removed in Windows 10 Creators Update (Redstone 2 / 1703)
2641; RtlSparseBitmapCtxSetBits@24 ; removed in Windows 10 Creators Update (Redstone 2 / 1703)
2642; RtlSparseBitmapCtxSetBitsEx@32 ; removed in Windows 10 Creators Update (Redstone 2 / 1703)
2643; RtlSparseBitmapCtxStart@8 ; removed in Windows 10 Creators Update (Redstone 2 / 1703)
2644; RtlSparseBitmapCtxSubtractBitmap@12 ; removed in Windows 10 Creators Update (Redstone 2 / 1703)
2645; RtlSparseBitmapEnumerateBitmap@12 ; removed in Windows 10 Creators Update (Redstone 2 / 1703)
2646RtlWow64GetProcessMachines@12
2647RtlWow64IsWowGuestMachineSupported@8
2648; Wow64Transition DATA ; available only in 32-bit WoW64 version on 64-bit system
2649ZwCommitRegistryTransaction@8
2650ZwCreateRegistryTransaction@16
2651ZwOpenRegistryTransaction@12
2652ZwQuerySecurityPolicy@24
2653ZwRollbackRegistryTransaction@8
2654ZwSetCachedSigningLevel2@24
2655
2656; This is list of symbols added in Windows 10 Creators Update (Redstone 2 / 1703)
2657LdrParentInterlockedPopEntrySList DATA
2658LdrParentRtlInitializeNtUserPfn DATA
2659LdrParentRtlResetNtUserPfn DATA
2660LdrParentRtlRetrieveNtUserPfn DATA
2661LdrUpdatePackageSearchPath@4
2662LdrpChildNtdll DATA
2663NtAcquireProcessActivityReference@12
2664NtCompareSigningLevels@8
2665; NtContinueCHPE@8 ; available only in 32-bit WoW64 version on 64-bit system, removed in Windows 10 Fall Creators Update (Redstone 3 / 1709)
2666NtConvertBetweenAuxiliaryCounterAndPerformanceCounter@16
2667; NtLoadHotPatch@8 ; removed in Windows 10 October 2018 Update (Redstone 5 / 1809)
2668NtQueryAuxiliaryCounterFrequency@4
2669NtQueryInformationByName@20
2670RtlAddAccessFilterAce@32
2671RtlCreateUserProcessEx@20
2672RtlDispatchAPC@12 ; before Windows 10 Creators Update (Redstone 2 / 1703) available as ordinal-only symbol
2673RtlGetNtSystemRoot@0
2674RtlGetSessionProperties@8
2675RtlGetTokenNamedObjectPath@12
2676RtlIsElevatedRid@4
2677RtlIsNonEmptyDirectoryReparsePointAllowed@4
2678; RtlIsPlaceholderFileHandle@8 ; removed in Windows 10 Fall Creators Update (Redstone 3 / 1709)
2679; RtlIsPlaceholderFileInfo@12 ; removed in Windows 10 Fall Creators Update (Redstone 3 / 1709)
2680RtlLookupFirstMatchingElementGenericTableAvl@12
2681; RtlLookupFunctionEntryCHPE@12 ; available only in 32-bit WoW64 version on 64-bit system, removed in Windows 10 Fall Creators Update (Redstone 3 / 1709)
2682; RtlUnwindEx@24 ; available only in 32-bit WoW64 version on 64-bit system, removed in Windows 10 Fall Creators Update (Redstone 3 / 1709)
2683WerReportExceptionWorker@4
2684ZwAcquireProcessActivityReference@12
2685ZwCompareSigningLevels@8
2686; ZwContinueCHPE@8 ; available only in 32-bit WoW64 version on 64-bit system, removed in Windows 10 Fall Creators Update (Redstone 3 / 1709)
2687ZwConvertBetweenAuxiliaryCounterAndPerformanceCounter@16
2688; ZwLoadHotPatch@8 ; removed in Windows 10 October 2018 Update (Redstone 5 / 1809)
2689ZwQueryAuxiliaryCounterFrequency@4
2690ZwQueryInformationByName@20
2691
2692; This is list of symbols added in Windows 10 Fall Creators Update (Redstone 3 / 1709)
2693EtwCheckCoverage@4
2694LdrCallEnclave@12
2695LdrControlFlowGuardEnforced@0
2696LdrCreateEnclave@36
2697LdrDeleteEnclave@4
2698LdrInitializeEnclave@20
2699LdrLoadEnclaveModule@12
2700NtCallEnclave@16
2701NtNotifyChangeDirectoryFileEx@40
2702NtQueryDirectoryFileEx@40
2703NtTerminateEnclave@8
2704RtlCapabilityCheckForSingleSessionSku@12
2705RtlCheckSystemBootStatusIntegrity@4
2706RtlDosLongPathNameToNtPathName_U_WithStatus@16
2707RtlDosLongPathNameToRelativeNtPathName_U_WithStatus@16
2708RtlExtendCorrelationVector@4
2709RtlGetSystemBootStatus@16
2710RtlGetSystemBootStatusEx@12
2711RtlIncrementCorrelationVector@4
2712RtlInitializeCorrelationVector@12
2713RtlIsCloudFilesPlaceholder@8
2714RtlIsCurrentProcess@4
2715RtlIsCurrentThread@4
2716RtlIsPartialPlaceholder@8
2717RtlIsPartialPlaceholderFileHandle@8
2718RtlIsPartialPlaceholderFileInfo@12
2719RtlIsStateSeparationEnabled@0
2720RtlQueryImageMitigationPolicy@20
2721RtlQueryThreadPlaceholderCompatibilityMode@0
2722RtlRestoreSystemBootStatusDefaults@0
2723RtlSetImageMitigationPolicy@20
2724RtlSetProxiedProcessId@4
2725RtlSetSystemBootStatus@16
2726RtlSetSystemBootStatusEx@12
2727RtlSetThreadPlaceholderCompatibilityMode@4
2728RtlValidateCorrelationVector@4
2729RtlWow64GetEquivalentMachineCHPE@4
2730RtlWow64GetSharedInfoProcess@12
2731; RtlWow64PopAllCrossProcessWork@4 ; removed in Windows 10 October 2018 Update (Redstone 5 / 1809)
2732; RtlWow64PopCrossProcessWork@4 ; removed in Windows 10 October 2018 Update (Redstone 5 / 1809)
2733; RtlWow64PushCrossProcessWork@8 ; removed in Windows 10 October 2018 Update (Redstone 5 / 1809)
2734ZwCallEnclave@16
2735ZwNotifyChangeDirectoryFileEx@40
2736ZwQueryDirectoryFileEx@40
2737ZwTerminateEnclave@8
2738
2739; This is list of symbols added in Windows 10 April 2018 Update (Redstone 4 / 1803)
2740NtAllocateVirtualMemoryEx@28
2741NtMapViewOfSectionEx@36
2742RtlGetPersistedStateLocation@28
2743RtlIsNameInUnUpcasedExpression@16
2744RtlQueryProcessPlaceholderCompatibilityMode@0
2745RtlQueryRegistryValueWithFallback@28
2746RtlQueryTokenHostIdAsUlong64@8
2747RtlRaiseCustomSystemEventTrigger@4
2748RtlSetProcessPlaceholderCompatibilityMode@4
2749ZwAllocateVirtualMemoryEx@28
2750ZwMapViewOfSectionEx@36
2751
2752; This is list of symbols added in Windows 10 October 2018 Update (Redstone 5 / 1809)
2753ApiSetQueryApiSetPresenceEx@12
2754LdrIsModuleSxsRedirected@4
2755NtCreateSectionEx@36
2756NtManageHotPatch@16
2757RtlCreateProcessParametersWithTemplate@12
2758RtlGetExtendedContextLength2@16
2759RtlGetMultiTimePrecise@12
2760RtlInitializeExtendedContext2@20
2761; RtlUserFiberStart@0
2762RtlpTimeFieldsToTime@12
2763RtlpTimeToTimeFields@12
2764ZwCreateSectionEx@36
2765ZwManageHotPatch@16
2766
2767; This is list of symbols added in Windows 10 May 2019 Update (19H1 / 1903)
2768NtCreateCrossVmEvent@24
2769RtlConstructCrossVmEventPath@12
2770RtlDoesNameContainWildCards@4
2771RtlFlsGetValue@8
2772RtlFlsSetValue@8
2773RtlUdiv128@28
2774TpSetPoolThreadCpuSets@12
2775ZwCreateCrossVmEvent@24
2776
2777; In Windows 10 November 2019 Update (19H2 /1909) was not added any new symbol
2778
2779; This is list of symbols added in Windows 10 May 2020 Update (20H1 / 2004)
2780NtAcquireCrossVmMutant@8
2781NtAllocateUserPhysicalPagesEx@20
2782NtContinueEx@8
2783NtCreateCrossVmMutant@24
2784NtDirectGraphicsCall@20
2785NtLoadKey3@32
2786NtPssCaptureVaSpaceBulk@20
2787RtlConstructCrossVmMutexPath@12
2788; RtlDisownModuleHeapAllocation@8
2789RtlFreeUTF8String@4
2790RtlGetReturnAddressHijackTarget@0
2791RtlInitUTF8String@8
2792RtlInitUTF8StringEx@8
2793RtlIsZeroMemory@8
2794RtlNormalizeSecurityDescriptor@20
2795RtlNotifyFeatureUsage@4
2796RtlQueryAllFeatureConfigurations@16
2797RtlQueryFeatureConfiguration@16
2798RtlQueryFeatureConfigurationChangeStamp@0
2799RtlQueryFeatureUsageNotificationSubscriptions@8
2800RtlRegisterFeatureConfigurationChangeNotification@16
2801RtlRestoreThreadPreferredUILanguages@4
2802RtlSetFeatureConfigurations@16
2803RtlSetThreadPreferredUILanguages2@16
2804RtlSubscribeForFeatureUsageNotification@8
2805RtlUTF8StringToUnicodeString@12
2806RtlUnicodeStringToUTF8String@12
2807RtlUnregisterFeatureConfigurationChangeNotification@4
2808RtlUnsubscribeFromFeatureUsageNotifications@8
2809ZwAcquireCrossVmMutant@8
2810ZwAllocateUserPhysicalPagesEx@20
2811ZwContinueEx@8
2812ZwCreateCrossVmMutant@24
2813ZwDirectGraphicsCall@20
2814ZwLoadKey3@32
2815ZwPssCaptureVaSpaceBulk@20
2816
2817; In Windows 10 October 2020 Update (20H2) was not added any new symbol
2818
2819; In Windows 10 May 2021 Update (21H1) was not added any new symbol
2820
2821; This is list of symbols added in Windows 10 November 2021 Update (21H2)
2822RtlGetSystemTimeAndBias@12
2823
2824; In Windows 10 2022 Update (22H2) was not added any new symbol
2825
2826; This is list of symbols added in Windows 11 (Sun Valley / 21H2) (WoW64 version)
2827; LdrHotPatchNotify@4
2828; MicrosoftTelemetryAssertTriggeredUM@4
2829NtChangeProcessState@24
2830NtChangeThreadState@24
2831NtCreateIoRing@20
2832NtCreateProcessStateChange@20
2833NtCreateThreadStateChange@20
2834NtQueryIoRingCapabilities@8
2835NtQueueApcThreadEx2@28
2836NtReadVirtualMemoryEx@24
2837NtSetInformationIoRing@16
2838NtSubmitIoRing@16
2839RtlCompareExchangePointerMapping@16
2840RtlCompareExchangePropertyStore@16
2841; RtlConvertHostPerfCounterToPerfCounter@20
2842RtlDelayExecution@8
2843RtlGetImageFileMachines@8
2844RtlGetSystemGlobalData@12
2845RtlIsApiSetImplemented@4
2846RtlIsEnclaveFeaturePresent@4
2847RtlQueryPointerMapping@8
2848RtlQueryPropertyStore@8
2849RtlRemovePointerMapping@8
2850RtlRemovePropertyStore@8
2851RtlRestoreContext ; cdecl
2852ZwChangeProcessState@24
2853ZwChangeThreadState@24
2854ZwCreateIoRing@20
2855ZwCreateProcessStateChange@20
2856ZwCreateThreadStateChange@20
2857ZwQueryIoRingCapabilities@8
2858ZwQueueApcThreadEx2@28
2859ZwReadVirtualMemoryEx@24
2860ZwSetInformationIoRing@16
2861ZwSubmitIoRing@16
2862
2863; This is list of symbols added in Windows 11 2022 Update (Sun Valley 2 / 22H2) (WoW64 version)
2864; NtCopyFileChunk@40
2865; NtCreateCpuPartition@20 ; Windows 10 has ABI "NtCreateCpuPartition@12", Windows 11 2024 Update (Hudson Valley / 24H2) and new has ABI "NtCreateCpuPartition@20"
2866; NtOpenCpuPartition@12
2867; NtQueryInformationCpuPartition@20
2868; NtSetInformationCpuPartition@28
2869; RtlOverwriteFeatureConfigurationBuffer@16
2870; TpWorkOnBehalfClearTicket@4
2871; TpWorkOnBehalfSetTicket@8
2872; ZwCopyFileChunk@40
2873; ZwCreateCpuPartition@20 ; Windows 10 has ABI "ZwCreateCpuPartition@12", Windows 11 2024 Update (Hudson Valley / 24H2) and new has ABI "ZwCreateCpuPartition@20"
2874; ZwOpenCpuPartition@12
2875; ZwQueryInformationCpuPartition@20
2876; ZwSetInformationCpuPartition@28
2877
2878; This is list of symbols added in Windows 11 2023 Update (Sun Valley 3 / 23H2) (WoW64 version)
2879; RtlIsFeatureEnabledForEnterprise@4
2880
2881; This is list of symbols added in Windows 11 2024 Update (Hudson Valley / 24H2) (WoW64 version)
2882; NtAlertMultipleThreadByThreadId@16
2883; NtAlertThreadByThreadIdEx@8
2884; NtSetEventEx@12
2885; NtWow64GetCurrentProcessorNumber@0
2886; RtlFlsAllocEx@12
2887; RtlFlsGetValue2@4
2888; RtlGetAcesBufferSize@8
2889; RtlGetCurrentThreadPrimaryGroup@0
2890; RtlGetFeatureToggleConfiguration@12
2891; RtlGetFeatureTogglesChangeToken@0
2892; RtlLogUnexpectedCodepath@4
2893; RtlNotifyFeatureToggleUsage@12
2894; RtlQueryAllInternalFeatureConfigurations@16
2895; RtlRcuAllocate@4
2896; RtlRcuFree@4
2897; RtlRcuReadLock@0
2898; RtlRcuReadUnlock@0
2899; RtlRcuSynchronize@4
2900; RtlTlsAlloc@4
2901; RtlTlsFree@4
2902; RtlTlsSetValue@8
2903; RtlValidateUserCallTarget@8
2904; RtlXRestore@12
2905; RtlXSave@12
2906; ZwAlertMultipleThreadByThreadId@16
2907; ZwAlertThreadByThreadIdEx@8
2908; ZwSetEventEx@12
2909; ZwWow64GetCurrentProcessorNumber@0
2910
2911; This is list of symbols added in Windows 11 2025 Update (Hudson Valley 2 / 25H2) (WoW64 version)
2912; ApiSetGetImplementationHost@12
2913; ApiSetQuerySchema@8
2914; RtlQueryAllInternalRuntimeFeatureConfigurations@20
2915; RtlQueryInternalFeatureConfiguration@16
lib/libc/mingw/lib32/odbc32.def+4
...@@ -6,6 +6,8 @@ CursorLibLockDbc@8...@@ -6,6 +6,8 @@ CursorLibLockDbc@8
6CursorLibLockDesc@86CursorLibLockDesc@8
7CursorLibLockStmt@87CursorLibLockStmt@8
8CursorLibTransact@128CursorLibTransact@12
9DllBidEntryPoint@36
10GetODBCSharedData@0
9LockHandle@1211LockHandle@12
10MpHeapAlloc12MpHeapAlloc
11MpHeapCompact13MpHeapCompact
...@@ -39,6 +41,7 @@ SQLBrowseConnectA@24...@@ -39,6 +41,7 @@ SQLBrowseConnectA@24
39SQLBrowseConnectW@2441SQLBrowseConnectW@24
40SQLBulkOperations@842SQLBulkOperations@8
41SQLCancel@443SQLCancel@4
44SQLCancelHandle@8
42SQLCloseCursor@445SQLCloseCursor@4
43SQLColAttribute@2846SQLColAttribute@28
44SQLColAttributeA@2847SQLColAttributeA@28
...@@ -52,6 +55,7 @@ SQLColumnPrivilegesW@36...@@ -52,6 +55,7 @@ SQLColumnPrivilegesW@36
52SQLColumns@3655SQLColumns@36
53SQLColumnsA@3656SQLColumnsA@36
54SQLColumnsW@3657SQLColumnsW@36
58SQLCompleteAsync@12
55SQLConnect@2859SQLConnect@28
56SQLConnectA@2860SQLConnectA@28
57SQLConnectW@2861SQLConnectW@28
lib/libc/mingw/lib32/oleacc.def+10-5
...@@ -1,21 +1,26 @@...@@ -1,21 +1,26 @@
1;1;
2; Definition file of OLEACC.dll2; Definition file of OLEACC.dll
3; Automatic generated by gendef3; Automatic generated by gendef 1.1
4; written by Kai Tietz 20084; written by Kai Tietz 2008
5; The def file has to be processed by --kill-at (-k) option of dlltool or ld
5;6;
6LIBRARY "OLEACC.dll"7LIBRARY "OLEACC.dll"
7EXPORTS8EXPORTS
8DllRegisterServer@09;DllRegisterServer@0
9DllUnregisterServer@010;DllUnregisterServer@0
11AccGetRunningUtilityState@12
12AccNotifyTouchInteraction@16
13AccSetRunningUtilityState@12
10AccessibleChildren@2014AccessibleChildren@20
11AccessibleObjectFromEvent@2015AccessibleObjectFromEvent@20
12AccessibleObjectFromPoint@1616AccessibleObjectFromPoint@16
13AccessibleObjectFromWindow@1617AccessibleObjectFromWindow@16
18AccessibleObjectFromWindowTimeout@24
14CreateStdAccessibleObject@1619CreateStdAccessibleObject@16
15CreateStdAccessibleProxyA@2020CreateStdAccessibleProxyA@20
16CreateStdAccessibleProxyW@2021CreateStdAccessibleProxyW@20
17DllCanUnloadNow@022;DllCanUnloadNow@0
18DllGetClassObject@1223;DllGetClassObject@12
19GetOleaccVersionInfo@824GetOleaccVersionInfo@8
20GetProcessHandleFromHwnd@425GetProcessHandleFromHwnd@4
21GetRoleTextA@1226GetRoleTextA@12
lib/libc/mingw/libsrc/ativscp-uuid.c deleted-16
...@@ -1,16 +0,0 @@
1/* ativscp-uuid.c */
2/* Generate GUIDs for ActiveScript interfaces */
3
4/* All IIDs defined in this file were extracted from
5 * HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\ */
6
7/* All CLSIDs defined in this file were extracted from
8 * HKEY_CLASSES_ROOT\CLSID\ */
9
10#define INITGUID
11#include <basetyps.h>
12DEFINE_GUID(IID_IActiveScript,0xbb1a2ae1,0xa4f9,0x11cf,0x8f,0x20,0,0x80,0x5f,0x2c,0xd0,0x64);
13DEFINE_GUID(IID_IActiveScriptError,0xeae1ba61,0xa4ed,0x11cf,0x8f,0x20,0,0x80,0x5f,0x2c,0xd0,0x64);
14DEFINE_GUID(IID_IActiveScriptParse,0xbb1a2ae2,0xa4f9,0x11cf,0x8f,0x20,0,0x80,0x5f,0x2c,0xd0,0x64);
15DEFINE_GUID(IID_IActiveScriptSite,0xdb01a1e3,0xa42b,0x11cf,0x8f,0x20,0,0x80,0x5f,0x2c,0xd0,0x64);
16DEFINE_GUID(IID_IActiveScriptSiteWindow,0xd10f6761,0x83e9,0x11cf,0x8f,0x20,0,0x80,0x5f,0x2c,0xd0,0x64);
lib/libc/mingw/libsrc/uuid.c+1
...@@ -14,6 +14,7 @@...@@ -14,6 +14,7 @@
14#define INITGUID14#define INITGUID
15#include <basetyps.h>15#include <basetyps.h>
1616
17#include <activscp.h>
17#include <credentialprovider.h>18#include <credentialprovider.h>
18#include <httprequest.h>19#include <httprequest.h>
19#include <functiondiscoverykeys.h>20#include <functiondiscoverykeys.h>
lib/libc/mingw/math/acospi.c created+14
...@@ -0,0 +1,14 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <math.h>
8
9#include "pi_const.h"
10
11double __cdecl acospi(double x)
12{
13 return acos(x) / __pi_type(x);
14}
lib/libc/mingw/math/acospif.c created+14
...@@ -0,0 +1,14 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <math.h>
8
9#include "pi_const.h"
10
11float __cdecl acospif(float x)
12{
13 return acosf(x) / __pi_type(x);
14}
lib/libc/mingw/math/acospil.c created+14
...@@ -0,0 +1,14 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <math.h>
8
9#include "pi_const.h"
10
11long double __cdecl acospil(long double x)
12{
13 return acosl(x) / __pi_type(x);
14}
lib/libc/mingw/math/asinpi.c created+14
...@@ -0,0 +1,14 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <math.h>
8
9#include "pi_const.h"
10
11double __cdecl asinpi(double x)
12{
13 return asin(x) / __pi_type(x);
14}
lib/libc/mingw/math/asinpif.c created+14
...@@ -0,0 +1,14 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <math.h>
8
9#include "pi_const.h"
10
11float __cdecl asinpif(float x)
12{
13 return asinf(x) / __pi_type(x);
14}
lib/libc/mingw/math/asinpil.c created+14
...@@ -0,0 +1,14 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <math.h>
8
9#include "pi_const.h"
10
11long double __cdecl asinpil(long double x)
12{
13 return asinl(x) / __pi_type(x);
14}
lib/libc/mingw/math/atan2pi.c created+14
...@@ -0,0 +1,14 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <math.h>
8
9#include "pi_const.h"
10
11double __cdecl atan2pi(double y, double x)
12{
13 return atan2(y, x) / __pi_type(y);
14}
lib/libc/mingw/math/atan2pif.c created+14
...@@ -0,0 +1,14 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <math.h>
8
9#include "pi_const.h"
10
11float __cdecl atan2pif(float y, float x)
12{
13 return atan2f(y, x) / __pi_type(y);
14}
lib/libc/mingw/math/atan2pil.c created+14
...@@ -0,0 +1,14 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <math.h>
8
9#include "pi_const.h"
10
11long double __cdecl atan2pil(long double y, long double x)
12{
13 return atan2l(y, x) / __pi_type(y);
14}
lib/libc/mingw/math/atanpi.c created+14
...@@ -0,0 +1,14 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <math.h>
8
9#include "pi_const.h"
10
11double __cdecl atanpi(double x)
12{
13 return atan(x) / __pi_type(x);
14}
lib/libc/mingw/math/atanpif.c created+14
...@@ -0,0 +1,14 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <math.h>
8
9#include "pi_const.h"
10
11float __cdecl atanpif(float x)
12{
13 return atanf(x) / __pi_type(x);
14}
lib/libc/mingw/math/atanpil.c created+14
...@@ -0,0 +1,14 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <math.h>
8
9#include "pi_const.h"
10
11long double __cdecl atanpil(long double x)
12{
13 return atanl(x) / __pi_type(x);
14}
lib/libc/mingw/math/cospi.c created+15
...@@ -0,0 +1,15 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <math.h>
8
9#include "pi_const.h"
10
11double __cdecl cospi(double x)
12{
13 x = fmod(x, 2.0);
14 return cos(x * __pi_type(x));
15}
lib/libc/mingw/math/cospif.c created+15
...@@ -0,0 +1,15 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <math.h>
8
9#include "pi_const.h"
10
11float __cdecl cospif(float x)
12{
13 x = fmodf(x, 2.0F);
14 return cosf(x * __pi_type(x));
15}
lib/libc/mingw/math/cospil.c created+15
...@@ -0,0 +1,15 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <math.h>
8
9#include "pi_const.h"
10
11long double __cdecl cospil(long double x)
12{
13 x = fmodl(x, 2.0L);
14 return cosl(x * __pi_type(x));
15}
lib/libc/mingw/math/pi_const.h created+17
...@@ -0,0 +1,17 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#define __pi_type(x) \
8__builtin_choose_expr ( \
9 __builtin_types_compatible_p (__typeof__ (x), float), \
10 3.14159265F, \
11 __builtin_choose_expr ( \
12 __builtin_types_compatible_p (__typeof__ (x), double), \
13 3.14159265358979323846, \
14 __builtin_choose_expr ( \
15 __builtin_types_compatible_p (__typeof__ (x), long double), \
16 3.1415926535897932384626433832795029L, \
17 __builtin_trap())))
lib/libc/mingw/math/sinpi.c created+15
...@@ -0,0 +1,15 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <math.h>
8
9#include "pi_const.h"
10
11double __cdecl sinpi(double x)
12{
13 x = remainder(x, 2.0);
14 return sin(x * __pi_type(x));
15}
lib/libc/mingw/math/sinpif.c created+15
...@@ -0,0 +1,15 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <math.h>
8
9#include "pi_const.h"
10
11float __cdecl sinpif(float x)
12{
13 x = remainderf(x, 2.0F);
14 return sinf(x * __pi_type(x));
15}
lib/libc/mingw/math/sinpil.c created+15
...@@ -0,0 +1,15 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <math.h>
8
9#include "pi_const.h"
10
11long double __cdecl sinpil(long double x)
12{
13 x = remainderl(x, 2.0L);
14 return sinl(x * __pi_type(x));
15}
lib/libc/mingw/math/tanpi.c created+15
...@@ -0,0 +1,15 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <math.h>
8
9#include "pi_const.h"
10
11double __cdecl tanpi(double x)
12{
13 x = remainder(x, 2.0);
14 return tan(x * __pi_type(x));
15}
lib/libc/mingw/math/tanpif.c created+15
...@@ -0,0 +1,15 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <math.h>
8
9#include "pi_const.h"
10
11float __cdecl tanpif(float x)
12{
13 x = remainderf(x, 2.0F);
14 return tanf(x * __pi_type(x));
15}
lib/libc/mingw/math/tanpil.c created+15
...@@ -0,0 +1,15 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <math.h>
8
9#include "pi_const.h"
10
11long double __cdecl tanpil(long double x)
12{
13 x = remainderl(x, 2.0L);
14 return tanl(x * __pi_type(x));
15}
lib/libc/mingw/misc/__mingw_filename_cp.c created+33
...@@ -0,0 +1,33 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#ifndef WIN32_LEAN_AND_MEAN
8#define WIN32_LEAN_AND_MEAN
9#endif
10#include <windows.h>
11#include <locale.h>
12
13/* By default the ANSI (ACP) is used, fallack to default ANSI when function AreFileApisANSI() is not available */
14static BOOL WINAPI fallbackAreFileApisANSI(VOID) { return TRUE; }
15
16unsigned int __cdecl __mingw_filename_cp(void)
17{
18 if (___lc_codepage_func() == CP_UTF8)
19 return CP_UTF8;
20
21 /* Function AreFileApisANSI() is not available in older Windows versions, so resolve it at runtime */
22 static __typeof__(AreFileApisANSI) *myAreFileApisANSI = NULL;
23 if (!myAreFileApisANSI) {
24 FARPROC farproc = NULL;
25 HMODULE kernel32 = GetModuleHandleA("kernel32.dll");
26 if (kernel32)
27 farproc = GetProcAddress(kernel32, "AreFileApisANSI");
28 if (!farproc)
29 farproc = (FARPROC)(PVOID)fallbackAreFileApisANSI;
30 (void)InterlockedExchangePointer((PVOID*)&myAreFileApisANSI, (PVOID)farproc);
31 }
32 return myAreFileApisANSI() ? CP_ACP : CP_OEMCP;
33}
lib/libc/mingw/misc/__mingw_isleadbyte_cp.c created+42
...@@ -0,0 +1,42 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#ifndef WIN32_LEAN_AND_MEAN
8#define WIN32_LEAN_AND_MEAN
9#endif
10#include <windows.h>
11#include <locale.h>
12
13static BOOL WINAPI fallback_IsDBCSLeadByteEx(UINT cp, BYTE c)
14{
15 int i;
16 CPINFO cp_info;
17 if (GetCPInfo(cp, &cp_info) && cp_info.MaxCharSize == 2) {
18 for (i = 0; i < MAX_LEADBYTES && cp_info.LeadByte[i]; i += 2) {
19 if (c >= cp_info.LeadByte[i] && c <= cp_info.LeadByte[i+1])
20 return TRUE;
21 }
22 }
23 return FALSE;
24}
25
26_Static_assert(__builtin_types_compatible_p(__typeof__(fallback_IsDBCSLeadByteEx), __typeof__(IsDBCSLeadByteEx)),
27 "Functions fallback_IsDBCSLeadByteEx() and IsDBCSLeadByteEx() are not compatible");
28
29int __cdecl __mingw_isleadbyte_cp(int c, unsigned int cp)
30{
31 static __typeof__(IsDBCSLeadByteEx) *call_IsDBCSLeadByteEx = NULL;
32 if (!call_IsDBCSLeadByteEx) {
33 FARPROC farproc = NULL;
34 HMODULE kernel32 = GetModuleHandleA("kernel32.dll");
35 if (kernel32)
36 farproc = GetProcAddress(kernel32, "IsDBCSLeadByteEx");
37 if (!farproc)
38 farproc = (FARPROC)(PVOID)fallback_IsDBCSLeadByteEx;
39 (void)InterlockedExchangePointer((PVOID*)&call_IsDBCSLeadByteEx, (PVOID)farproc);
40 }
41 return call_IsDBCSLeadByteEx(cp, c);
42}
lib/libc/mingw/misc/_assert.c created+46
...@@ -0,0 +1,46 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <assert.h>
8#include <fcntl.h>
9#include <io.h>
10#include <stdio.h>
11#include <stdlib.h>
12
13/* This is import symbol name for "_assert" from CRT DLL library */
14extern void (__cdecl *__MINGW_IMP_SYMBOL(__msvcrt_assert))(const char *message, const char *file, unsigned line);
15
16/* Turn off _O_WTEXT, _O_U16TEXT or _O_U8TEXT mode on stderr stream
17 * by changing mode to _O_TEXT, because fprintf (called by __msvcrt_assert)
18 * does not work (and does nothing) on FILE* stream in some of those modes.
19 * Only fwprintf works with those modes, but _assert uses fprintf.
20 * Before changing the FILE* stream mode, it is required to flush buffers. */
21void __cdecl _assert(const char *message, const char *file, unsigned line)
22{
23 /* stderr expands to function call */
24 FILE *stream = stderr;
25 /* Cache fd used by `stderr` */
26 int fd = _fileno (stream);
27 /* We need to restore previous mode in case `_assert` returns; it can happen
28 * if program has called _set_error_mode(_OUT_TO_MSGBOX) and user pressed
29 * "Ignore" button in popped up message box. */
30 int oldmode;
31
32 /* Change `stderr` mode to `_O_TEXT` */
33 fflush(stream);
34 oldmode = _setmode(fd, _O_TEXT);
35
36 /* Call CRT `_assert` */
37 __MINGW_IMP_SYMBOL(__msvcrt_assert)(message, file, line);
38
39 /* Restore `stderr` mode to `oldmode` */
40 fflush (stream);
41 if (_setmode (fd, oldmode) != _O_TEXT) {
42 abort ();
43 }
44}
45
46void (__cdecl *__MINGW_IMP_SYMBOL(_assert))(const char *message, const char *file, unsigned line) = _assert;
lib/libc/mingw/misc/btowc.c created+32
...@@ -0,0 +1,32 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#define __LARGE_MBSTATE_T
8
9#include <limits.h> /* MB_LEN_MAX */
10#include <wchar.h>
11#include <stdio.h> /* EOF */
12#include <stdlib.h> /* MB_CUR_MAX */
13
14wint_t btowc (int c)
15{
16 if (c == EOF)
17 return (WEOF);
18
19 /* Use dummy string so that mbrtowc will never return (size_t)-2 */
20 char str[MB_LEN_MAX] = {(unsigned char) c, 0, 0, 0, 0};
21
22 wint_t wc = WEOF;
23 mbstate_t state = {0};
24
25 if (mbrtowc (&wc, (char *) str, MB_CUR_MAX, &state) == (size_t) -1) {
26 return WEOF;
27 }
28
29 return wc;
30}
31
32wint_t (__cdecl *__MINGW_IMP_SYMBOL (btowc)) (int) = btowc;
lib/libc/mingw/misc/dirent.c+14-2
...@@ -152,7 +152,13 @@ _treaddir (_TDIR * dirp)...@@ -152,7 +152,13 @@ _treaddir (_TDIR * dirp)
152 {152 {
153 /* We haven't started the search yet. */153 /* We haven't started the search yet. */
154 /* Start the search */154 /* Start the search */
155 dirp->dd_handle = _tfindfirst (dirp->dd_name, &(dirp->dd_dta));155 dirp->dd_handle =
156#ifdef _WIN64
157 _tfindfirst64i32
158#else
159 _tfindfirst32
160#endif
161 (dirp->dd_name, &(dirp->dd_dta));
156162
157 if (dirp->dd_handle == -1)163 if (dirp->dd_handle == -1)
158 {164 {
...@@ -168,7 +174,13 @@ _treaddir (_TDIR * dirp)...@@ -168,7 +174,13 @@ _treaddir (_TDIR * dirp)
168 else174 else
169 {175 {
170 /* Get the next search entry. */176 /* Get the next search entry. */
171 if (_tfindnext (dirp->dd_handle, &(dirp->dd_dta)))177 if (
178#ifdef _WIN64
179 _tfindnext64i32
180#else
181 _tfindnext32
182#endif
183 (dirp->dd_handle, &(dirp->dd_dta)))
172 {184 {
173 /* We are off the end or otherwise error.185 /* We are off the end or otherwise error.
174 _findnext sets errno to ENOENT if no more file186 _findnext sets errno to ENOENT if no more file
lib/libc/mingw/misc/dirname.c+4-3
...@@ -7,6 +7,7 @@...@@ -7,6 +7,7 @@
7#define WIN32_LEAN_AND_MEAN7#define WIN32_LEAN_AND_MEAN
8#endif8#endif
9#include <stdlib.h>9#include <stdlib.h>
10#include <locale.h>
10#include <libgen.h>11#include <libgen.h>
11#include <windows.h>12#include <windows.h>
1213
...@@ -91,7 +92,7 @@ do_get_path_info(struct path_info* info, char* path)...@@ -91,7 +92,7 @@ do_get_path_info(struct path_info* info, char* path)
91 int dbcs_tb, prev_dir_sep, dir_sep;92 int dbcs_tb, prev_dir_sep, dir_sep;
9293
93 /* Get the code page for paths in the same way as `fopen()`. */94 /* Get the code page for paths in the same way as `fopen()`. */
94 cp = AreFileApisANSI() ? CP_ACP : CP_OEMCP;95 cp = __mingw_filename_cp();
9596
96 /* Set the structure to 'no data'. */97 /* Set the structure to 'no data'. */
97 info->prefix_end = NULL;98 info->prefix_end = NULL;
...@@ -112,7 +113,7 @@ do_get_path_info(struct path_info* info, char* path)...@@ -112,7 +113,7 @@ do_get_path_info(struct path_info* info, char* path)
112113
113 if(dbcs_tb)114 if(dbcs_tb)
114 dbcs_tb = 0;115 dbcs_tb = 0;
115 else if(IsDBCSLeadByteEx(cp, *pos))116 else if(__mingw_isleadbyte_cp(*pos, cp))
116 dbcs_tb = 1;117 dbcs_tb = 1;
117 else118 else
118 dir_sep = IS_DIR_SEP(*pos);119 dir_sep = IS_DIR_SEP(*pos);
...@@ -156,7 +157,7 @@ do_get_path_info(struct path_info* info, char* path)...@@ -156,7 +157,7 @@ do_get_path_info(struct path_info* info, char* path)
156157
157 if(dbcs_tb)158 if(dbcs_tb)
158 dbcs_tb = 0;159 dbcs_tb = 0;
159 else if(IsDBCSLeadByteEx(cp, *pos))160 else if(__mingw_isleadbyte_cp(*pos, cp))
160 dbcs_tb = 1;161 dbcs_tb = 1;
161 else162 else
162 dir_sep = IS_DIR_SEP(*pos);163 dir_sep = IS_DIR_SEP(*pos);
lib/libc/mingw/misc/dllmain.c+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1#include <oscalls.h>1#include <windows.h>
2#define _DECL_DLLMAIN2#define _DECL_DLLMAIN
3#include <process.h>3#include <process.h>
44
lib/libc/mingw/misc/fedisableexcept.c created+11
...@@ -0,0 +1,11 @@
1#define _GNU_SOURCE
2#include <fenv.h>
3#include <internal.h>
4
5int __cdecl fedisableexcept(int excepts)
6{
7 if (excepts & ~FE_ALL_EXCEPT) return -1;
8 int old_excepts = fegetexcept();
9 __mingw_controlfp(excepts, excepts);
10 return old_excepts;
11}
lib/libc/mingw/misc/feenableexcept.c created+11
...@@ -0,0 +1,11 @@
1#define _GNU_SOURCE
2#include <fenv.h>
3#include <internal.h>
4
5int __cdecl feenableexcept(int excepts)
6{
7 if (excepts & ~FE_ALL_EXCEPT) return -1;
8 int old_excepts = fegetexcept();
9 __mingw_controlfp(0, excepts);
10 return old_excepts;
11}
lib/libc/mingw/misc/fegetenv.c+3-2
...@@ -13,11 +13,12 @@...@@ -13,11 +13,12 @@
13int fegetenv(fenv_t *env)13int fegetenv(fenv_t *env)
14{14{
15#if defined(__i386__) || (defined(__x86_64__) && !defined(__arm64ec__))15#if defined(__i386__) || (defined(__x86_64__) && !defined(__arm64ec__))
16 unsigned int x87, sse;16 unsigned int x87, sse = 0;
17 __mingw_control87_2(0, 0, &x87, &sse);17 __mingw_control87_2(0, 0, &x87, &sse);
18 env->_Fe_ctl = fenv_encode(x87, sse);18 env->_Fe_ctl = fenv_encode(x87, sse);
19 __mingw_setfp(NULL, 0, &x87, 0);19 __mingw_setfp(NULL, 0, &x87, 0);
20 __mingw_setfp_sse(NULL, 0, &sse, 0);20 if (__mingw_has_sse())
21 __mingw_setfp_sse(NULL, 0, &sse, 0);
21 env->_Fe_stat = fenv_encode(x87, sse);22 env->_Fe_stat = fenv_encode(x87, sse);
22#else23#else
23 env->_Fe_ctl = fenv_encode(0, __mingw_controlfp(0, 0));24 env->_Fe_ctl = fenv_encode(0, __mingw_controlfp(0, 0));
lib/libc/mingw/misc/fegetexcept.c created+8
...@@ -0,0 +1,8 @@
1#define _GNU_SOURCE
2#include <fenv.h>
3#include <internal.h>
4
5int __cdecl fegetexcept(void)
6{
7 return ~__mingw_controlfp(0, 0) & FE_ALL_EXCEPT;
8}
lib/libc/mingw/misc/fegetexceptflag.c+3-2
...@@ -15,9 +15,10 @@...@@ -15,9 +15,10 @@
15int fegetexceptflag(fexcept_t *status, int excepts)15int fegetexceptflag(fexcept_t *status, int excepts)
16{16{
17#if defined(__i386__) || (defined(__x86_64__) && !defined(__arm64ec__))17#if defined(__i386__) || (defined(__x86_64__) && !defined(__arm64ec__))
18 unsigned int x87, sse;18 unsigned int x87, sse = 0;
19 __mingw_setfp(NULL, 0, &x87, 0);19 __mingw_setfp(NULL, 0, &x87, 0);
20 __mingw_setfp_sse(NULL, 0, &sse, 0);20 if (__mingw_has_sse())
21 __mingw_setfp_sse(NULL, 0, &sse, 0);
21 *status = fenv_encode(x87 & excepts, sse & excepts);22 *status = fenv_encode(x87 & excepts, sse & excepts);
22#else23#else
23 *status = fenv_encode(0, __mingw_statusfp() & excepts);24 *status = fenv_encode(0, __mingw_statusfp() & excepts);
lib/libc/mingw/misc/ftime32.c created+38
...@@ -0,0 +1,38 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <stdint.h>
8#include <errno.h>
9#include <sys/timeb.h>
10
11int __cdecl ftime32(struct __timeb32 *tb32);
12int __cdecl ftime32(struct __timeb32 *tb32)
13{
14 /*
15 * Both 32-bit and 64-bit MS _ftime functions have void return value and do not signal overflow.
16 * So if 32-bit POSIX ftime function wants to detect overflow it has to call 64-bit _ftime function.
17 * msvc defines ftime as alias to _ftime, which always fills all members even if they overflow.
18 * So for compatibility with application code written for msvc ftime function, always fill
19 * in our mingw-w64 POSIX ftime function all __timeb32 members, even if they are overflowed.
20 * And if overflow happens, correctly sets errno to EOVERFLOW and returns negative value.
21 */
22 struct __timeb64 tb64;
23 _ftime64(&tb64);
24 tb32->time = (__time32_t)tb64.time; /* truncate */
25 tb32->millitm = tb64.millitm;
26 tb32->timezone = tb64.timezone;
27 tb32->dstflag = tb64.dstflag;
28 if (tb64.time < INT32_MIN || tb64.time > INT32_MAX) {
29 errno = EOVERFLOW;
30 return -1;
31 }
32 return 0;
33}
34
35/* On 32-bit systems is ftime ABI using 32-bit time_t */
36#ifndef _WIN64
37int __attribute__ ((alias("ftime32"))) __cdecl ftime(struct timeb *);
38#endif
lib/libc/mingw/misc/ftime64.c created+19
...@@ -0,0 +1,19 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <sys/timeb.h>
8
9int __cdecl ftime64(struct __timeb64 *tb64);
10int __cdecl ftime64(struct __timeb64 *tb64)
11{
12 _ftime64(tb64);
13 return 0;
14}
15
16/* On 64-bit systems is ftime ABI using 64-bit time_t */
17#ifdef _WIN64
18int __attribute__ ((alias("ftime64"))) __cdecl ftime(struct timeb *);
19#endif
lib/libc/mingw/misc/ftruncate.c deleted-8
...@@ -1,8 +0,0 @@
1
2int _chsize(int _FileHandle,long _Size);
3int ftruncate(int __fd,int __length);
4
5int ftruncate(int __fd,int __length)
6{
7 return _chsize (__fd,__length);
8}
lib/libc/mingw/misc/getopt.c+2-1
...@@ -319,6 +319,7 @@ getopt_internal(int nargc, char * const *nargv, const char *options,...@@ -319,6 +319,7 @@ getopt_internal(int nargc, char * const *nargv, const char *options,
319{319{
320 char *oli; /* option letter list index */320 char *oli; /* option letter list index */
321 int optchar, short_too;321 int optchar, short_too;
322 size_t var_size;
322 static int posixly_correct = -1;323 static int posixly_correct = -1;
323324
324 if (options == NULL)325 if (options == NULL)
...@@ -339,7 +340,7 @@ getopt_internal(int nargc, char * const *nargv, const char *options,...@@ -339,7 +340,7 @@ getopt_internal(int nargc, char * const *nargv, const char *options,
339 * optreset != 0 for GNU compatibility.340 * optreset != 0 for GNU compatibility.
340 */341 */
341 if (posixly_correct == -1 || optreset != 0)342 if (posixly_correct == -1 || optreset != 0)
342 posixly_correct = (GetEnvironmentVariableW(L"POSIXLY_CORRECT", NULL, 0) != 0);343 posixly_correct = (getenv_s(&var_size, NULL, 0, "POSIXLY_CORRECT") == 0 && var_size > 0);
343 if (*options == '-')344 if (*options == '-')
344 flags |= FLAG_ALLARGS;345 flags |= FLAG_ALLARGS;
345 else if (posixly_correct || *options == '+')346 else if (posixly_correct || *options == '+')
lib/libc/mingw/misc/mb_wc_common.h deleted-9
...@@ -1,9 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <_mingw.h>
8
9unsigned int __cdecl ___lc_codepage_func(void);
lib/libc/mingw/misc/memalignment.c created+14
...@@ -0,0 +1,14 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <stddef.h>
8
9size_t memalignment(const void *p);
10
11size_t memalignment(const void *p)
12{
13 return (size_t)p & -(size_t)p;
14}
lib/libc/mingw/misc/memset_explicit.c created+16
...@@ -0,0 +1,16 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#define __CRT__NO_INLINE
8#include <string.h>
9
10void * __cdecl
11memset_explicit (void *d, int c, size_t len)
12{
13 memset(d, c, len);
14 __asm__ __volatile__("" ::: "memory");
15 return d;
16}
lib/libc/mingw/misc/mingw_controlfp.c+22-2
...@@ -7,7 +7,14 @@...@@ -7,7 +7,14 @@
7#include "internal.h"7#include "internal.h"
88
9#if defined(__i386__) || (defined(__x86_64__) && !defined(__arm64ec__))9#if defined(__i386__) || (defined(__x86_64__) && !defined(__arm64ec__))
10/* Internal MinGW version of _control87_2 */10/* Internal MinGW version of MS __control87_2 with following differences:
11 * - Availability:
12 * - MinGW provides both i386 and x64 implementation
13 * - MS provides only i386 implementation and only for msvcr80+
14 * - Usage of x87 fwait instruction which triggers pending x87 exceptions:
15 * - MinGW does not call it
16 * - MS calls it before reading x87 cw
17 */
11int __mingw_control87_2( unsigned int newval, unsigned int mask,18int __mingw_control87_2( unsigned int newval, unsigned int mask,
12 unsigned int *x86_cw, unsigned int *sse2_cw )19 unsigned int *x86_cw, unsigned int *sse2_cw )
13{20{
...@@ -30,7 +37,20 @@ int __mingw_control87_2( unsigned int newval, unsigned int mask,...@@ -30,7 +37,20 @@ int __mingw_control87_2( unsigned int newval, unsigned int mask,
30}37}
31#endif38#endif
3239
33/* Internal MinGW version of _control87 */40/* Internal MinGW version of MS _control87 with following differences:
41 * - Usage of x87 fwait instruction which triggers pending x87 exceptions:
42 * - MinGW does not call it
43 * - MS x64 does not call it
44 * - MS i386 calls it before reading x87 cw
45 * - Source of the flags:
46 * - MinGW i386 and x64 returns from both x87 and SSE2
47 * - MS i386 msvcrt from Vista+ and msvcr80+ returns from both x87 and SSE2
48 * - MS i386 msvcrt before Vista and pre-msvcr80 returns from x87
49 * - MS x64 returns from SSE2
50 * This makes behavior of MinGW version same for all builds,
51 * always returns information from both x87 and SSE2 and
52 * never triggers pending x87 exceptions.
53 */
34unsigned int __mingw_controlfp(unsigned int newval, unsigned int mask)54unsigned int __mingw_controlfp(unsigned int newval, unsigned int mask)
35{55{
36 unsigned int flags = 0;56 unsigned int flags = 0;
lib/libc/mingw/misc/mingw_mbwc_convert.c+63-6
...@@ -1,22 +1,51 @@...@@ -1,22 +1,51 @@
1#include <stdlib.h>1#include <stdlib.h>
2#include <stdio.h>2#include <stdio.h>
3#include <wchar.h>3#include <wchar.h>
4#include <errno.h>
4#include <windows.h>5#include <windows.h>
5#include <winnls.h>6#include <winnls.h>
67
7int __cdecl __mingw_str_wide_utf8(const wchar_t * const wptr, char **mbptr, size_t *buflen)8int __cdecl __mingw_str_wide_utf8(const wchar_t * const wptr, char **mbptr, size_t *buflen)
8{9{
9 size_t len;10 int len;
10 char *buf;11 char *buf;
11 int ret = 0;12 int ret = 0;
1213
13 len = WideCharToMultiByte(CP_UTF8, 0, wptr, -1, NULL, 0, NULL, NULL); /* Get utf-8 string length */14 len = WideCharToMultiByte(CP_UTF8, 0, wptr, -1, NULL, 0, NULL, NULL); /* Get utf-8 string length */
15 if (len <= 0) {
16 switch (GetLastError()) {
17 case ERROR_INVALID_PARAMETER: /* CP_UTF8 is not supported */
18 case ERROR_INVALID_FLAGS: /* CP_UTF8 is not supported */
19 errno = ENOSYS;
20 *mbptr = NULL;
21 if (buflen != NULL) *buflen = 0;
22 return 0;
23 case NO_ERROR:
24 if (len == 0)
25 break;
26 /* fallthrough */
27 default:
28 errno = EINVAL;
29 *mbptr = NULL;
30 if (buflen != NULL) *buflen = 0;
31 return 0;
32 }
33 }
14 buf = calloc(len + 1, sizeof (char)); /* Can we assume sizeof char always = 1? */34 buf = calloc(len + 1, sizeof (char)); /* Can we assume sizeof char always = 1? */
1535
16 if(!buf) len = 0;36 if(!buf) len = 0;
17 else {37 else {
18 if (len != 0) ret = WideCharToMultiByte(CP_UTF8, 0, wptr, -1, buf, len, NULL, NULL); /*Do actual conversion*/38 if (len != 0) {
19 buf[len] = '0'; /* Must terminate */39 ret = WideCharToMultiByte(CP_UTF8, 0, wptr, -1, buf, len, NULL, NULL); /*Do actual conversion*/
40 if (ret < 0 || (ret == 0 && GetLastError() != NO_ERROR)) {
41 free(buf);
42 errno = EINVAL;
43 *mbptr = NULL;
44 if (buflen != NULL) *buflen = 0;
45 return 0;
46 }
47 }
48 buf[len] = '\0'; /* Must terminate */
20 }49 }
21 *mbptr = buf; /* Set string pointer to allocated buffer */50 *mbptr = buf; /* Set string pointer to allocated buffer */
22 if(buflen != NULL) *buflen = (len) * sizeof (char); /* Give length of allocated memory if needed. */51 if(buflen != NULL) *buflen = (len) * sizeof (char); /* Give length of allocated memory if needed. */
...@@ -25,17 +54,45 @@ int __cdecl __mingw_str_wide_utf8(const wchar_t * const wptr, char **mbptr, size...@@ -25,17 +54,45 @@ int __cdecl __mingw_str_wide_utf8(const wchar_t * const wptr, char **mbptr, size
2554
26int __cdecl __mingw_str_utf8_wide(const char *const mbptr, wchar_t **wptr, size_t *buflen)55int __cdecl __mingw_str_utf8_wide(const char *const mbptr, wchar_t **wptr, size_t *buflen)
27{56{
28 size_t len;57 int len;
29 wchar_t *buf;58 wchar_t *buf;
30 int ret = 0;59 int ret = 0;
3160
32 len = MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, mbptr, -1, NULL, 0); /* Get converted size */61 len = MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, mbptr, -1, NULL, 0); /* Get converted size */
62 if (len <= 0) {
63 switch (GetLastError()) {
64 case ERROR_INVALID_PARAMETER: /* CP_UTF8 or MB_ERR_INVALID_CHARS is not supported */
65 case ERROR_INVALID_FLAGS: /* CP_UTF8 or MB_ERR_INVALID_CHARS is not supported */
66 errno = ENOSYS;
67 *wptr = NULL;
68 if (buflen != NULL) *buflen = 0;
69 return 0;
70 case NO_ERROR:
71 if (len == 0)
72 break;
73 /* fallthrough */
74 default:
75 errno = EINVAL;
76 *wptr = NULL;
77 if (buflen != NULL) *buflen = 0;
78 return 0;
79 }
80 }
33 buf = calloc(len + 1, sizeof (wchar_t)); /* Allocate memory accordingly */81 buf = calloc(len + 1, sizeof (wchar_t)); /* Allocate memory accordingly */
3482
35 if(!buf) len = 0;83 if(!buf) len = 0;
36 else {84 else {
37 if (len != 0) ret = MultiByteToWideChar (CP_UTF8, MB_ERR_INVALID_CHARS, mbptr, -1, buf, len); /* Do conversion */85 if (len != 0) {
38 buf[len] = L'0'; /* Must terminate */86 ret = MultiByteToWideChar (CP_UTF8, MB_ERR_INVALID_CHARS, mbptr, -1, buf, len); /* Do conversion */
87 if (ret < 0 || (ret == 0 && GetLastError() != NO_ERROR)) {
88 free(buf);
89 errno = EINVAL;
90 *wptr = NULL;
91 if (buflen != NULL) *buflen = 0;
92 return 0;
93 }
94 }
95 buf[len] = L'\0'; /* Must terminate */
39 }96 }
40 *wptr = buf; /* Set string pointer to allocated buffer */97 *wptr = buf; /* Set string pointer to allocated buffer */
41 if (buflen != NULL) *buflen = len * sizeof (wchar_t); /* Give length of allocated memory if needed. */98 if (buflen != NULL) *buflen = len * sizeof (wchar_t); /* Give length of allocated memory if needed. */
lib/libc/mingw/misc/mingw_setfp.c+45-31
...@@ -118,18 +118,52 @@ void __mingw_setfp( unsigned int *cw, unsigned int cw_mask,...@@ -118,18 +118,52 @@ void __mingw_setfp( unsigned int *cw, unsigned int cw_mask,
118#if defined(__arm64ec__)118#if defined(__arm64ec__)
119 __mingw_setfp_sse(cw, cw_mask, sw, sw_mask);119 __mingw_setfp_sse(cw, cw_mask, sw, sw_mask);
120#elif defined(__i386__) || defined(__x86_64__)120#elif defined(__i386__) || defined(__x86_64__)
121 unsigned long oldcw = 0, newcw = 0;121 unsigned long newcw = 0, newsw = 0;
122 unsigned long oldsw = 0, newsw = 0;
123 unsigned int flags;122 unsigned int flags;
123 int use_fnstenv_fldenv;
124 struct {
125 WORD control_word;
126 WORD unused1;
127 WORD status_word;
128 WORD unused2;
129 WORD tag_word;
130 WORD unused3;
131 DWORD instruction_pointer;
132 WORD code_segment;
133 WORD unused4;
134 DWORD operand_addr;
135 WORD data_segment;
136 WORD unused5;
137 } fenv;
124138
125 cw_mask &= _MCW_EM | _MCW_IC | _MCW_RC | _MCW_PC;139 cw_mask &= _MCW_EM | _MCW_IC | _MCW_RC | _MCW_PC;
126 sw_mask &= _MCW_EM;140 sw_mask &= _MCW_EM;
127141
128 if (sw)142 use_fnstenv_fldenv = ((sw && sw_mask != 0) || (cw && cw_mask != 0));
143
144 if (!use_fnstenv_fldenv)
145 {
146 /* Fast path: when we are not going to change sw/cw which is indicated
147 * by zero mask then load sw/cw via fast fnstsw/fnstcw instruction.
148 */
149 __asm__ __volatile__( "fnstsw %0" : "=m" (newsw) );
150 __asm__ __volatile__( "fnstcw %0" : "=m" (newcw) );
151 }
152 else
129 {153 {
130 __asm__ __volatile__( "fstsw %0" : "=m" (newsw) );154 /* Slow path: when we are going to change sw/cw or we do not know yet then
131 oldsw = newsw;155 * load whole x87 env via slow fnstenv as it is needed for changing sw/cw.
156 * Note that fnstenv masks all floating-point exceptions after storing the
157 * x87 env. And after the fnstenv call, it is always required to restore
158 * masking of previous floating-point exceptions via the fldenv call.
159 */
160 __asm__ __volatile__( "fnstenv %0" : "=m" (fenv) );
161 newsw = fenv.status_word;
162 newcw = fenv.control_word;
163 }
132164
165 if (sw)
166 {
133 flags = 0;167 flags = 0;
134 if (newsw & 0x1) flags |= _SW_INVALID;168 if (newsw & 0x1) flags |= _SW_INVALID;
135 if (newsw & 0x2) flags |= _SW_DENORMAL;169 if (newsw & 0x2) flags |= _SW_DENORMAL;
...@@ -151,9 +185,6 @@ void __mingw_setfp( unsigned int *cw, unsigned int cw_mask,...@@ -151,9 +185,6 @@ void __mingw_setfp( unsigned int *cw, unsigned int cw_mask,
151185
152 if (cw)186 if (cw)
153 {187 {
154 __asm__ __volatile__( "fstcw %0" : "=m" (newcw) );
155 oldcw = newcw;
156
157 flags = 0;188 flags = 0;
158 if (newcw & 0x1) flags |= _EM_INVALID;189 if (newcw & 0x1) flags |= _EM_INVALID;
159 if (newcw & 0x2) flags |= _EM_DENORMAL;190 if (newcw & 0x2) flags |= _EM_DENORMAL;
...@@ -198,35 +229,18 @@ void __mingw_setfp( unsigned int *cw, unsigned int cw_mask,...@@ -198,35 +229,18 @@ void __mingw_setfp( unsigned int *cw, unsigned int cw_mask,
198 if (*cw & _IC_AFFINE) newcw |= 0x1000;229 if (*cw & _IC_AFFINE) newcw |= 0x1000;
199 }230 }
200231
201 if (oldsw != newsw && (newsw & 0x3f))232 /* For changing sw/cw always use fldenv.
233 * Do not use fldcw as it can generate pending floating-point exception.
234 * When the fnstenv was called then it is required to call fldenv to
235 * restore previous floating-point exceptions.
236 */
237 if (use_fnstenv_fldenv)
202 {238 {
203 struct {
204 WORD control_word;
205 WORD unused1;
206 WORD status_word;
207 WORD unused2;
208 WORD tag_word;
209 WORD unused3;
210 DWORD instruction_pointer;
211 WORD code_segment;
212 WORD unused4;
213 DWORD operand_addr;
214 WORD data_segment;
215 WORD unused5;
216 } fenv;
217
218 __asm__ __volatile__( "fnstenv %0" : "=m" (fenv) );
219 fenv.control_word = newcw;239 fenv.control_word = newcw;
220 fenv.status_word = newsw;240 fenv.status_word = newsw;
221 __asm__ __volatile__( "fldenv %0" : : "m" (fenv) : "st", "st(1)",241 __asm__ __volatile__( "fldenv %0" : : "m" (fenv) : "st", "st(1)",
222 "st(2)", "st(3)", "st(4)", "st(5)", "st(6)", "st(7)" );242 "st(2)", "st(3)", "st(4)", "st(5)", "st(6)", "st(7)" );
223 return;
224 }243 }
225
226 if (oldsw != newsw)
227 __asm__ __volatile__( "fnclex" );
228 if (oldcw != newcw)
229 __asm__ __volatile__( "fldcw %0" : : "m" (newcw) );
230#elif defined(__aarch64__)244#elif defined(__aarch64__)
231 ULONG_PTR old_fpsr = 0, fpsr = 0, old_fpcr = 0, fpcr = 0;245 ULONG_PTR old_fpsr = 0, fpsr = 0, old_fpcr = 0, fpcr = 0;
232 unsigned int flags;246 unsigned int flags;
lib/libc/mingw/misc/mingw_wcstold.c-2
...@@ -23,8 +23,6 @@...@@ -23,8 +23,6 @@
23#include <string.h>23#include <string.h>
24#include <mbstring.h>24#include <mbstring.h>
2525
26#include "mb_wc_common.h"
27
28long double __mingw_wcstold (const wchar_t * __restrict__ wcs, wchar_t ** __restrict__ wcse)26long double __mingw_wcstold (const wchar_t * __restrict__ wcs, wchar_t ** __restrict__ wcse)
29{27{
30 char * cs;28 char * cs;
lib/libc/mingw/misc/mkdtemp.c created+83
...@@ -0,0 +1,83 @@
1#define _CRT_RAND_S
2#include <stdlib.h>
3#include <string.h>
4#include <direct.h>
5#include <errno.h>
6#include <time.h>
7#include <limits.h>
8
9/*
10 The mkdtemp() function generates a unique temporary name from template,
11 the creates the directory with that name and returns pointer to the modified
12 template string.
13
14 The template may be any name with at least six trailing Xs, for example
15 /tmp/temp.XXXXXXXX. The trailing Xs are replaced with a unique digit and
16 letter combination that makes the file name unique. Since it will be
17 modified, template must not be a string constant, but should be declared as
18 a character array.
19 */
20char *__cdecl mkdtemp (char *template_name)
21{
22 int j, ret, len, index;
23 unsigned int i, r;
24
25 /* These are the (62) characters used in temporary filenames. */
26 static const char letters[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
27
28 /* The last six characters of template must be "XXXXXX" */
29 if (template_name == NULL || (len = strlen (template_name)) < 6
30 || memcmp (template_name + (len - 6), "XXXXXX", 6)) {
31 errno = EINVAL;
32 return NULL;
33 }
34
35 /* User may supply more than six trailing Xs */
36 for (index = len - 6; index > 0 && template_name[index - 1] == 'X'; index--);
37
38 /* Like OpenBSD, mkdtemp() will try 2 ** 31 combinations before giving up. */
39 for (i = 0; i <= INT_MAX; i++) {
40 for(j = index; j < len; j++) {
41 if (rand_s(&r))
42 r = rand() ^ _time32(NULL);
43 template_name[j] = letters[r % 62];
44 }
45 ret = _mkdir(template_name);
46 if (ret == 0) return template_name;
47 if (ret != 0 && errno != EEXIST) return NULL;
48 }
49
50 return NULL;
51}
52
53#if 0
54#include <stdio.h>
55int main ()
56{
57 int i;
58
59 for (i = 0; i < 10; i++) {
60 char template_name[] = { "temp_XXXXXX" };
61 char *name = mkdtemp (template_name);
62 if (name) {
63 fprintf (stderr, "name=%s\n", name);
64 rmdir (name);
65 } else {
66 fprintf (stderr, "errno=%d\n", errno);
67 }
68 }
69
70 for (i = 0; i < 10; i++) {
71 char template_name[] = { "temp_XXXXXXXX" };
72 char *name = mkdtemp (template_name);
73 if (name) {
74 fprintf (stderr, "name=%s\n", name);
75 rmdir (name);
76 } else {
77 fprintf (stderr, "errno=%d\n", errno);
78 }
79 }
80
81 return 0;
82}
83#endif
lib/libc/mingw/misc/mkstemp.c+2-1
...@@ -4,6 +4,7 @@...@@ -4,6 +4,7 @@
4#include <string.h>4#include <string.h>
5#include <io.h>5#include <io.h>
6#include <errno.h>6#include <errno.h>
7#include <time.h>
7#include <share.h>8#include <share.h>
8#include <fcntl.h>9#include <fcntl.h>
9#include <sys/stat.h>10#include <sys/stat.h>
...@@ -46,7 +47,7 @@ int __cdecl mkstemp (char *template_name)...@@ -46,7 +47,7 @@ int __cdecl mkstemp (char *template_name)
46 for (i = 0; i <= INT_MAX; i++) {47 for (i = 0; i <= INT_MAX; i++) {
47 for(j = index; j < len; j++) {48 for(j = index; j < len; j++) {
48 if (rand_s(&r))49 if (rand_s(&r))
49 r = rand();50 r = rand() ^ _time32(NULL);
50 template_name[j] = letters[r % 62];51 template_name[j] = letters[r % 62];
51 }52 }
52 fd = _sopen(template_name,53 fd = _sopen(template_name,
lib/libc/mingw/misc/ucrt_mbsinit.c created+14
...@@ -0,0 +1,14 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#undef __MSVCRT_VERSION__
8#define _UCRT
9#include <wchar.h>
10
11int __cdecl mbsinit(const mbstate_t *_P)
12{
13 return (!_P || _P->_Wchar == 0);
14}
lib/libc/mingw/misc/wctob.c created+39
...@@ -0,0 +1,39 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#define __LARGE_MBSTATE_T
8
9#ifndef WIN32_LEAN_AND_MEAN
10#define WIN32_LEAN_AND_MEAN
11#endif
12#include <locale.h>
13#include <limits.h>
14#include <wchar.h>
15#include <stdio.h>
16#include <stdlib.h>
17#include <errno.h>
18#include <windows.h>
19
20int wctob (wint_t wc)
21{
22 /* Return early */
23 if (IS_LOW_SURROGATE (wc) || IS_HIGH_SURROGATE (wc) || wc == WEOF) {
24 return EOF;
25 }
26
27 mbstate_t state = {0};
28 /* Buffer large enough to hold any multibyte character */
29 char mbc[MB_LEN_MAX];
30
31 size_t length = wcrtomb (mbc, wc, &state);
32 if (length > 1) {
33 return EOF;
34 }
35
36 return (unsigned char) mbc[0];
37}
38
39int (__cdecl *__MINGW_IMP_SYMBOL (wctob)) (wint_t) = wctob;
lib/libc/mingw/stdio/__mingw_fix_fstat_finish.c created+18
...@@ -0,0 +1,18 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <sys/stat.h>
8#include <windows.h>
9#include "__mingw_fix_stat.h"
10
11int __mingw_fix_fstat_finish(int ret, int fd, unsigned short *mode)
12{
13 /* msvcrt's _fstat fills S_IFREG for directories. Fix it to S_IFDIR. */
14 BY_HANDLE_FILE_INFORMATION fi;
15 if (ret == 0 && S_ISREG(*mode) && GetFileInformationByHandle((HANDLE)_get_osfhandle(fd), &fi) && (fi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
16 *mode = (*mode & ~S_IFMT) | S_IFDIR;
17 return ret;
18}
lib/libc/mingw/stdio/__mingw_fix_stat.h created+65
...@@ -0,0 +1,65 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#ifndef __MINGW_FIX_STAT_H
8#define __MINGW_FIX_STAT_H
9
10char* __mingw_fix_stat_path (const char* _path);
11wchar_t* __mingw_fix_wstat_path (const wchar_t* _path);
12int __mingw_fix_stat_finish(int ret, const void *orig_path, void *used_path,
13 unsigned short mode);
14int __mingw_fix_fstat_finish(int ret, int fd, unsigned short *mode);
15int __mingw_fix_wstat_fallback_fd(int ret, const wchar_t *filename, unsigned short mode);
16int __mingw_fix_stat_fallback_fd(int ret, const char *filename, unsigned short mode);
17
18#define __MINGW_FIXED_FSTAT(fstat_func, fd, obj) ({ \
19 int _fstat_ret = fstat_func(fd, obj); \
20 _fstat_ret = __mingw_fix_fstat_finish(_fstat_ret, fd, &(obj)->st_mode); \
21 _fstat_ret; \
22})
23
24#define __MINGW_CHOOSE_CHAR_WCHART_EXPR(var, char_expr, wchart_expr, other_expr) \
25 __builtin_choose_expr(__builtin_types_compatible_p(typeof(var), char), char_expr, \
26 __builtin_choose_expr(__builtin_types_compatible_p(typeof(var), wchar_t), wchart_expr, \
27 other_expr))
28
29#define __MINGW_PATH_PTR_TYPE(path) \
30 typeof(__MINGW_CHOOSE_CHAR_WCHART_EXPR((path)[0], (char*)0, (wchar_t*)0, (void)0))
31
32#define __MINGW_FIX_STAT_PATH(path) \
33 __MINGW_CHOOSE_CHAR_WCHART_EXPR((path)[0], __mingw_fix_stat_path, __mingw_fix_wstat_path, NULL)(path)
34
35#define __MINGW_FIX_STAT_FALLBACK_FD(ret, path, mode) \
36 __MINGW_CHOOSE_CHAR_WCHART_EXPR((path)[0], __mingw_fix_stat_fallback_fd, __mingw_fix_wstat_fallback_fd, NULL)((ret), (path), (mode))
37
38#define __MINGW_CREATE_FILE(path, ...) \
39 __MINGW_CHOOSE_CHAR_WCHART_EXPR((path)[0], CreateFileA, CreateFileW, NULL)((path), ##__VA_ARGS__)
40
41#define __MINGW_STR_PBRK(path, accept) \
42 __MINGW_CHOOSE_CHAR_WCHART_EXPR((path)[0], strpbrk, wcspbrk, NULL)((path), __MINGW_CHOOSE_CHAR_WCHART_EXPR((path)[0], accept, L##accept, NULL))
43
44#define __MINGW_FIXED_STAT(fstat_func, stat_func, filename, obj) ({ \
45 /* First call CRT _stat function with mingw path correction */ \
46 int _stat_ret; \
47 __MINGW_PATH_PTR_TYPE(filename) path = __MINGW_FIX_STAT_PATH(filename); \
48 if (path == NULL && (filename) != NULL) { \
49 _stat_ret = -1; \
50 } else { \
51 _stat_ret = (stat_func)(path, (obj)); \
52 _stat_ret = __mingw_fix_stat_finish(_stat_ret, (filename), path, (obj)->st_mode); \
53 /* If the CRT _stat function failed then fallback to mingw fstat function */ \
54 int _stat_fd = __MINGW_FIX_STAT_FALLBACK_FD(_stat_ret, (filename), (obj)->st_mode); \
55 if (_stat_fd >= 0) { \
56 _stat_ret = fstat_func(_stat_fd, (void*)(obj)); \
57 int _stat_errno = errno; \
58 close(_stat_fd); \
59 errno = _stat_errno; \
60 } \
61 } \
62 _stat_ret; \
63})
64
65#endif
lib/libc/mingw/stdio/__mingw_fix_stat_fallback_fd.c created+44
...@@ -0,0 +1,44 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <sys/stat.h>
8#include <string.h>
9#include <wchar.h>
10#include <errno.h>
11#include <fcntl.h>
12#include <windows.h>
13#include "__mingw_fix_stat.h"
14
15#ifdef MINGW_FIX_STAT_IS_WIDE
16int __mingw_fix_wstat_fallback_fd(int ret, const wchar_t *filename, unsigned short mode)
17#else
18int __mingw_fix_stat_fallback_fd(int ret, const char *filename, unsigned short mode)
19#endif
20{
21 int fd = -1;
22
23 /*
24 * CRT _stat does not handle paths with ? and * characters and returns ENOENT.
25 * This prevents _stat from working on paths like \\?\C:\foo.txt.
26 * CRT _stat incorrectly sets S_IFREG for pipe and char devices.
27 * For these cases open specified filename and return its fd which will be passed to CRT fstat() by caller.
28 */
29 if ((ret < 0 && errno == ENOENT && __MINGW_STR_PBRK((filename), "?*")) || (ret == 0 && S_ISREG(mode))) {
30 HANDLE handle = __MINGW_CREATE_FILE((filename), FILE_READ_ATTRIBUTES, FILE_SHARE_VALID_FLAGS, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
31 if (handle != NULL && handle != INVALID_HANDLE_VALUE) {
32 /* Open filename and return fd if CRT _stat failed or if the file is not regular disk file. */
33 if (ret < 0 || GetFileType(handle) != FILE_TYPE_DISK) {
34 int saved_errno = errno;
35 fd = _open_osfhandle((intptr_t)handle, O_RDONLY);
36 errno = saved_errno;
37 }
38 if (fd < 0)
39 CloseHandle(handle);
40 }
41 }
42
43 return fd;
44}
lib/libc/mingw/stdio/__mingw_fix_stat_finish.c created+36
...@@ -0,0 +1,36 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <sys/stat.h>
8#include <stdlib.h>
9#include <errno.h>
10#include "__mingw_fix_stat.h"
11
12int __mingw_fix_stat_finish(int ret, const void *orig_path, void *used_path,
13 unsigned short mode)
14{
15 /*
16 * If the original pathname and used pathname differ, it means that
17 * __mingw_fix_stat_path or __mingw_fix_wstat_path had to allocate
18 * a temporary buffer and remove a trailing directory separator.
19 * In this case the temporary allocation has to be freed, and the
20 * stat function succeeds only if the pathname was a directory.
21 */
22 if (orig_path != used_path) {
23 /* Save errno because we call free. */
24 int saved_errno = errno;
25 free(used_path);
26
27 if (ret == 0 && !S_ISDIR(mode)) {
28 ret = -1;
29 saved_errno = ENOTDIR;
30 }
31
32 errno = saved_errno;
33 }
34
35 return ret;
36}
lib/libc/mingw/stdio/__mingw_fix_stat_path.c+35-7
...@@ -4,8 +4,21 @@...@@ -4,8 +4,21 @@
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */5 */
66
7#ifndef WIN32_LEAN_AND_MEAN
8#define WIN32_LEAN_AND_MEAN
9#endif
7#include <sys/stat.h>10#include <sys/stat.h>
8#include <stdlib.h>11#include <stdlib.h>
12#include <locale.h>
13#include <windows.h>
14#include "__mingw_fix_stat.h"
15
16static const char* next_char (unsigned int cp, const char* p)
17{
18 /* If it is a lead byte, skip the next byte except if it is \0.
19 * If it is \0, it's not a valid DBCS string. */
20 return (__mingw_isleadbyte_cp (*p, cp) && p[1] != '\0') ? p + 2 : p + 1;
21}
922
10/**23/**
11 * Returns _path without trailing slash if any24 * Returns _path without trailing slash if any
...@@ -17,10 +30,10 @@...@@ -17,10 +30,10 @@
17 * to free it.30 * to free it.
18 */31 */
1932
20char* __mingw_fix_stat_path (const char* _path);
21char* __mingw_fix_stat_path (const char* _path)33char* __mingw_fix_stat_path (const char* _path)
22{34{
23 int len;35 const unsigned int cp = __mingw_filename_cp ();
36 size_t len;
24 char *p;37 char *p;
2538
26 p = (char*)_path;39 p = (char*)_path;
...@@ -28,24 +41,27 @@ char* __mingw_fix_stat_path (const char* _path)...@@ -28,24 +41,27 @@ char* __mingw_fix_stat_path (const char* _path)
28 if (_path && *_path) {41 if (_path && *_path) {
29 len = strlen (_path);42 len = strlen (_path);
3043
31 /* Ignore X:\ */44 /* Ignore X:\
3245 * No ANSI or OEM code page uses ':' as a trail byte. (The code page 1361
46 * cannot be used as ANSI or OEM code page.) */
33 if (len <= 1 || ((len == 2 || len == 3) && _path[1] == ':'))47 if (len <= 1 || ((len == 2 || len == 3) && _path[1] == ':'))
34 return p;48 return p;
3549
50 const char *r = _path;
51
36 /* Check UNC \\abc\<name>\ */52 /* Check UNC \\abc\<name>\ */
37 if ((_path[0] == '\\' || _path[0] == '/')53 if ((_path[0] == '\\' || _path[0] == '/')
38 && (_path[1] == '\\' || _path[1] == '/'))54 && (_path[1] == '\\' || _path[1] == '/'))
39 {55 {
40 const char *r = &_path[2];56 r = &_path[2];
41 while (*r != 0 && *r != '\\' && *r != '/')57 while (*r != 0 && *r != '\\' && *r != '/')
42 ++r;58 r = next_char (cp, r);
43 if (*r != 0)59 if (*r != 0)
44 ++r;60 ++r;
45 if (*r == 0)61 if (*r == 0)
46 return p;62 return p;
47 while (*r != 0 && *r != '\\' && *r != '/')63 while (*r != 0 && *r != '\\' && *r != '/')
48 ++r;64 r = next_char (cp, r);
49 if (*r != 0)65 if (*r != 0)
50 ++r;66 ++r;
51 if (*r == 0)67 if (*r == 0)
...@@ -54,7 +70,19 @@ char* __mingw_fix_stat_path (const char* _path)...@@ -54,7 +70,19 @@ char* __mingw_fix_stat_path (const char* _path)
5470
55 if (_path[len - 1] == '/' || _path[len - 1] == '\\')71 if (_path[len - 1] == '/' || _path[len - 1] == '\\')
56 {72 {
73 /* Return if the last character is a double-byte character.
74 * Its trail byte could be a '\' which must not be interpret
75 * as a directory separator. */
76 while (r[1] != '\0')
77 {
78 r = next_char (cp, r);
79 if (*r == '\0')
80 return p;
81 }
82
57 p = (char*)malloc (len);83 p = (char*)malloc (len);
84 if (p == NULL)
85 return NULL; /* malloc has set errno. */
58 memcpy (p, _path, len - 1);86 memcpy (p, _path, len - 1);
59 p[len - 1] = '\0';87 p[len - 1] = '\0';
60 }88 }
lib/libc/mingw/stdio/__mingw_fix_wstat_fallback_fd.c created+2
...@@ -0,0 +1,2 @@
1#define MINGW_FIX_STAT_IS_WIDE
2#include "__mingw_fix_stat_fallback_fd.c"
lib/libc/mingw/stdio/__mingw_fix_wstat_path.c+4-2
...@@ -6,6 +6,7 @@...@@ -6,6 +6,7 @@
66
7#include <sys/stat.h>7#include <sys/stat.h>
8#include <stdlib.h>8#include <stdlib.h>
9#include "__mingw_fix_stat.h"
910
10/**11/**
11 * Returns _path without trailing slash if any12 * Returns _path without trailing slash if any
...@@ -17,10 +18,9 @@...@@ -17,10 +18,9 @@
17 * to free it.18 * to free it.
18 */19 */
1920
20wchar_t* __mingw_fix_wstat_path (const wchar_t* _path);
21wchar_t* __mingw_fix_wstat_path (const wchar_t* _path)21wchar_t* __mingw_fix_wstat_path (const wchar_t* _path)
22{22{
23 int len;23 size_t len;
24 wchar_t *p;24 wchar_t *p;
2525
26 p = (wchar_t*)_path;26 p = (wchar_t*)_path;
...@@ -55,6 +55,8 @@ wchar_t* __mingw_fix_wstat_path (const wchar_t* _path)...@@ -55,6 +55,8 @@ wchar_t* __mingw_fix_wstat_path (const wchar_t* _path)
55 if (_path[len - 1] == L'/' || _path[len - 1] == L'\\')55 if (_path[len - 1] == L'/' || _path[len - 1] == L'\\')
56 {56 {
57 p = (wchar_t*)malloc (len * sizeof(wchar_t));57 p = (wchar_t*)malloc (len * sizeof(wchar_t));
58 if (p == NULL)
59 return NULL; /* malloc has set errno. */
58 memcpy (p, _path, (len - 1) * sizeof(wchar_t));60 memcpy (p, _path, (len - 1) * sizeof(wchar_t));
59 p[len - 1] = L'\0';61 p[len - 1] = L'\0';
60 }62 }
lib/libc/mingw/stdio/fopen64.c deleted-11
...@@ -1,11 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#include <stdio.h>
7
8FILE* fopen64 (const char* filename, const char* mode)
9{
10 return fopen (filename, mode);
11}
lib/libc/mingw/stdio/fseeko32.c deleted-7
...@@ -1,7 +0,0 @@
1/*non-standard*/
2#include <stdio.h>
3
4int fseeko(FILE* stream, _off_t offset, int whence){
5 _off64_t off = offset;
6 return fseeko64(stream,off,whence);
7}
lib/libc/mingw/stdio/fseeko64.c deleted-34
...@@ -1,34 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#include <stdio.h>
7#include <io.h>
8#include <errno.h>
9
10int fseeko64 (FILE* stream, _off64_t offset, int whence)
11{
12 fpos_t pos;
13 if (whence == SEEK_CUR)
14 {
15 /* If stream is invalid, fgetpos sets errno. */
16 if (fgetpos (stream, &pos))
17 return (-1);
18 pos += (fpos_t) offset;
19 }
20 else if (whence == SEEK_END)
21 {
22 /* If writing, we need to flush before getting file length. */
23 fflush (stream);
24 pos = (fpos_t) (_filelengthi64 (_fileno (stream)) + offset);
25 }
26 else if (whence == SEEK_SET)
27 pos = (fpos_t) offset;
28 else
29 {
30 errno = EINVAL;
31 return (-1);
32 }
33 return fsetpos (stream, &pos);
34}
lib/libc/mingw/stdio/ftello.c deleted-5
...@@ -1,5 +0,0 @@
1#include <stdio.h>
2
3_off_t ftello(FILE * stream){
4 return (_off_t) ftello64(stream);
5}
lib/libc/mingw/stdio/ftello64.c deleted-16
...@@ -1,16 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#include <stdio.h>
7
8_off64_t
9ftello64 (FILE * stream)
10{
11 fpos_t pos;
12 if (fgetpos(stream, &pos))
13 return -1LL;
14 else
15 return ((off64_t) pos);
16}
lib/libc/mingw/stdio/ftruncate64.c deleted-371
...@@ -1,371 +0,0 @@
1#ifdef TEST_FTRUNCATE64
2#include <fcntl.h>
3#include <sys/stat.h>
4#endif /* TEST_FTRUNCATE64 */
5
6#include <stdio.h>
7#include <unistd.h>
8#include <io.h>
9#include <stdlib.h>
10#include <errno.h>
11#include <wchar.h>
12#include <windows.h>
13#include <psapi.h>
14
15/* Mutually exclusive methods
16 We check disk space as truncating more than the allowed space results
17 in file getting mysteriously deleted
18 */
19#define _CHECK_SPACE_BY_VOLUME_METHOD_ 1 /* Needs to walk through all volumes */
20#define _CHECK_SPACE_BY_PSAPI_METHOD_ 0 /* Requires psapi.dll */
21#define _CHECK_SPACE_BY_VISTA_METHOD_ 0 /* Won't work on XP */
22
23#if (_CHECK_SPACE_BY_PSAPI_METHOD_ == 1) /* Retrive actual volume path */
24static LPWSTR getdirpath(const LPWSTR __str){
25 int len, walk = 0;
26 LPWSTR dirname;
27 while (__str[walk] != L'\0'){
28 walk++;
29 if (__str[walk] == L'\\') len = walk + 1;
30 }
31 dirname = calloc(len + 1, sizeof(wchar_t));
32 if (!dirname) return dirname; /* memory error */
33 return wcsncpy(dirname,__str,len);
34}
35
36static LPWSTR xp_normalize_fn(const LPWSTR fn) {
37 DWORD len, err, walker, isfound;
38 LPWSTR drives = NULL;
39 LPWSTR target = NULL;
40 LPWSTR ret = NULL;
41 wchar_t tmplt[3] = L" :"; /* Template */
42
43 /*Get list of drive letters */
44 len = GetLogicalDriveStringsW(0,NULL);
45 drives = calloc(len,sizeof(wchar_t));
46 if (!drives) return NULL;
47 len = GetLogicalDriveStringsW(len,drives);
48
49 /*Allocatate memory */
50 target = calloc(MAX_PATH + 1,sizeof(wchar_t));
51 if (!target) {
52 free(drives);
53 return NULL;
54 }
55
56 walker = 0;
57 while ((walker < len) && !(drives[walker] == L'\0' && drives[walker + 1] == L'\0')){
58 /* search through alphabets */
59 if(iswalpha(drives[walker])) {
60 *tmplt = drives[walker]; /* Put drive letter */
61 err = QueryDosDeviceW(tmplt,target,MAX_PATH);
62 if(!err) {
63 free(drives);
64 free(target);
65 return NULL;
66 }
67 if( _wcsnicmp(target,fn,wcslen(target)) == 0) break;
68 wmemset(target,L'\0',MAX_PATH);
69 walker++;
70 } else walker++;
71 }
72
73 if (!iswalpha(*tmplt)) {
74 free(drives);
75 free(target);
76 return NULL; /* Finish walking without finding correct drive */
77 }
78
79 ret = calloc(MAX_PATH + 1,sizeof(wchar_t));
80 if (!ret) {
81 free(drives);
82 free(target);
83 return NULL;
84 }
85 _snwprintf(ret,MAX_PATH,L"%ws%ws",tmplt,fn+wcslen(target));
86
87 return ret;
88}
89
90/* XP method of retrieving filename from handles, based on:
91 http://msdn.microsoft.com/en-us/library/aa366789%28VS.85%29.aspx
92 */
93static LPWSTR xp_getfilepath(const HANDLE f, const LARGE_INTEGER fsize){
94 HANDLE hFileMap = NULL;
95 void* pMem = NULL;
96 LPWSTR temp, ret;
97 DWORD err;
98
99 temp = calloc(MAX_PATH + 1, sizeof(wchar_t));
100 if (!temp) goto errormap;
101
102 /* CreateFileMappingW limitation: Cannot map 0 byte files, so extend it to 1 byte */
103 if (!fsize.QuadPart) {
104 SetFilePointer(f, 1, NULL, FILE_BEGIN);
105 err = SetEndOfFile(f);
106 if(!temp) goto errormap;
107 }
108
109 hFileMap = CreateFileMappingW(f,NULL,PAGE_READONLY,0,1,NULL);
110 if(!hFileMap) goto errormap;
111 pMem = MapViewOfFile(hFileMap, FILE_MAP_READ, 0, 0, 1);
112 if(!pMem) goto errormap;
113 err = GetMappedFileNameW(GetCurrentProcess(),pMem,temp,MAX_PATH);
114 if(!err) goto errormap;
115
116 if (pMem) UnmapViewOfFile(pMem);
117 if (hFileMap) CloseHandle(hFileMap);
118 ret = xp_normalize_fn(temp);
119 free(temp);
120 return ret;
121
122 errormap:
123 if (temp) free(temp);
124 if (pMem) UnmapViewOfFile(pMem);
125 if (hFileMap) CloseHandle(hFileMap);
126 errno = EBADF;
127 return NULL;
128}
129#endif /* _CHECK_SPACE_BY_PSAPI_METHOD_ */
130
131static int
132checkfreespace (const HANDLE f, const ULONGLONG requiredspace)
133{
134 LPWSTR dirpath, volumeid, volumepath;
135 ULARGE_INTEGER freespace;
136 LARGE_INTEGER currentsize;
137 DWORD check, volumeserial;
138 BY_HANDLE_FILE_INFORMATION fileinfo;
139 HANDLE vol;
140
141 /* Get current size */
142 check = GetFileSizeEx (f, &currentsize);
143 if (!check)
144 {
145 errno = EBADF;
146 return -1; /* Error checking file size */
147 }
148
149 /* Short circuit disk space check if shrink operation */
150 if ((ULONGLONG)currentsize.QuadPart >= requiredspace)
151 return 0;
152
153 /* We check available space to user before attempting to truncate */
154
155#if (_CHECK_SPACE_BY_VISTA_METHOD_ == 1)
156 /* Get path length */
157 DWORD err;
158 LPWSTR filepath = NULL;
159 check = GetFinalPathNameByHandleW(f,filepath,0,FILE_NAME_NORMALIZED|VOLUME_NAME_GUID);
160 err = GetLastError();
161 if (err == ERROR_PATH_NOT_FOUND || err == ERROR_INVALID_PARAMETER) {
162 errno = EINVAL;
163 return -1; /* IO error */
164 }
165 filepath = calloc(check + 1,sizeof(wchar_t));
166 if (!filepath) {
167 errno = EBADF;
168 return -1; /* Out of memory */
169 }
170 check = GetFinalPathNameByHandleW(f,filepath,check,FILE_NAME_NORMALIZED|VOLUME_NAME_GUID);
171 /* FIXME: last error was set to error 87 (0x57)
172 "The parameter is incorrect." for some reason but works out */
173 if (!check) {
174 errno = EBADF;
175 return -1; /* Error resolving filename */
176 }
177#endif /* _CHECK_SPACE_BY_VISTA_METHOD_ */
178
179#if (_CHECK_SPACE_BY_PSAPI_METHOD_ == 1)
180 LPWSTR filepath = NULL;
181 filepath = xp_getfilepath(f,currentsize);
182
183 /* Get durectory path */
184 dirpath = getdirpath(filepath);
185 free(filepath);
186 filepath = NULL;
187 if (!dirpath) {
188 errno = EBADF;
189 return -1; /* Out of memory */
190 }
191#endif /* _CHECK_SPACE_BY_PSAPI_METHOD_ */
192
193#if _CHECK_SPACE_BY_VOLUME_METHOD_
194 if(!GetFileInformationByHandle(f,&fileinfo)) {
195 errno = EINVAL;
196 return -1; /* Resolution failure */
197 }
198
199 volumeid = calloc(51,sizeof(wchar_t));
200 volumepath = calloc(MAX_PATH+2,sizeof(wchar_t));
201 if(!volumeid || !volumepath) {
202 errno = EBADF;
203 return -1; /* Out of memory */
204 }
205
206 dirpath = NULL;
207
208 vol = FindFirstVolumeW(volumeid,50);
209 /* wprintf(L"%d - %ws\n",wcslen(volumeid),volumeid); */
210 do {
211 check = GetVolumeInformationW(volumeid,volumepath,MAX_PATH+1,&volumeserial,NULL,NULL,NULL,0);
212 /* wprintf(L"GetVolumeInformationW %d id %ws path %ws error %d\n",check,volumeid,volumepath,GetLastError()); */
213 if(volumeserial == fileinfo.dwVolumeSerialNumber) {
214 dirpath = volumeid;
215 break;
216 }
217 } while (FindNextVolumeW(vol,volumeid,50));
218 FindVolumeClose(vol);
219
220 if(!dirpath) free(volumeid); /* we found the volume */
221 free(volumepath);
222#endif /* _CHECK_SPACE_BY_VOLUME_METHOD_ */
223
224 /* Get available free space */
225 check = GetDiskFreeSpaceExW(dirpath,&freespace,NULL,NULL);
226 //wprintf(L"freespace %I64u\n",freespace);
227 free(dirpath);
228 if(!check) {
229 errno = EFBIG;
230 return -1; /* Error getting free space */
231 }
232
233 /* Check space requirements */
234 if ((requiredspace - currentsize.QuadPart) > freespace.QuadPart)
235 {
236 errno = EFBIG; /* File too big for disk */
237 return -1;
238 } /* We have enough space to truncate/expand */
239 return 0;
240}
241
242int ftruncate64(int __fd, _off64_t __length) {
243 HANDLE f;
244 LARGE_INTEGER quad;
245 DWORD check;
246 int ret = 0;
247 __int64 pos;
248
249 /* Sanity check */
250 if (__length < 0) {
251 goto errorout;
252 }
253
254 /* Get Win32 Handle */
255 if(__fd == -1) {
256 goto errorout;
257 }
258
259 f = (HANDLE)_get_osfhandle(__fd);
260 if (f == INVALID_HANDLE_VALUE || (GetFileType(f) != FILE_TYPE_DISK)) {
261 errno = EBADF;
262 return -1;
263 }
264
265
266 /* Save position */
267 if((pos = _telli64(__fd)) == -1LL){
268 goto errorout;
269 }
270
271 /* Check available space */
272 check = checkfreespace(f,__length);
273 if (check != 0) {
274 return -1; /* Error, errno already set */
275 }
276
277 quad.QuadPart = __length;
278 check = SetFilePointer(f, (LONG)quad.LowPart, &(quad.HighPart), FILE_BEGIN);
279 if (check == INVALID_SET_FILE_POINTER && quad.LowPart != INVALID_SET_FILE_POINTER) {
280 switch (GetLastError()) {
281 case ERROR_NEGATIVE_SEEK:
282 errno = EFBIG; /* file too big? */
283 return -1;
284 case INVALID_SET_FILE_POINTER:
285 errno = EINVAL; /* shouldn't happen */
286 return -1;
287 default:
288 errno = EINVAL; /* shouldn't happen */
289 return -1;
290 }
291 }
292
293 check = SetEndOfFile(f);
294 if (!check) {
295 goto errorout;
296 }
297
298 if(_lseeki64(__fd,pos,SEEK_SET) == -1LL){
299 goto errorout;
300 }
301
302 return ret;
303
304 errorout:
305 errno = EINVAL;
306 return -1;
307}
308
309#if (TEST_FTRUNCATE64 == 1)
310int main(){
311 LARGE_INTEGER sz;
312 ULARGE_INTEGER freespace;
313 int f;
314 LPWSTR path, dir;
315 sz.QuadPart = 0LL;
316 f = _open("XXX.tmp", _O_BINARY|_O_CREAT|_O_RDWR, _S_IREAD | _S_IWRITE);
317 wprintf(L"%d\n",ftruncate64(f,12));
318 wprintf(L"%d\n",ftruncate64(f,20));
319 wprintf(L"%d\n",ftruncate64(f,15));
320/* path = xp_getfilepath((HANDLE)_get_osfhandle(f),sz);
321 dir = getdirpath(path);
322 GetDiskFreeSpaceExW(dir,&freespace,NULL,NULL);
323 wprintf(L"fs - %ws\n",path);
324 wprintf(L"dirfs - %ws\n",dir);
325 wprintf(L"free - %I64u\n",freespace.QuadPart);
326 free(dir);
327 free(path);*/
328 _close(f);
329 return 0;
330}
331#endif /* TEST_FTRUNCATE64 */
332
333#if (TEST_FTRUNCATE64 == 2)
334int main() {
335FILE *f;
336int fd;
337char buf[100];
338int cnt;
339unlink("test.out");
340f = fopen("test.out","w+");
341fd = fileno(f);
342write(fd,"abc",3);
343fflush(f);
344printf ("err: %d\n", ftruncate64(fd,10));
345cnt = read(fd,buf,100);
346printf("cnt = %d\n",cnt);
347return 0;
348}
349#endif /* TEST_FTRUNCATE64 */
350
351#if (TEST_FTRUNCATE64 == 3)
352int main() {
353FILE *f;
354int fd;
355char buf[100];
356int cnt;
357unlink("test.out");
358f = fopen("test.out","w+");
359fd = fileno(f);
360write(fd,"abc",3);
361fflush(f);
362ftruncate64(fd,0);
363write(fd,"def",3);
364fclose(f);
365f = fopen("test.out","r");
366cnt = fread(buf,1,100,f);
367printf("cnt = %d\n",cnt);
368return 0;
369}
370#endif /* TEST_FTRUNCATE64 */
371
lib/libc/mingw/stdio/lseek64.c deleted-12
...@@ -1,12 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#include <io.h>
7
8_off64_t lseek64(int fd,_off64_t offset, int whence)
9{
10 return _lseeki64(fd, (_off64_t) offset, whence);
11}
12
lib/libc/mingw/stdio/mingw_ftruncate64.c created+380
...@@ -0,0 +1,380 @@
1#ifdef TEST_FTRUNCATE64
2#include <fcntl.h>
3#include <sys/stat.h>
4#endif /* TEST_FTRUNCATE64 */
5
6#include <stdio.h>
7#include <unistd.h>
8#include <io.h>
9#include <stdlib.h>
10#include <errno.h>
11#include <wchar.h>
12#include <windows.h>
13#include <psapi.h>
14
15#if 0
16/* Mutually exclusive methods
17 We check disk space as truncating more than the allowed space results
18 in file getting mysteriously deleted
19 */
20#define _CHECK_SPACE_BY_VOLUME_METHOD_ 1 /* Needs to walk through all volumes */
21#define _CHECK_SPACE_BY_PSAPI_METHOD_ 0 /* Requires psapi.dll */
22#define _CHECK_SPACE_BY_VISTA_METHOD_ 0 /* Won't work on XP */
23
24#if (_CHECK_SPACE_BY_PSAPI_METHOD_ == 1) /* Retrive actual volume path */
25static LPWSTR getdirpath(const LPWSTR __str){
26 int len, walk = 0;
27 LPWSTR dirname;
28 while (__str[walk] != L'\0'){
29 walk++;
30 if (__str[walk] == L'\\') len = walk + 1;
31 }
32 dirname = calloc(len + 1, sizeof(wchar_t));
33 if (!dirname) return dirname; /* memory error */
34 return wcsncpy(dirname,__str,len);
35}
36
37static LPWSTR xp_normalize_fn(const LPWSTR fn) {
38 DWORD len, err, walker, isfound;
39 LPWSTR drives = NULL;
40 LPWSTR target = NULL;
41 LPWSTR ret = NULL;
42 wchar_t tmplt[3] = L" :"; /* Template */
43
44 /*Get list of drive letters */
45 len = GetLogicalDriveStringsW(0,NULL);
46 drives = calloc(len,sizeof(wchar_t));
47 if (!drives) return NULL;
48 len = GetLogicalDriveStringsW(len,drives);
49
50 /*Allocatate memory */
51 target = calloc(MAX_PATH + 1,sizeof(wchar_t));
52 if (!target) {
53 free(drives);
54 return NULL;
55 }
56
57 walker = 0;
58 while ((walker < len) && !(drives[walker] == L'\0' && drives[walker + 1] == L'\0')){
59 /* search through alphabets */
60 if(iswalpha(drives[walker])) {
61 *tmplt = drives[walker]; /* Put drive letter */
62 err = QueryDosDeviceW(tmplt,target,MAX_PATH);
63 if(!err) {
64 free(drives);
65 free(target);
66 return NULL;
67 }
68 if( _wcsnicmp(target,fn,wcslen(target)) == 0) break;
69 wmemset(target,L'\0',MAX_PATH);
70 walker++;
71 } else walker++;
72 }
73
74 if (!iswalpha(*tmplt)) {
75 free(drives);
76 free(target);
77 return NULL; /* Finish walking without finding correct drive */
78 }
79
80 ret = calloc(MAX_PATH + 1,sizeof(wchar_t));
81 if (!ret) {
82 free(drives);
83 free(target);
84 return NULL;
85 }
86 _snwprintf(ret,MAX_PATH,L"%ls%ls",tmplt,fn+wcslen(target));
87
88 return ret;
89}
90
91/* XP method of retrieving filename from handles, based on:
92 http://msdn.microsoft.com/en-us/library/aa366789%28VS.85%29.aspx
93 */
94static LPWSTR xp_getfilepath(const HANDLE f, const LARGE_INTEGER fsize){
95 HANDLE hFileMap = NULL;
96 void* pMem = NULL;
97 LPWSTR temp, ret;
98 DWORD err;
99
100 temp = calloc(MAX_PATH + 1, sizeof(wchar_t));
101 if (!temp) goto errormap;
102
103 /* CreateFileMappingW limitation: Cannot map 0 byte files, so extend it to 1 byte */
104 if (!fsize.QuadPart) {
105 SetFilePointer(f, 1, NULL, FILE_BEGIN);
106 err = SetEndOfFile(f);
107 if(!temp) goto errormap;
108 }
109
110 hFileMap = CreateFileMappingW(f,NULL,PAGE_READONLY,0,1,NULL);
111 if(!hFileMap) goto errormap;
112 pMem = MapViewOfFile(hFileMap, FILE_MAP_READ, 0, 0, 1);
113 if(!pMem) goto errormap;
114 err = GetMappedFileNameW(GetCurrentProcess(),pMem,temp,MAX_PATH);
115 if(!err) goto errormap;
116
117 if (pMem) UnmapViewOfFile(pMem);
118 if (hFileMap) CloseHandle(hFileMap);
119 ret = xp_normalize_fn(temp);
120 free(temp);
121 return ret;
122
123 errormap:
124 if (temp) free(temp);
125 if (pMem) UnmapViewOfFile(pMem);
126 if (hFileMap) CloseHandle(hFileMap);
127 errno = EBADF;
128 return NULL;
129}
130#endif /* _CHECK_SPACE_BY_PSAPI_METHOD_ */
131
132static int
133checkfreespace (const HANDLE f, const ULONGLONG requiredspace)
134{
135 LPWSTR dirpath, volumeid, volumepath;
136 ULARGE_INTEGER freespace;
137 LARGE_INTEGER currentsize;
138 DWORD check, volumeserial;
139 BY_HANDLE_FILE_INFORMATION fileinfo;
140 HANDLE vol;
141
142 /* Get current size */
143 check = GetFileSizeEx (f, &currentsize);
144 if (!check)
145 {
146 errno = EBADF;
147 return -1; /* Error checking file size */
148 }
149
150 /* Short circuit disk space check if shrink operation */
151 if ((ULONGLONG)currentsize.QuadPart >= requiredspace)
152 return 0;
153
154 /* We check available space to user before attempting to truncate */
155
156#if (_CHECK_SPACE_BY_VISTA_METHOD_ == 1)
157 /* Get path length */
158 DWORD err;
159 LPWSTR filepath = NULL;
160 check = GetFinalPathNameByHandleW(f,filepath,0,FILE_NAME_NORMALIZED|VOLUME_NAME_GUID);
161 err = GetLastError();
162 if (err == ERROR_PATH_NOT_FOUND || err == ERROR_INVALID_PARAMETER) {
163 errno = EINVAL;
164 return -1; /* IO error */
165 }
166 filepath = calloc(check + 1,sizeof(wchar_t));
167 if (!filepath) {
168 errno = EBADF;
169 return -1; /* Out of memory */
170 }
171 check = GetFinalPathNameByHandleW(f,filepath,check,FILE_NAME_NORMALIZED|VOLUME_NAME_GUID);
172 /* FIXME: last error was set to error 87 (0x57)
173 "The parameter is incorrect." for some reason but works out */
174 if (!check) {
175 errno = EBADF;
176 return -1; /* Error resolving filename */
177 }
178#endif /* _CHECK_SPACE_BY_VISTA_METHOD_ */
179
180#if (_CHECK_SPACE_BY_PSAPI_METHOD_ == 1)
181 LPWSTR filepath = NULL;
182 filepath = xp_getfilepath(f,currentsize);
183
184 /* Get durectory path */
185 dirpath = getdirpath(filepath);
186 free(filepath);
187 filepath = NULL;
188 if (!dirpath) {
189 errno = EBADF;
190 return -1; /* Out of memory */
191 }
192#endif /* _CHECK_SPACE_BY_PSAPI_METHOD_ */
193
194#if _CHECK_SPACE_BY_VOLUME_METHOD_
195 if(!GetFileInformationByHandle(f,&fileinfo)) {
196 errno = EINVAL;
197 return -1; /* Resolution failure */
198 }
199
200 volumeid = calloc(51,sizeof(wchar_t));
201 volumepath = calloc(MAX_PATH+2,sizeof(wchar_t));
202 if(!volumeid || !volumepath) {
203 errno = EBADF;
204 return -1; /* Out of memory */
205 }
206
207 dirpath = NULL;
208
209 vol = FindFirstVolumeW(volumeid,50);
210 /* wprintf(L"%d - %ls\n",wcslen(volumeid),volumeid); */
211 do {
212 check = GetVolumeInformationW(volumeid,volumepath,MAX_PATH+1,&volumeserial,NULL,NULL,NULL,0);
213 /* wprintf(L"GetVolumeInformationW %d id %ls path %ls error %d\n",check,volumeid,volumepath,GetLastError()); */
214 if(volumeserial == fileinfo.dwVolumeSerialNumber) {
215 dirpath = volumeid;
216 break;
217 }
218 } while (FindNextVolumeW(vol,volumeid,50));
219 FindVolumeClose(vol);
220
221 if(!dirpath) free(volumeid); /* we found the volume */
222 free(volumepath);
223#endif /* _CHECK_SPACE_BY_VOLUME_METHOD_ */
224
225 /* Get available free space */
226 check = GetDiskFreeSpaceExW(dirpath,&freespace,NULL,NULL);
227 //wprintf(L"freespace %I64u\n",freespace);
228 free(dirpath);
229 if(!check) {
230 errno = EFBIG;
231 return -1; /* Error getting free space */
232 }
233
234 /* Check space requirements */
235 if ((requiredspace - currentsize.QuadPart) > freespace.QuadPart)
236 {
237 errno = EFBIG; /* File too big for disk */
238 return -1;
239 } /* We have enough space to truncate/expand */
240 return 0;
241}
242#endif
243
244int __cdecl __mingw_ftruncate64(int __fd, _off64_t __length);
245int __cdecl __mingw_ftruncate64(int __fd, _off64_t __length) {
246 HANDLE f;
247 LARGE_INTEGER quad;
248 DWORD check;
249 int ret = 0;
250 __int64 pos;
251
252 /* Sanity check */
253 if (__length < 0) {
254 goto errorout;
255 }
256
257 /* Get Win32 Handle */
258 if(__fd == -1) {
259 goto errorout;
260 }
261
262 f = (HANDLE)_get_osfhandle(__fd);
263 if (f == INVALID_HANDLE_VALUE || (GetFileType(f) != FILE_TYPE_DISK)) {
264 errno = EBADF;
265 return -1;
266 }
267
268
269 /* Save position */
270 if((pos = _telli64(__fd)) == -1LL){
271 goto errorout;
272 }
273
274#if 0
275 /* Check available space */
276 check = checkfreespace(f,__length);
277 if (check != 0) {
278 return -1; /* Error, errno already set */
279 }
280#endif
281
282 quad.QuadPart = __length;
283 check = SetFilePointer(f, (LONG)quad.LowPart, &(quad.HighPart), FILE_BEGIN);
284 if (check == INVALID_SET_FILE_POINTER && quad.LowPart != INVALID_SET_FILE_POINTER) {
285 switch (GetLastError()) {
286 case ERROR_NEGATIVE_SEEK:
287 errno = EFBIG; /* file too big? */
288 return -1;
289 case INVALID_SET_FILE_POINTER:
290 errno = EINVAL; /* shouldn't happen */
291 return -1;
292 default:
293 errno = EINVAL; /* shouldn't happen */
294 return -1;
295 }
296 }
297
298 check = SetEndOfFile(f);
299 if (!check) {
300 goto errorout;
301 }
302
303 if(_lseeki64(__fd,pos,SEEK_SET) == -1LL){
304 goto errorout;
305 }
306
307 return ret;
308
309 errorout:
310 errno = EINVAL;
311 return -1;
312}
313
314#ifdef TEST_FTRUNCATE64
315#define ftruncate64 __mingw_ftruncate64
316#endif
317
318#if (TEST_FTRUNCATE64 == 1)
319int main(){
320 LARGE_INTEGER sz;
321 ULARGE_INTEGER freespace;
322 int f;
323 LPWSTR path, dir;
324 sz.QuadPart = 0LL;
325 f = _open("XXX.tmp", _O_BINARY|_O_CREAT|_O_RDWR, _S_IREAD | _S_IWRITE);
326 wprintf(L"%d\n",ftruncate64(f,12));
327 wprintf(L"%d\n",ftruncate64(f,20));
328 wprintf(L"%d\n",ftruncate64(f,15));
329/* path = xp_getfilepath((HANDLE)_get_osfhandle(f),sz);
330 dir = getdirpath(path);
331 GetDiskFreeSpaceExW(dir,&freespace,NULL,NULL);
332 wprintf(L"fs - %ls\n",path);
333 wprintf(L"dirfs - %ls\n",dir);
334 wprintf(L"free - %I64u\n",freespace.QuadPart);
335 free(dir);
336 free(path);*/
337 _close(f);
338 return 0;
339}
340#endif /* TEST_FTRUNCATE64 */
341
342#if (TEST_FTRUNCATE64 == 2)
343int main() {
344FILE *f;
345int fd;
346char buf[100];
347int cnt;
348unlink("test.out");
349f = fopen("test.out","w+");
350fd = fileno(f);
351write(fd,"abc",3);
352fflush(f);
353printf ("err: %d\n", ftruncate64(fd,10));
354cnt = read(fd,buf,100);
355printf("cnt = %d\n",cnt);
356return 0;
357}
358#endif /* TEST_FTRUNCATE64 */
359
360#if (TEST_FTRUNCATE64 == 3)
361int main() {
362FILE *f;
363int fd;
364char buf[100];
365int cnt;
366unlink("test.out");
367f = fopen("test.out","w+");
368fd = fileno(f);
369write(fd,"abc",3);
370fflush(f);
371ftruncate64(fd,0);
372write(fd,"def",3);
373fclose(f);
374f = fopen("test.out","r");
375cnt = fread(buf,1,100,f);
376printf("cnt = %d\n",cnt);
377return 0;
378}
379#endif /* TEST_FTRUNCATE64 */
380
lib/libc/mingw/stdio/mingw_pformat.c+127-24
...@@ -66,6 +66,7 @@...@@ -66,6 +66,7 @@
66#include <limits.h>66#include <limits.h>
67#include <locale.h>67#include <locale.h>
68#include <wchar.h>68#include <wchar.h>
69#include <winternl.h>
6970
70#ifdef __ENABLE_DFP71#ifdef __ENABLE_DFP
71#ifndef __STDC_WANT_DEC_FP__72#ifndef __STDC_WANT_DEC_FP__
...@@ -163,6 +164,12 @@ typedef union ATTRIB_GCC_STRUCT __uI128 {...@@ -163,6 +164,12 @@ typedef union ATTRIB_GCC_STRUCT __uI128 {
163#define PFORMAT_XMASK 0x0000000F164#define PFORMAT_XMASK 0x0000000F
164#define PFORMAT_XSHIFT 0x00000004165#define PFORMAT_XSHIFT 0x00000004
165166
167/* `%b' and `%B' format digit extraction mask, and shift count...
168 * (These are constant, and do not propagate through the flags).
169 */
170#define PFORMAT_BMASK 0x00000001
171#define PFORMAT_BSHIFT 0x00000001
172
166/* The radix point character, used in floating point formats, is173/* The radix point character, used in floating point formats, is
167 * localised on the basis of the active LC_NUMERIC locale category.174 * localised on the basis of the active LC_NUMERIC locale category.
168 * It is stored locally, as a `wchar_t' entity, which is converted175 * It is stored locally, as a `wchar_t' entity, which is converted
...@@ -361,6 +368,23 @@ void __bigint_to_stringx(const uint32_t *digits, const uint32_t digitlen, char *...@@ -361,6 +368,23 @@ void __bigint_to_stringx(const uint32_t *digits, const uint32_t digitlen, char *
361 buff[bufflen - 1] = '\0';368 buff[bufflen - 1] = '\0';
362}369}
363370
371/* LSB first, binary version */
372static
373void __bigint_to_stringb(const uint32_t *digits, const uint32_t digitlen, char *buff, const uint32_t bufflen){
374 const uint32_t digitsize = sizeof(*digits) * 8;
375 const uint64_t bits = digitsize * digitlen;
376 uint32_t pos = bufflen - 2;
377
378 for(uint32_t i = 0; i < bits; i++){
379 buff[pos] = (digits[i / digitsize] & (1 << (i % digitsize))) ? '1' : '0';
380 if(!pos) break; /* sanity check */
381 pos--;
382 }
383 /* Fill any remaining leading positions with zeros */
384 memset(buff, '0', pos + 1);
385 buff[bufflen - 1] = '\0';
386}
387
364/* LSB first, octet version */388/* LSB first, octet version */
365static389static
366void __bigint_to_stringo(const uint32_t *digits, const uint32_t digitlen, char *buff, const uint32_t bufflen){390void __bigint_to_stringo(const uint32_t *digits, const uint32_t digitlen, char *buff, const uint32_t bufflen){
...@@ -377,8 +401,8 @@ void __bigint_to_stringo(const uint32_t *digits, const uint32_t digitlen, char *...@@ -377,8 +401,8 @@ void __bigint_to_stringo(const uint32_t *digits, const uint32_t digitlen, char *
377 pos--;401 pos--;
378 }402 }
379 }403 }
380 if(pos < bufflen - 1)404 /* Fill any remaining leading positions with zeros */
381 memset(buff,'0', pos + 1);405 memset(buff, '0', pos + 1);
382 buff[bufflen - 1] = '\0';406 buff[bufflen - 1] = '\0';
383}407}
384#endif /* defined(__ENABLE_PRINTF128) */408#endif /* defined(__ENABLE_PRINTF128) */
...@@ -569,8 +593,8 @@ void __pformat_wputchars( const wchar_t *s, int count, __pformat_t *stream )...@@ -569,8 +593,8 @@ void __pformat_wputchars( const wchar_t *s, int count, __pformat_t *stream )
569 * output quota is honoured.593 * output quota is honoured.
570 */594 */
571 char buf[16];595 char buf[16];
572 mbstate_t state;596 mbstate_t state = {0};
573 int len = wcrtomb(buf, L'\0', &state);597 int len;
574598
575 if( (stream->precision >= 0) && (count > stream->precision) )599 if( (stream->precision >= 0) && (count > stream->precision) )
576 /*600 /*
...@@ -657,7 +681,7 @@ void __pformat_wputchars( const wchar_t *s, int count, __pformat_t *stream )...@@ -657,7 +681,7 @@ void __pformat_wputchars( const wchar_t *s, int count, __pformat_t *stream )
657 __pformat_putc( '\x20', stream );681 __pformat_putc( '\x20', stream );
658682
659 len = count;683 len = count;
660 while(len-- > 0 && *s != 0)684 while(len-- > 0)
661 {685 {
662 __pformat_putc(*s++, stream);686 __pformat_putc(*s++, stream);
663 }687 }
...@@ -752,12 +776,12 @@ void __pformat_int( __pformat_intarg_t value, __pformat_t *stream )...@@ -752,12 +776,12 @@ void __pformat_int( __pformat_intarg_t value, __pformat_t *stream )
752 */776 */
753 __bigint_to_string(value.__pformat_u128_t.t128_2.digits32,777 __bigint_to_string(value.__pformat_u128_t.t128_2.digits32,
754 4, tmp_buff, bufflen);778 4, tmp_buff, bufflen);
755 __bigint_trim_leading_zeroes(tmp_buff,1);779 __bigint_trim_leading_zeroes(tmp_buff, 0);
756780
757 memset(p,0,bufflen);781 memset(p,0,bufflen);
758 for(int32_t i = strlen(tmp_buff) - 1; i >= 0; i--){782 for(int32_t i = strlen(tmp_buff) - 1; i >= 0; i--){
759 if ( i && (stream->flags & PFORMAT_GROUPED) != 0 && stream->thousands_chr != 0783 if (p != buf && (stream->flags & PFORMAT_GROUPED) != 0 && stream->thousands_chr != 0
760 && (i % 4) == 3)784 && ((p - buf) % 4) == 3)
761 {785 {
762 *p++ = ',';786 *p++ = ',';
763 }787 }
...@@ -883,7 +907,7 @@ while( value.__pformat_ullong_t )...@@ -883,7 +907,7 @@ while( value.__pformat_ullong_t )
883static907static
884void __pformat_xint( int fmt, __pformat_intarg_t value, __pformat_t *stream )908void __pformat_xint( int fmt, __pformat_intarg_t value, __pformat_t *stream )
885{909{
886 /* Handler for `%o', `%p', `%x' and `%X' conversions.910 /* Handler for `%o', `%p', `%x', `%X', `%b' and `%B' conversions.
887 *911 *
888 * These can be implemented using a simple `mask and shift' strategy;912 * These can be implemented using a simple `mask and shift' strategy;
889 * set up the mask and shift values appropriate to the conversion format,913 * set up the mask and shift values appropriate to the conversion format,
...@@ -891,7 +915,8 @@ void __pformat_xint( int fmt, __pformat_intarg_t value, __pformat_t *stream )...@@ -891,7 +915,8 @@ void __pformat_xint( int fmt, __pformat_intarg_t value, __pformat_t *stream )
891 * digits of the formatted value, in preparation for output.915 * digits of the formatted value, in preparation for output.
892 */916 */
893 int width;917 int width;
894 int shift = (fmt == 'o') ? PFORMAT_OSHIFT : PFORMAT_XSHIFT;918 int shift = (fmt == 'o') ? PFORMAT_OSHIFT :
919 (fmt == 'b' || fmt == 'B') ? PFORMAT_BSHIFT : PFORMAT_XSHIFT;
895 int bufflen = __pformat_int_bufsiz(2, shift, stream);920 int bufflen = __pformat_int_bufsiz(2, shift, stream);
896 char *buf = NULL;921 char *buf = NULL;
897#ifdef __ENABLE_PRINTF128922#ifdef __ENABLE_PRINTF128
...@@ -904,16 +929,19 @@ void __pformat_xint( int fmt, __pformat_intarg_t value, __pformat_t *stream )...@@ -904,16 +929,19 @@ void __pformat_xint( int fmt, __pformat_intarg_t value, __pformat_t *stream )
904 tmp_buf = alloca(bufflen);929 tmp_buf = alloca(bufflen);
905 if(fmt == 'o'){930 if(fmt == 'o'){
906 __bigint_to_stringo(value.__pformat_u128_t.t128_2.digits32,4,tmp_buf,bufflen);931 __bigint_to_stringo(value.__pformat_u128_t.t128_2.digits32,4,tmp_buf,bufflen);
932 } else if(fmt == 'b' || fmt == 'B'){
933 __bigint_to_stringb(value.__pformat_u128_t.t128_2.digits32,4,tmp_buf,bufflen);
907 } else {934 } else {
908 __bigint_to_stringx(value.__pformat_u128_t.t128_2.digits32,4,tmp_buf,bufflen, !(fmt & PFORMAT_XCASE));935 __bigint_to_stringx(value.__pformat_u128_t.t128_2.digits32,4,tmp_buf,bufflen, !(fmt & PFORMAT_XCASE));
909 }936 }
910 __bigint_trim_leading_zeroes(tmp_buf,0);937 __bigint_trim_leading_zeroes(tmp_buf,0);
911938
912 memset(buf,0,bufflen);939 memset(buf,0,bufflen);
913 for(int32_t i = strlen(tmp_buf); i >= 0; i--)940 for(int32_t i = strlen(tmp_buf)-1; i >= 0; i--)
914 *p++ = tmp_buf[i];941 *p++ = tmp_buf[i];
915#else942#else
916 int mask = (fmt == 'o') ? PFORMAT_OMASK : PFORMAT_XMASK;943 int mask = (fmt == 'o') ? PFORMAT_OMASK :
944 (fmt == 'b' || fmt == 'B') ? PFORMAT_BMASK : PFORMAT_XMASK;
917 while( value.__pformat_ullong_t )945 while( value.__pformat_ullong_t )
918 {946 {
919 /* Encode the specified non-zero input value as a sequence of digits,947 /* Encode the specified non-zero input value as a sequence of digits,
...@@ -975,7 +1003,7 @@ void __pformat_xint( int fmt, __pformat_intarg_t value, __pformat_t *stream )...@@ -975,7 +1003,7 @@ void __pformat_xint( int fmt, __pformat_intarg_t value, __pformat_t *stream )
975 if( ((width = stream->width) > 0)1003 if( ((width = stream->width) > 0)
976 && (fmt != 'o') && (stream->flags & PFORMAT_HASHED) )1004 && (fmt != 'o') && (stream->flags & PFORMAT_HASHED) )
977 /*1005 /*
978 * For `%#x' or `%#X' formats, (which have the `#' flag set),1006 * For `%#x', `%#X', `%#b' or `%#B' formats, (which have the `#' flag set),
979 * further reduce the padding width to accommodate the radix1007 * further reduce the padding width to accommodate the radix
980 * indicating prefix.1008 * indicating prefix.
981 */1009 */
...@@ -1468,7 +1496,10 @@ void __pformat_emit_efloat( int sign, char *value, int e, __pformat_t *stream )...@@ -1468,7 +1496,10 @@ void __pformat_emit_efloat( int sign, char *value, int e, __pformat_t *stream )
1468 * include the following exponent).1496 * include the following exponent).
1469 */1497 */
1470 int exp_width = 1;1498 int exp_width = 1;
1471 __pformat_intarg_t exponent; exponent.__pformat_llong_t = e -= 1;1499 __pformat_intarg_t exponent;
1500 e -= 1;
1501 exponent.__pformat_u128_t.t128.digits[1] = e < 0 ? -1 : 0;
1502 exponent.__pformat_u128_t.t128.digits[0] = e;
14721503
1473 /* Determine how many digit positions are required for the exponent.1504 /* Determine how many digit positions are required for the exponent.
1474 */1505 */
...@@ -1881,14 +1912,15 @@ void __pformat_gfloat( long double x, __pformat_t *stream )...@@ -1881,14 +1912,15 @@ void __pformat_gfloat( long double x, __pformat_t *stream )
1881 * precede the radix point, but we truncate any balance following1912 * precede the radix point, but we truncate any balance following
1882 * it, to suppress output of non-significant trailing zeros...1913 * it, to suppress output of non-significant trailing zeros...
1883 */1914 */
1884 if( ((stream->precision = strlen( value ) - intlen) < 0)1915 stream->precision = strlen( value ) - intlen;
1885 /*1916
1886 * This may require a compensating adjustment to the field1917 /* When the mantissa is shorter than the number of integer digits
1887 * width, to accommodate significant trailing zeros, which1918 * (e.g., 100000 has mantissa "1" but requires 6 digit positions),
1888 * precede the radix point...1919 * precision becomes negative. Clamp to zero to represent no
1889 */1920 * fractional digits.
1890 && (stream->width > 0) )1921 */
1891 stream->width += stream->precision;1922 if( stream->precision < 0 )
1923 stream->precision = 0;
18921924
1893 /* Now, we format the result as any other fixed point value.1925 /* Now, we format the result as any other fixed point value.
1894 */1926 */
...@@ -1945,7 +1977,7 @@ void __pformat_emit_xfloat( __pformat_fpreg_t value, __pformat_t *stream )...@@ -1945,7 +1977,7 @@ void __pformat_emit_xfloat( __pformat_fpreg_t value, __pformat_t *stream )
1945 * representation of the argument value.1977 * representation of the argument value.
1946 */1978 */
1947 char buf[18 + 6], *p = buf;1979 char buf[18 + 6], *p = buf;
1948 __pformat_intarg_t exponent; short exp_width = 2;1980 short exp_width = 2;
19491981
1950 if (value.__pformat_fpreg_mantissa != 0 ||1982 if (value.__pformat_fpreg_mantissa != 0 ||
1951 value.__pformat_fpreg_exponent != 0)1983 value.__pformat_fpreg_exponent != 0)
...@@ -2197,6 +2229,7 @@ void __pformat_emit_xfloat( __pformat_fpreg_t value, __pformat_t *stream )...@@ -2197,6 +2229,7 @@ void __pformat_emit_xfloat( __pformat_fpreg_t value, __pformat_t *stream )
2197 stream->width += exp_width;2229 stream->width += exp_width;
2198 stream->flags |= PFORMAT_SIGNED;2230 stream->flags |= PFORMAT_SIGNED;
2199 /* sign extend */2231 /* sign extend */
2232 __pformat_intarg_t exponent;
2200 exponent.__pformat_u128_t.t128.digits[1] = (value.__pformat_fpreg_exponent < 0) ? -1 : 0;2233 exponent.__pformat_u128_t.t128.digits[1] = (value.__pformat_fpreg_exponent < 0) ? -1 : 0;
2201 exponent.__pformat_u128_t.t128.digits[0] = value.__pformat_fpreg_exponent;2234 exponent.__pformat_u128_t.t128.digits[0] = value.__pformat_fpreg_exponent;
2202 __pformat_int( exponent, stream );2235 __pformat_int( exponent, stream );
...@@ -2506,6 +2539,64 @@ __pformat (int flags, void *dest, int max, const APICHAR *fmt, va_list argv)...@@ -2506,6 +2539,64 @@ __pformat (int flags, void *dest, int max, const APICHAR *fmt, va_list argv)
2506 */2539 */
2507 __pformat_puts( va_arg( argv, char * ), &stream );2540 __pformat_puts( va_arg( argv, char * ), &stream );
2508 goto format_scan;2541 goto format_scan;
2542
2543 case 'Z':
2544 /*
2545 * The logic for `%Z` length modifier is quite complicated.
2546 *
2547 * for printf:
2548 * `%Z` - UNICODE_STRING for UCRT; ANSI_STRING for crtdll,msvcrt10,msvcrt,msvcr80-msvcr120
2549 * `%hZ` - ANSI_STRING
2550 * `%lZ` - UNICODE_STRING for UCRT; ANSI_STRING for crtdll,msvcrt10,msvcrt,msvcr80-msvcr120
2551 * `%wZ` - UNICODE_STRING
2552 *
2553 * for wprintf:
2554 * `%Z` - ANSI_STRING
2555 * `%hZ` - ANSI_STRING
2556 * `%lZ` - UNICODE_STRING for UCRT; ANSI_STRING for crtdll,msvcrt10,msvcrt,msvcr80-msvcr120
2557 * `%wZ` - UNICODE_STRING
2558 *
2559 * There are some other changes between versions regarding nul chars.
2560 * - msvcrt since Vista, msvcr80+ and UCRT do not accept nul chars in ANSI_STRING for wprintf.
2561 * If encountering a nul char, it stops processing the format string and returns -1.
2562 * - msvcrt before Vista, crtdll and msvcrt10 accept nul char in ANSI_STRING for wprintf,
2563 * but the first nul char and everything after it in ANSI_STRING content is discarded.
2564 * - msvcrt20 does not support %Z format at all.
2565 * - msvcrt40 from Visual C++ 4.0 and in Win9x systems does not support %Z format at all.
2566 * - msvcrt40 in WinNT systems forwards calls to msvcrt, so it behaves as msvcrt described above.
2567 * - ANSI_STRING for printf, and UNICODE_STRING for both printf and wprintf work fine
2568 * in all versions, every nul byte and all following chars in the ANSI_STRING/UNICODE_STRING
2569 * are processed and printed.
2570 *
2571 * This mingw-w64 implementation uses UCRT behavior of length modifiers.
2572 */
2573 if( length == PFORMAT_LENGTH_INT )
2574 {
2575 #ifndef __BUILD_WIDEAPI
2576 length = PFORMAT_LENGTH_LONG;
2577 #else
2578 length = PFORMAT_LENGTH_SHORT;
2579 #endif
2580 }
2581
2582 if( (length == PFORMAT_LENGTH_LONG)
2583 || (length == PFORMAT_LENGTH_LLONG)
2584 )
2585 {
2586 const UNICODE_STRING *s = va_arg( argv, UNICODE_STRING * );
2587 const wchar_t *buf = (s && s->Buffer) ? (const wchar_t *)s->Buffer : L"(null)";
2588 const int len = (s && s->Buffer) ? s->Length / sizeof(wchar_t) : ( sizeof( "(null)" ) - 1 );
2589 __pformat_wputchars( buf, len, &stream );
2590 }
2591 else
2592 {
2593 const ANSI_STRING *s = va_arg( argv, ANSI_STRING * );
2594 const char *buf = (s && s->Buffer) ? (const char *)s->Buffer : "(null)";
2595 const int len = (s && s->Buffer) ? s->Length : ( sizeof( "(null)" ) - 1 );
2596 __pformat_putchars( buf, len, &stream );
2597 }
2598 goto format_scan;
2599
2509 case 'm': /* strerror (errno) */2600 case 'm': /* strerror (errno) */
2510 __pformat_puts (strerror (saved_errno), &stream);2601 __pformat_puts (strerror (saved_errno), &stream);
2511 goto format_scan;2602 goto format_scan;
...@@ -2514,8 +2605,10 @@ __pformat (int flags, void *dest, int max, const APICHAR *fmt, va_list argv)...@@ -2514,8 +2605,10 @@ __pformat (int flags, void *dest, int max, const APICHAR *fmt, va_list argv)
2514 case 'u':2605 case 'u':
2515 case 'x':2606 case 'x':
2516 case 'X':2607 case 'X':
2608 case 'b':
2609 case 'B':
2517 /*2610 /*
2518 * Unsigned integer values; octal, decimal or hexadecimal format...2611 * Unsigned integer values; octal, decimal, hexadecimal or binary format...
2519 */2612 */
2520 stream.flags &= ~PFORMAT_POSITIVE;2613 stream.flags &= ~PFORMAT_POSITIVE;
2521#if __ENABLE_PRINTF1282614#if __ENABLE_PRINTF128
...@@ -2977,6 +3070,16 @@ __pformat (int flags, void *dest, int max, const APICHAR *fmt, va_list argv)...@@ -2977,6 +3070,16 @@ __pformat (int flags, void *dest, int max, const APICHAR *fmt, va_list argv)
2977 state = PFORMAT_END;3070 state = PFORMAT_END;
2978 break;3071 break;
29793072
3073 case 'w':
3074 /*
3075 * Identify the appropriate argument as a wide
3076 * character or wide string when associated with
3077 * `%c`, `%C`, `%s' or `%S`.
3078 */
3079 length = PFORMAT_LENGTH_LONG;
3080 state = PFORMAT_END;
3081 break;
3082
2980 case 'L':3083 case 'L':
2981 /*3084 /*
2982 * Identify the appropriate argument as a `long double',3085 * Identify the appropriate argument as a `long double',
lib/libc/mingw/stdio/mingw_sformat.c+4
...@@ -927,6 +927,7 @@ __mingw_sformat (_IFP *s, const char *format, va_list argp)...@@ -927,6 +927,7 @@ __mingw_sformat (_IFP *s, const char *format, va_list argp)
927 case 'o': case 'p':927 case 'o': case 'p':
928 case 'u':928 case 'u':
929 case 'x': case 'X':929 case 'x': case 'X':
930 case 'b': case 'B':
930 switch (fc)931 switch (fc)
931 {932 {
932 case 'd':933 case 'd':
...@@ -954,6 +955,9 @@ __mingw_sformat (_IFP *s, const char *format, va_list argp)...@@ -954,6 +955,9 @@ __mingw_sformat (_IFP *s, const char *format, va_list argp)
954 case 'x': case 'X':955 case 'x': case 'X':
955 base = 16;956 base = 16;
956 break;957 break;
958 case 'b': case 'B':
959 base = 2;
960 break;
957 }961 }
958962
959 if ((c = in_ch (s, &read_in)) == EOF)963 if ((c = in_ch (s, &read_in)) == EOF)
lib/libc/mingw/stdio/mingw_vsnprintf.c+3-4
...@@ -57,11 +57,10 @@ int __cdecl __vsnprintf(APICHAR *buf, size_t length, const APICHAR *fmt, va_list...@@ -57,11 +57,10 @@ int __cdecl __vsnprintf(APICHAR *buf, size_t length, const APICHAR *fmt, va_list
57 buf[retval < (int) length ? retval : (int)length] = '\0';57 buf[retval < (int) length ? retval : (int)length] = '\0';
5858
59#if defined(__BUILD_WIDEAPI) && defined(__BUILD_WIDEAPI_ISO)59#if defined(__BUILD_WIDEAPI) && defined(__BUILD_WIDEAPI_ISO)
60 /* For wide api ISO C95+ vswprintf() when requested length60 /* ISO C95+ fails when n or more data wide chars are needed. length was
61 * is equal or larger than buffer length, returns negative61 * already decremented once for the terminator, so use > not >= here.
62 * value as required by ISO C95+.
63 */62 */
64 if( retval >= (int) length )63 if( retval > (int) length )
65 retval = -1;64 retval = -1;
66#endif65#endif
6766
lib/libc/mingw/stdio/msvcr80plus_ftruncate64.c created+30
...@@ -0,0 +1,30 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <errno.h>
8#include <io.h>
9#include <unistd.h>
10
11int __cdecl ftruncate64(int fd, _off64_t length)
12{
13 errno_t error;
14
15 /* _chsize_s calls invalid parameter exception handler, so validate input parameters */
16 if (fd < 0) {
17 errno = EBADF;
18 return -1;
19 }
20 if (length < 0) {
21 errno = EINVAL;
22 return -1;
23 }
24 error = _chsize_s(fd, length);
25 if (error) {
26 errno = error;
27 return -1;
28 }
29 return 0;
30}
lib/libc/mingw/stdio/truncate.c-11
...@@ -12,14 +12,3 @@ int truncate(const char *pathname, _off_t len){...@@ -12,14 +12,3 @@ int truncate(const char *pathname, _off_t len){
12 errno = err;12 errno = err;
13 return ret;13 return ret;
14}14}
15
16int truncate64(const char *pathname, _off64_t len){
17 int ret, err;
18 int fd = _open(pathname,_O_BINARY|_O_RDWR);
19 if (fd == -1) return fd;
20 ret = ftruncate64(fd,len);
21 err = errno;
22 _close(fd);
23 errno = err;
24 return ret;
25}
lib/libc/mingw/stdio/truncate64.c created+14
...@@ -0,0 +1,14 @@
1#include <unistd.h>
2#include <fcntl.h>
3#include <errno.h>
4
5int truncate64(const char *pathname, _off64_t len){
6 int ret, err;
7 int fd = _open(pathname,_O_BINARY|_O_RDWR);
8 if (fd == -1) return fd;
9 ret = ftruncate64(fd,len);
10 err = errno;
11 _close(fd);
12 errno = err;
13 return ret;
14}
lib/libc/mingw/stdio/ucrt___local_stdio_printf_options.c+1-1
...@@ -10,6 +10,6 @@...@@ -10,6 +10,6 @@
1010
11static unsigned __int64 options = _CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS | _CRT_INTERNAL_PRINTF_STANDARD_ROUNDING;11static unsigned __int64 options = _CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS | _CRT_INTERNAL_PRINTF_STANDARD_ROUNDING;
1212
13unsigned __int64* __local_stdio_printf_options(void) {13unsigned __int64* __cdecl __local_stdio_printf_options(void) {
14 return &options;14 return &options;
15}15}
lib/libc/mingw/stdio/ucrt___local_stdio_scanf_options.c+1-1
...@@ -10,6 +10,6 @@...@@ -10,6 +10,6 @@
1010
11static unsigned __int64 options = _CRT_INTERNAL_SCANF_LEGACY_WIDE_SPECIFIERS;11static unsigned __int64 options = _CRT_INTERNAL_SCANF_LEGACY_WIDE_SPECIFIERS;
1212
13unsigned __int64* __local_stdio_scanf_options(void) {13unsigned __int64* __cdecl __local_stdio_scanf_options(void) {
14 return &options;14 return &options;
15}15}
lib/libc/mingw/stdio/ucrt__scwprintf.c created+21
...@@ -0,0 +1,21 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#undef __MSVCRT_VERSION__
8#define _UCRT
9#include <stdio.h>
10#include <stdarg.h>
11
12int __cdecl _scwprintf(const wchar_t * restrict format, ...)
13{
14 int ret;
15 va_list args;
16 va_start(args, format);
17 ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, NULL, 0, format, NULL, args);
18 va_end(args);
19 return ret;
20}
21int __cdecl (*__MINGW_IMP_SYMBOL(_scwprintf))(const wchar_t * restrict, ...) = _scwprintf;
lib/libc/mingw/stdio/ucrt__snwprintf.c+1-2
...@@ -10,8 +10,6 @@...@@ -10,8 +10,6 @@
10#include <stdarg.h>10#include <stdarg.h>
11#include <stdio.h>11#include <stdio.h>
1212
13int __cdecl _snwprintf(wchar_t * restrict _Dest, size_t _Count, const wchar_t * restrict _Format, ...);
14
15int __cdecl _snwprintf(wchar_t * restrict _Dest, size_t _Count, const wchar_t * restrict _Format, ...)13int __cdecl _snwprintf(wchar_t * restrict _Dest, size_t _Count, const wchar_t * restrict _Format, ...)
16{14{
17 va_list ap;15 va_list ap;
...@@ -21,3 +19,4 @@ int __cdecl _snwprintf(wchar_t * restrict _Dest, size_t _Count, const wchar_t *...@@ -21,3 +19,4 @@ int __cdecl _snwprintf(wchar_t * restrict _Dest, size_t _Count, const wchar_t *
21 va_end(ap);19 va_end(ap);
22 return ret;20 return ret;
23}21}
22int __cdecl (*__MINGW_IMP_SYMBOL(_snwprintf))(wchar_t * restrict, size_t, const wchar_t * restrict, ...) = _snwprintf;
lib/libc/mingw/stdio/ucrt__swprintf.c created+21
...@@ -0,0 +1,21 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#undef __MSVCRT_VERSION__
8#define _UCRT
9#include <stdio.h>
10#include <stdarg.h>
11
12int __cdecl _swprintf(wchar_t * restrict dest, const wchar_t * restrict format, ...)
13{
14 int ret;
15 va_list args;
16 va_start(args, format);
17 ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, dest, (size_t)-1, format, NULL, args);
18 va_end(args);
19 return ret;
20}
21int __cdecl (*__MINGW_IMP_SYMBOL(_swprintf))(wchar_t * restrict, const wchar_t * restrict, ...) = _swprintf;
lib/libc/mingw/stdio/ucrt__vscwprintf.c created+15
...@@ -0,0 +1,15 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#undef __MSVCRT_VERSION__
8#define _UCRT
9#include <stdio.h>
10
11int __cdecl _vscwprintf(const wchar_t * restrict format, va_list args)
12{
13 return __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, NULL, 0, format, NULL, args);
14}
15int __cdecl (*__MINGW_IMP_SYMBOL(_vscwprintf))(const wchar_t * restrict, va_list) = _vscwprintf;
lib/libc/mingw/stdio/ucrt__vsnwprintf.c+1
...@@ -12,3 +12,4 @@ int __cdecl _vsnwprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t...@@ -12,3 +12,4 @@ int __cdecl _vsnwprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t
12{12{
13 return __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION, _Dest, _Count, _Format, NULL, _Args);13 return __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION, _Dest, _Count, _Format, NULL, _Args);
14}14}
15int __cdecl (*__MINGW_IMP_SYMBOL(_vsnwprintf))(wchar_t * __restrict__,size_t,const wchar_t * __restrict__,va_list) = _vsnwprintf;
lib/libc/mingw/stdio/ucrt__vswprintf.c created+15
...@@ -0,0 +1,15 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#undef __MSVCRT_VERSION__
8#define _UCRT
9#include <stdio.h>
10
11int __cdecl _vswprintf(wchar_t * restrict dest, const wchar_t * restrict format, va_list args)
12{
13 return __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, dest, (size_t)-1, format, NULL, args);
14}
15int __cdecl (*__MINGW_IMP_SYMBOL(_vswprintf))(wchar_t * restrict, const wchar_t * restrict, va_list) = _vswprintf;
lib/libc/mingw/winpthreads/misc.c+21-5
...@@ -35,10 +35,13 @@...@@ -35,10 +35,13 @@
35void (WINAPI *_pthread_get_system_time_best_as_file_time) (LPFILETIME) = NULL;35void (WINAPI *_pthread_get_system_time_best_as_file_time) (LPFILETIME) = NULL;
36static ULONGLONG (WINAPI *_pthread_get_tick_count_64) (VOID);36static ULONGLONG (WINAPI *_pthread_get_tick_count_64) (VOID);
37HRESULT (WINAPI *_pthread_set_thread_description) (HANDLE, PCWSTR) = NULL;37HRESULT (WINAPI *_pthread_set_thread_description) (HANDLE, PCWSTR) = NULL;
38BOOL (WINAPI *_pthread_get_handle_information) (HANDLE, LPDWORD) = NULL;
3839
39#if defined(__GNUC__) || defined(__clang__)40#if defined(__GNUC__) || defined(__clang__)
41#if __GNUC__ >= 9 && !defined(__clang__)
40#pragma GCC diagnostic push42#pragma GCC diagnostic push
41#pragma GCC diagnostic ignored "-Wprio-ctor-dtor"43#pragma GCC diagnostic ignored "-Wprio-ctor-dtor"
44#endif
42__attribute__((constructor(0)))45__attribute__((constructor(0)))
43#endif46#endif
44static void winpthreads_init(void)47static void winpthreads_init(void)
...@@ -46,9 +49,15 @@ static void winpthreads_init(void)...@@ -46,9 +49,15 @@ static void winpthreads_init(void)
46 HMODULE mod = GetModuleHandleA("kernel32.dll");49 HMODULE mod = GetModuleHandleA("kernel32.dll");
47 if (mod)50 if (mod)
48 {51 {
52 _pthread_get_handle_information =
53 (BOOL (WINAPI *)(HANDLE, LPDWORD))(void*) GetProcAddress(mod, "GetHandleInformation");
54
49 _pthread_get_tick_count_64 =55 _pthread_get_tick_count_64 =
50 (ULONGLONG (WINAPI *)(VOID))(void*) GetProcAddress(mod, "GetTickCount64");56 (ULONGLONG (WINAPI *)(VOID))(void*) GetProcAddress(mod, "GetTickCount64");
5157
58 _pthread_set_thread_description =
59 (HRESULT (WINAPI *)(HANDLE, PCWSTR))(void*) GetProcAddress(mod, "SetThreadDescription");
60
52 /* <1us precision on Windows 10 */61 /* <1us precision on Windows 10 */
53 _pthread_get_system_time_best_as_file_time =62 _pthread_get_system_time_best_as_file_time =
54 (void (WINAPI *)(LPFILETIME))(void*) GetProcAddress(mod, "GetSystemTimePreciseAsFileTime");63 (void (WINAPI *)(LPFILETIME))(void*) GetProcAddress(mod, "GetSystemTimePreciseAsFileTime");
...@@ -58,14 +67,21 @@ static void winpthreads_init(void)...@@ -58,14 +67,21 @@ static void winpthreads_init(void)
58 /* >15ms precision on Windows 10 */67 /* >15ms precision on Windows 10 */
59 _pthread_get_system_time_best_as_file_time = GetSystemTimeAsFileTime;68 _pthread_get_system_time_best_as_file_time = GetSystemTimeAsFileTime;
6069
61 mod = GetModuleHandleA("kernelbase.dll");70 /* Although SetThreadDescription lives in kernel32.dll, on Windows Server 2016,
62 if (mod)71 * Windows 10 LTSB 2016 and Windows 10 version 1607, it was only available in
72 * kernelbase.dll. So, load it from there for maximum coverage.
73 */
74 if (!_pthread_set_thread_description)
63 {75 {
64 _pthread_set_thread_description =76 mod = GetModuleHandleA("kernelbase.dll");
65 (HRESULT (WINAPI *)(HANDLE, PCWSTR))(void*) GetProcAddress(mod, "SetThreadDescription");77 if (mod)
78 {
79 _pthread_set_thread_description =
80 (HRESULT (WINAPI *)(HANDLE, PCWSTR))(void*) GetProcAddress(mod, "SetThreadDescription");
81 }
66 }82 }
67}83}
68#if defined(__GNUC__) || defined(__clang__)84#if defined(__GNUC__) && __GNUC__ >= 9 && !defined(__clang__)
69#pragma GCC diagnostic pop85#pragma GCC diagnostic pop
70#endif86#endif
7187
lib/libc/mingw/winpthreads/misc.h+22-10
...@@ -35,18 +35,32 @@ typedef long long LONGBAG;...@@ -35,18 +35,32 @@ typedef long long LONGBAG;
35typedef long LONGBAG;35typedef long LONGBAG;
36#endif36#endif
3737
38#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)38extern BOOL (WINAPI *_pthread_get_handle_information) (HANDLE, LPDWORD);
39#undef GetHandleInformation39
40#define GetHandleInformation(h,f) (1)40/* For gcc and clang define DUMMY_WRITABLE_DWORD as C99 compound literal.
41 * For other pre-C99 compilers declare DUMMY_WRITABLE_DWORD as static variable.
42 */
43#if defined(__GNUC__) || defined(__clang__)
44#define DUMMY_WRITABLE_DWORD (DWORD){0}
45#else
46static DWORD DUMMY_WRITABLE_DWORD;
41#endif47#endif
4248
43#define CHECK_HANDLE(h) \49#define TEST_HANDLE(h) \
50 (((h) != NULL && (h) != INVALID_HANDLE_VALUE) && ( \
51 _pthread_get_handle_information == NULL || \
52 _pthread_get_handle_information((h), &DUMMY_WRITABLE_DWORD) || \
53 GetLastError() == ERROR_CALL_NOT_IMPLEMENTED \
54 ))
55
56#define CHECK_HANDLE2(h, e) \
44 do { \57 do { \
45 DWORD dwFlags; \58 if (!TEST_HANDLE(h)) \
46 if (!(h) || ((h) == INVALID_HANDLE_VALUE) || !GetHandleInformation((h), &dwFlags)) \59 return e; \
47 return EINVAL; \
48 } while (0)60 } while (0)
4961
62#define CHECK_HANDLE(h) CHECK_HANDLE2(h, EINVAL)
63
50#define CHECK_PTR(p) do { if (!(p)) return EINVAL; } while (0)64#define CHECK_PTR(p) do { if (!(p)) return EINVAL; } while (0)
5165
52#define UPD_RESULT(x,r) do { int _r = (x); (r) = (r) ? (r) : _r; } while (0)66#define UPD_RESULT(x,r) do { int _r = (x); (r) = (r) ? (r) : _r; } while (0)
...@@ -59,10 +73,8 @@ typedef long LONGBAG;...@@ -59,10 +73,8 @@ typedef long LONGBAG;
5973
60#define CHECK_OBJECT(o, e) \74#define CHECK_OBJECT(o, e) \
61 do { \75 do { \
62 DWORD dwFlags; \
63 if (!(o)) return e; \76 if (!(o)) return e; \
64 if (!((o)->h) || (((o)->h) == INVALID_HANDLE_VALUE) || !GetHandleInformation(((o)->h), &dwFlags)) \77 CHECK_HANDLE2((o)->h, e); \
65 return e; \
66 } while (0)78 } while (0)
6779
68#define VALID(x) if (!(p)) return EINVAL;80#define VALID(x) if (!(p)) return EINVAL;
lib/libc/mingw/winpthreads/mutex.c+5-6
...@@ -26,7 +26,6 @@...@@ -26,7 +26,6 @@
26#endif26#endif
2727
28#include <malloc.h>28#include <malloc.h>
29#include <stdbool.h>
30#include <stdio.h>29#include <stdio.h>
3130
32#define WIN32_LEAN_AND_MEAN31#define WIN32_LEAN_AND_MEAN
...@@ -64,7 +63,7 @@ typedef struct {...@@ -64,7 +63,7 @@ typedef struct {
6463
65/* Whether a mutex is still a static initializer (not a pointer to64/* Whether a mutex is still a static initializer (not a pointer to
66 a mutex_impl_t). */65 a mutex_impl_t). */
67static bool66static BOOL
68is_static_initializer(pthread_mutex_t m)67is_static_initializer(pthread_mutex_t m)
69{68{
70 /* Treat 0 as a static initializer as well (for normal mutexes),69 /* Treat 0 as a static initializer as well (for normal mutexes),
...@@ -101,7 +100,7 @@ mutex_impl_init(pthread_mutex_t *m, mutex_impl_t *mi)...@@ -101,7 +100,7 @@ mutex_impl_init(pthread_mutex_t *m, mutex_impl_t *mi)
101100
102/* Return the implementation part of a mutex, creating it if necessary.101/* Return the implementation part of a mutex, creating it if necessary.
103 Return NULL on out-of-memory error. */102 Return NULL on out-of-memory error. */
104static inline mutex_impl_t *103static WINPTHREADS_INLINE mutex_impl_t *
105mutex_impl(pthread_mutex_t *m)104mutex_impl(pthread_mutex_t *m)
106{105{
107 mutex_impl_t *mi = (mutex_impl_t *)*m;106 mutex_impl_t *mi = (mutex_impl_t *)*m;
...@@ -117,7 +116,7 @@ mutex_impl(pthread_mutex_t *m)...@@ -117,7 +116,7 @@ mutex_impl(pthread_mutex_t *m)
117116
118/* Lock a mutex. Give up after 'timeout' ms (with ETIMEDOUT),117/* Lock a mutex. Give up after 'timeout' ms (with ETIMEDOUT),
119 or never if timeout=INFINITE. */118 or never if timeout=INFINITE. */
120static inline int119static WINPTHREADS_INLINE int
121pthread_mutex_lock_intern (pthread_mutex_t *m, DWORD timeout)120pthread_mutex_lock_intern (pthread_mutex_t *m, DWORD timeout)
122{121{
123 mutex_impl_t *mi = mutex_impl(m);122 mutex_impl_t *mi = mutex_impl(m);
...@@ -148,7 +147,7 @@ pthread_mutex_lock_intern (pthread_mutex_t *m, DWORD timeout)...@@ -148,7 +147,7 @@ pthread_mutex_lock_intern (pthread_mutex_t *m, DWORD timeout)
148 /* Make sure there is an event object on which to wait. */147 /* Make sure there is an event object on which to wait. */
149 if (mi->event == NULL) {148 if (mi->event == NULL) {
150 /* Make an auto-reset event object. */149 /* Make an auto-reset event object. */
151 HANDLE ev = CreateEvent(NULL, false, false, NULL);150 HANDLE ev = CreateEvent(NULL, FALSE, FALSE, NULL);
152 if (ev == NULL) {151 if (ev == NULL) {
153 switch (GetLastError()) {152 switch (GetLastError()) {
154 case ERROR_ACCESS_DENIED:153 case ERROR_ACCESS_DENIED:
...@@ -232,7 +231,7 @@ int pthread_mutex_unlock(pthread_mutex_t *m)...@@ -232,7 +231,7 @@ int pthread_mutex_unlock(pthread_mutex_t *m)
232231
233 if (unlikely(mi->type != Normal)) {232 if (unlikely(mi->type != Normal)) {
234 if (mi->state == Unlocked)233 if (mi->state == Unlocked)
235 return EINVAL;234 return EPERM;
236 if (mi->owner != GetCurrentThreadId())235 if (mi->owner != GetCurrentThreadId())
237 return EPERM;236 return EPERM;
238 if (mi->rec_lock > 0) {237 if (mi->rec_lock > 0) {
lib/libc/mingw/winpthreads/sem.c+9-2
...@@ -267,8 +267,15 @@ int sem_timedwait64(sem_t *sem, const struct _timespec64 *t)...@@ -267,8 +267,15 @@ int sem_timedwait64(sem_t *sem, const struct _timespec64 *t)
267267
268int sem_timedwait32(sem_t *sem, const struct _timespec32 *t)268int sem_timedwait32(sem_t *sem, const struct _timespec32 *t)
269{269{
270 struct _timespec64 t64 = {.tv_sec = t->tv_sec, .tv_nsec = t->tv_nsec};270 struct _timespec64 t64 = {0};
271 return __sem_timedwait (sem, &t64);271
272 if (t != NULL)
273 {
274 t64.tv_sec = t->tv_sec;
275 t64.tv_nsec = t->tv_nsec;
276 }
277
278 return __sem_timedwait (sem, t == NULL ? NULL : &t64);
272}279}
273280
274int281int
lib/libc/mingw/winpthreads/thread.c+76-94
...@@ -20,6 +20,16 @@...@@ -20,6 +20,16 @@
20 DEALINGS IN THE SOFTWARE.20 DEALINGS IN THE SOFTWARE.
21*/21*/
2222
23#if defined(__arm__) || defined(__aarch64__)
24/* We use setjmp/longjmp through asynchronous function calls via
25 * SetThreadContext below. This makes unwinding from longjmp not
26 * work reliably; therefore use a version of setjmp/longjmp that doesn't
27 * rely on SEH. */
28#define __USE_MINGW_SETJMP_NON_SEH
29#endif
30
31#define __LARGE_MBSTATE_T
32
23#ifdef HAVE_CONFIG_H33#ifdef HAVE_CONFIG_H
24#include "config.h"34#include "config.h"
25#endif35#endif
...@@ -32,7 +42,6 @@...@@ -32,7 +42,6 @@
3242
33#define WIN32_LEAN_AND_MEAN43#define WIN32_LEAN_AND_MEAN
34#include <windows.h>44#include <windows.h>
35#include <strsafe.h>
3645
37#define WINPTHREAD_THREAD_DECL WINPTHREAD_API46#define WINPTHREAD_THREAD_DECL WINPTHREAD_API
3847
...@@ -65,38 +74,29 @@ static size_t idListCnt = 0;...@@ -65,38 +74,29 @@ static size_t idListCnt = 0;
65static size_t idListMax = 0;74static size_t idListMax = 0;
66static pthread_t idListNextId = 0;75static pthread_t idListNextId = 0;
6776
68#if !defined(_MSC_VER)77#if defined(__SEH__) && (!defined(__clang__) || __clang_major__ >= 7)
69#define USE_VEH_FOR_MSC_SETTHREADNAME78#define SEH_INLINE_ASM
79#ifdef __arm__
80#define ASM_EXCEPT "%%except"
81#else
82#define ASM_EXCEPT "@except"
70#endif83#endif
71#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
72/* forbidden RemoveVectoredExceptionHandler/AddVectoredExceptionHandler APIs */
73#undef USE_VEH_FOR_MSC_SETTHREADNAME
74#endif84#endif
7585
76#if defined(USE_VEH_FOR_MSC_SETTHREADNAME)86#if !defined(_MSC_VER) && (defined(__i386__) || defined(SEH_INLINE_ASM))
77static void *SetThreadName_VEH_handle = NULL;87static EXCEPTION_DISPOSITION __cdecl
7888SetThreadName_SEH (EXCEPTION_RECORD *ExceptionRecord, PVOID EstablisherFrame, CONTEXT *ContextRecord, PVOID DispatcherContext)
79static LONG __stdcall
80SetThreadName_VEH (PEXCEPTION_POINTERS ExceptionInfo)
81{89{
82 if (ExceptionInfo->ExceptionRecord != NULL &&90 /* Do not be confused with VEH handlers and CRT except filters which returns LONG value with UPPER_CASE constants.
83 ExceptionInfo->ExceptionRecord->ExceptionCode == EXCEPTION_SET_THREAD_NAME)91 * SEH handlers like this one return value from EXCEPTION_DISPOSITION enum which has CamelCase constants.
84 return EXCEPTION_CONTINUE_EXECUTION;92 * UPPER_CASE EXCEPTION_CONTINUE_SEARCH and CamelCase ExceptionContinueSearch are different constants.
8593 */
86 return EXCEPTION_CONTINUE_SEARCH;94 if (!(ExceptionRecord->ExceptionFlags & EXCEPTION_UNWINDING) &&
87}95 !(ExceptionRecord->ExceptionFlags & EXCEPTION_NONCONTINUABLE) &&
96 ExceptionRecord->ExceptionCode == EXCEPTION_SET_THREAD_NAME)
97 return ExceptionContinueExecution;
8898
89static PVOID (WINAPI *AddVectoredExceptionHandlerFuncPtr) (ULONG, PVECTORED_EXCEPTION_HANDLER);99 return ExceptionContinueSearch;
90static ULONG (WINAPI *RemoveVectoredExceptionHandlerFuncPtr) (PVOID);
91
92static void __attribute__((constructor))
93ctor (void)
94{
95 HMODULE module = GetModuleHandleA("kernel32.dll");
96 if (module) {
97 AddVectoredExceptionHandlerFuncPtr = (__typeof__(AddVectoredExceptionHandlerFuncPtr)) GetProcAddress(module, "AddVectoredExceptionHandler");
98 RemoveVectoredExceptionHandlerFuncPtr = (__typeof__(RemoveVectoredExceptionHandlerFuncPtr)) GetProcAddress(module, "RemoveVectoredExceptionHandler");
99 }
100}100}
101#endif101#endif
102102
...@@ -108,6 +108,9 @@ typedef struct _THREADNAME_INFO...@@ -108,6 +108,9 @@ typedef struct _THREADNAME_INFO
108 DWORD dwFlags; /* reserved for future use, must be zero */108 DWORD dwFlags; /* reserved for future use, must be zero */
109} THREADNAME_INFO;109} THREADNAME_INFO;
110110
111#if !defined(_MSC_VER) && !defined(__i386__) && defined(SEH_INLINE_ASM)
112WINPTHREADS_ATTRIBUTE((noinline)) /* required for asm .seh_handler directive */
113#endif
111static void114static void
112SetThreadName (DWORD dwThreadID, LPCSTR szThreadName)115SetThreadName (DWORD dwThreadID, LPCSTR szThreadName)
113{116{
...@@ -121,7 +124,10 @@ SetThreadName (DWORD dwThreadID, LPCSTR szThreadName)...@@ -121,7 +124,10 @@ SetThreadName (DWORD dwThreadID, LPCSTR szThreadName)
121124
122 infosize = sizeof (info) / sizeof (ULONG_PTR);125 infosize = sizeof (info) / sizeof (ULONG_PTR);
123126
124#if defined(_MSC_VER) && !defined (USE_VEH_FOR_MSC_SETTHREADNAME)127 /* Exception has to be processed otherwise it will crash the process. */
128
129#if defined(_MSC_VER)
130 /* msvc supports __try / __except syntax, so use it */
125 __try131 __try
126 {132 {
127 RaiseException (EXCEPTION_SET_THREAD_NAME, 0, infosize, (ULONG_PTR *)&info);133 RaiseException (EXCEPTION_SET_THREAD_NAME, 0, infosize, (ULONG_PTR *)&info);
...@@ -130,17 +136,31 @@ SetThreadName (DWORD dwThreadID, LPCSTR szThreadName)...@@ -130,17 +136,31 @@ SetThreadName (DWORD dwThreadID, LPCSTR szThreadName)
130 {136 {
131 }137 }
132#else138#else
133 /* Without a debugger we *must* have an exception handler,139 /* gcc does not support __try / __except syntax, so manually register SEH handler */
134 * otherwise raising an exception will crash the process.140#if defined(__i386__)
141 /* On 32-bit x86 is SEH handler registered and unregistered at runtime */
142 EXCEPTION_REGISTRATION_RECORD exception_record = {
143 .Next = (EXCEPTION_REGISTRATION_RECORD *) __readfsdword (0), /* current SEH handler */
144 .Handler = (PEXCEPTION_ROUTINE)(void*) SetThreadName_SEH,
145 };
146 __writefsdword (0, (DWORD) &exception_record); /* register our SEH handler */
147 RaiseException (EXCEPTION_SET_THREAD_NAME, 0, infosize, (ULONG_PTR *) &info);
148 __writefsdword (0, (DWORD) exception_record.Next); /* unregister our SEH handler */
149#elif defined(SEH_INLINE_ASM)
150 /* On other platforms SEH handlers are registered at compile time.
151 Assembler directive .seh_handler statically register SEH handler for
152 the whole current function. It does not matter at which line is this
153 directive called. It always applies for the whole function, so also
154 for code before the directive itself. As this function does not do
155 anything else, we can register our SEH handler for the whole function.
156 This function has to be marked as noinline to ensure that the SEH
157 handler would not be registered for a caller.
135 */158 */
136#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)159 asm volatile (".seh_handler %c0, " ASM_EXCEPT :: "i" (SetThreadName_SEH));
137 if ((!IsDebuggerPresent ()) && (SetThreadName_VEH_handle == NULL))160 RaiseException (EXCEPTION_SET_THREAD_NAME, 0, infosize, (ULONG_PTR *) &info);
138#else161#else
139 if (!IsDebuggerPresent ())162 /* Other compilers / platforms do not provide SEH support */
140#endif163#endif
141 return;
142
143 RaiseException (EXCEPTION_SET_THREAD_NAME, 0, infosize, (ULONG_PTR *) &info);
144#endif164#endif
145}165}
146166
...@@ -443,25 +463,10 @@ __dyn_tls_pthread (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)...@@ -443,25 +463,10 @@ __dyn_tls_pthread (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
443463
444 if (dwReason == DLL_PROCESS_DETACH)464 if (dwReason == DLL_PROCESS_DETACH)
445 {465 {
446#if defined(USE_VEH_FOR_MSC_SETTHREADNAME)
447 if (lpreserved == NULL && SetThreadName_VEH_handle != NULL)
448 {
449 if (RemoveVectoredExceptionHandlerFuncPtr != NULL)
450 RemoveVectoredExceptionHandlerFuncPtr (SetThreadName_VEH_handle);
451 SetThreadName_VEH_handle = NULL;
452 }
453#endif
454 free_pthread_mem ();466 free_pthread_mem ();
455 }467 }
456 else if (dwReason == DLL_PROCESS_ATTACH)468 else if (dwReason == DLL_PROCESS_ATTACH)
457 {469 {
458#if defined(USE_VEH_FOR_MSC_SETTHREADNAME)
459 if (AddVectoredExceptionHandlerFuncPtr != NULL)
460 SetThreadName_VEH_handle = AddVectoredExceptionHandlerFuncPtr (1, &SetThreadName_VEH);
461 else
462 SetThreadName_VEH_handle = NULL;
463 /* Can't do anything on error anyway, check for NULL later */
464#endif
465 }470 }
466 else if (dwReason == DLL_THREAD_DETACH)471 else if (dwReason == DLL_THREAD_DETACH)
467 {472 {
...@@ -520,13 +525,15 @@ __dyn_tls_pthread (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)...@@ -520,13 +525,15 @@ __dyn_tls_pthread (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
520525
521/* TLS-runtime section variable. */526/* TLS-runtime section variable. */
522527
523#if defined(_MSC_VER)
524/* Force a reference to _tls_used to make the linker create the TLS528/* Force a reference to _tls_used to make the linker create the TLS
525 * directory if it's not already there. (e.g. if __declspec(thread)529 * directory if it's not already there. (e.g. if __declspec(thread)
526 * is not used).530 * is not used).
527 * Force a reference to __xl_f to prevent whole program optimization531 * Force a reference to __xl_f to prevent whole program optimization
528 * from discarding the variable. */532 * from discarding the variable. */
529533#if defined(__GNUC__)
534extern const IMAGE_TLS_DIRECTORY _tls_used;
535static __attribute__((used)) const IMAGE_TLS_DIRECTORY *const _include_tls_used = &_tls_used;
536#elif defined(_MSC_VER)
530/* On x86, symbols are prefixed with an underscore. */537/* On x86, symbols are prefixed with an underscore. */
531# if defined(_M_IX86)538# if defined(_M_IX86)
532# pragma comment(linker, "/include:__tls_used")539# pragma comment(linker, "/include:__tls_used")
...@@ -544,8 +551,10 @@ __dyn_tls_pthread (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)...@@ -544,8 +551,10 @@ __dyn_tls_pthread (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
544# pragma section(".CRT$XLF", long, read)551# pragma section(".CRT$XLF", long, read)
545#endif552#endif
546553
554#if defined(__GNUC__)
555static __attribute__((used))
556#endif
547WINPTHREADS_ATTRIBUTE((WINPTHREADS_SECTION(".CRT$XLF")))557WINPTHREADS_ATTRIBUTE((WINPTHREADS_SECTION(".CRT$XLF")))
548extern const PIMAGE_TLS_CALLBACK __xl_f;
549const PIMAGE_TLS_CALLBACK __xl_f = __dyn_tls_pthread;558const PIMAGE_TLS_CALLBACK __xl_f = __dyn_tls_pthread;
550559
551/* Internal collect-once structure. */560/* Internal collect-once structure. */
...@@ -1277,9 +1286,7 @@ pthread_cancel (pthread_t t)...@@ -1277,9 +1286,7 @@ pthread_cancel (pthread_t t)
1277#else1286#else
1278#error Unsupported architecture1287#error Unsupported architecture
1279#endif1288#endif
1280#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
1281 SetThreadContext (tv->h, &ctxt);1289 SetThreadContext (tv->h, &ctxt);
1282#endif
12831290
1284 /* Also try deferred Cancelling */1291 /* Also try deferred Cancelling */
1285 tv->cancelled = 1;1292 tv->cancelled = 1;
...@@ -1516,9 +1523,7 @@ void _fpreset (void);...@@ -1516,9 +1523,7 @@ void _fpreset (void);
15161523
1517#if defined(__i386__)1524#if defined(__i386__)
1518/* Align ESP on 16-byte boundaries. */1525/* Align ESP on 16-byte boundaries. */
1519# if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2))
1520__attribute__((force_align_arg_pointer))1526__attribute__((force_align_arg_pointer))
1521# endif
1522#endif1527#endif
1523unsigned __stdcall1528unsigned __stdcall
1524pthread_create_wrapper (void *args)1529pthread_create_wrapper (void *args)
...@@ -1539,16 +1544,10 @@ pthread_create_wrapper (void *args)...@@ -1539,16 +1544,10 @@ pthread_create_wrapper (void *args)
1539 if (!setjmp(tv->jb))1544 if (!setjmp(tv->jb))
1540 {1545 {
1541 intptr_t trslt = (intptr_t) 128;1546 intptr_t trslt = (intptr_t) 128;
1542 /* Provide to this thread a default exception handler. */
1543 #ifdef __SEH__
1544 asm ("\t.tl_start:\n");
1545 #endif /* Call function and save return value */
1546 pthread_mutex_unlock (&mtx_pthr_locked);1547 pthread_mutex_unlock (&mtx_pthr_locked);
1548 /* Call function and save return value */
1547 if (tv->func)1549 if (tv->func)
1548 trslt = (intptr_t) tv->func(tv->ret_arg);1550 trslt = (intptr_t) tv->func(tv->ret_arg);
1549 #ifdef __SEH__
1550 asm ("\tnop\n\t.tl_end: nop\n");
1551 #endif
1552 pthread_mutex_lock (&mtx_pthr_locked);1551 pthread_mutex_lock (&mtx_pthr_locked);
1553 tv->ret_arg = (void*) trslt;1552 tv->ret_arg = (void*) trslt;
1554 /* Clean up destructors */1553 /* Clean up destructors */
...@@ -1585,19 +1584,6 @@ pthread_create_wrapper (void *args)...@@ -1585,19 +1584,6 @@ pthread_create_wrapper (void *args)
1585 Sleep (0);1584 Sleep (0);
1586 _endthreadex (rslt);1585 _endthreadex (rslt);
1587 return rslt;1586 return rslt;
1588
1589#if defined(__SEH__)
1590 asm(
1591#ifdef __arm__
1592 "\t.seh_handler __C_specific_handler, %except\n"
1593#else
1594 "\t.seh_handler __C_specific_handler, @except\n"
1595#endif
1596 "\t.seh_handlerdata\n"
1597 "\t.long 1\n"
1598 "\t.rva .tl_start, .tl_end, _gnu_exception_handler ,.tl_end\n"
1599 "\t.text\n");
1600#endif
1601}1587}
16021588
1603int1589int
...@@ -1608,6 +1594,7 @@ pthread_create (pthread_t *th, const pthread_attr_t *attr, void *(* func)(void *...@@ -1608,6 +1594,7 @@ pthread_create (pthread_t *th, const pthread_attr_t *attr, void *(* func)(void *
1608 struct _pthread_v *tv;1594 struct _pthread_v *tv;
1609 unsigned int ssize = 0;1595 unsigned int ssize = 0;
1610 pthread_spinlock_t new_spin_keys = PTHREAD_SPINLOCK_INITIALIZER;1596 pthread_spinlock_t new_spin_keys = PTHREAD_SPINLOCK_INITIALIZER;
1597 unsigned thrAddr; /* Dummy variable to pass a valid location to _beginthreadex (Win98). */
16111598
1612 if (attr && attr->s_size > UINT_MAX)1599 if (attr && attr->s_size > UINT_MAX)
1613 return EINVAL;1600 return EINVAL;
...@@ -1664,7 +1651,7 @@ pthread_create (pthread_t *th, const pthread_attr_t *attr, void *(* func)(void *...@@ -1664,7 +1651,7 @@ pthread_create (pthread_t *th, const pthread_attr_t *attr, void *(* func)(void *
1664 /* Make sure tv->h has value of INVALID_HANDLE_VALUE */1651 /* Make sure tv->h has value of INVALID_HANDLE_VALUE */
1665 _ReadWriteBarrier();1652 _ReadWriteBarrier();
16661653
1667 thrd = (HANDLE) _beginthreadex(NULL, ssize, pthread_create_wrapper, tv, 0x4/*CREATE_SUSPEND*/, NULL);1654 thrd = (HANDLE) _beginthreadex(NULL, ssize, pthread_create_wrapper, tv, 0x4/*CREATE_SUSPEND*/, &thrAddr);
1668 if (thrd == INVALID_HANDLE_VALUE)1655 if (thrd == INVALID_HANDLE_VALUE)
1669 thrd = 0;1656 thrd = 0;
1670 /* Failed */1657 /* Failed */
...@@ -1713,12 +1700,11 @@ pthread_create (pthread_t *th, const pthread_attr_t *attr, void *(* func)(void *...@@ -1713,12 +1700,11 @@ pthread_create (pthread_t *th, const pthread_attr_t *attr, void *(* func)(void *
1713int1700int
1714pthread_join (pthread_t t, void **res)1701pthread_join (pthread_t t, void **res)
1715{1702{
1716 DWORD dwFlags;
1717 struct _pthread_v *tv = __pth_gpointer_locked (t);1703 struct _pthread_v *tv = __pth_gpointer_locked (t);
1718 pthread_spinlock_t new_spin_keys = PTHREAD_SPINLOCK_INITIALIZER;1704 pthread_spinlock_t new_spin_keys = PTHREAD_SPINLOCK_INITIALIZER;
17191705
1720 if (!tv || tv->h == NULL || !GetHandleInformation(tv->h, &dwFlags))1706 CHECK_OBJECT(tv, ESRCH);
1721 return ESRCH;1707
1722 if ((tv->p_state & PTHREAD_CREATE_DETACHED) != 0)1708 if ((tv->p_state & PTHREAD_CREATE_DETACHED) != 0)
1723 return EINVAL;1709 return EINVAL;
1724 if (pthread_equal(pthread_self(), t))1710 if (pthread_equal(pthread_self(), t))
...@@ -1744,14 +1730,13 @@ pthread_join (pthread_t t, void **res)...@@ -1744,14 +1730,13 @@ pthread_join (pthread_t t, void **res)
1744int1730int
1745_pthread_tryjoin (pthread_t t, void **res)1731_pthread_tryjoin (pthread_t t, void **res)
1746{1732{
1747 DWORD dwFlags;
1748 struct _pthread_v *tv;1733 struct _pthread_v *tv;
1749 pthread_spinlock_t new_spin_keys = PTHREAD_SPINLOCK_INITIALIZER;1734 pthread_spinlock_t new_spin_keys = PTHREAD_SPINLOCK_INITIALIZER;
17501735
1751 pthread_mutex_lock (&mtx_pthr_locked);1736 pthread_mutex_lock (&mtx_pthr_locked);
1752 tv = __pthread_get_pointer (t);1737 tv = __pthread_get_pointer (t);
17531738
1754 if (!tv || tv->h == NULL || !GetHandleInformation(tv->h, &dwFlags))1739 if (!tv || !TEST_HANDLE(tv->h))
1755 {1740 {
1756 pthread_mutex_unlock (&mtx_pthr_locked);1741 pthread_mutex_unlock (&mtx_pthr_locked);
1757 return ESRCH;1742 return ESRCH;
...@@ -1798,13 +1783,12 @@ int...@@ -1798,13 +1783,12 @@ int
1798pthread_detach (pthread_t t)1783pthread_detach (pthread_t t)
1799{1784{
1800 int r = 0;1785 int r = 0;
1801 DWORD dwFlags;
1802 struct _pthread_v *tv = __pth_gpointer_locked (t);1786 struct _pthread_v *tv = __pth_gpointer_locked (t);
1803 HANDLE dw;1787 HANDLE dw;
1804 pthread_spinlock_t new_spin_keys = PTHREAD_SPINLOCK_INITIALIZER;1788 pthread_spinlock_t new_spin_keys = PTHREAD_SPINLOCK_INITIALIZER;
18051789
1806 pthread_mutex_lock (&mtx_pthr_locked);1790 pthread_mutex_lock (&mtx_pthr_locked);
1807 if (!tv || tv->h == NULL || !GetHandleInformation(tv->h, &dwFlags))1791 if (!tv || !TEST_HANDLE(tv->h))
1808 {1792 {
1809 pthread_mutex_unlock (&mtx_pthr_locked);1793 pthread_mutex_unlock (&mtx_pthr_locked);
1810 return ESRCH;1794 return ESRCH;
...@@ -1897,8 +1881,8 @@ pthread_setname_np (pthread_t thread, const char *name)...@@ -1897,8 +1881,8 @@ pthread_setname_np (pthread_t thread, const char *name)
1897int1881int
1898pthread_getname_np (pthread_t thread, char *name, size_t len)1882pthread_getname_np (pthread_t thread, char *name, size_t len)
1899{1883{
1900 HRESULT result;
1901 struct _pthread_v *tv;1884 struct _pthread_v *tv;
1885 size_t thread_name_len;
19021886
1903 if (name == NULL)1887 if (name == NULL)
1904 return EINVAL;1888 return EINVAL;
...@@ -1917,12 +1901,10 @@ pthread_getname_np (pthread_t thread, char *name, size_t len)...@@ -1917,12 +1901,10 @@ pthread_getname_np (pthread_t thread, char *name, size_t len)
1917 return 0;1901 return 0;
1918 }1902 }
19191903
1920 if (strlen (tv->thread_name) >= len)1904 thread_name_len = strlen (tv->thread_name);
1905 if (thread_name_len >= len)
1921 return ERANGE;1906 return ERANGE;
19221907
1923 result = StringCchCopyNA (name, len, tv->thread_name, len - 1);1908 memcpy (name, tv->thread_name, thread_name_len + 1);
1924 if (SUCCEEDED (result))1909 return 0;
1925 return 0;
1926
1927 return ERANGE;
1928}1910}
lib/libc/mingw/winpthreads/wpth_ver.h+2-1
...@@ -24,6 +24,7 @@...@@ -24,6 +24,7 @@
24#define __WPTHREADS_VERSION__24#define __WPTHREADS_VERSION__
2525
26#define WPTH_VERSION 1,0,0,026#define WPTH_VERSION 1,0,0,0
27#define WPTH_VERSION_STRING "1, 0, 0, 0\0"27#define WPTH_VERSION_STRING "1, 0, 0, 0"
28#define WPTH_VERSION_MAJOR_STRING "1"
2829
29#endif30#endif
src/libs/mingw.zig+50-9
...@@ -519,7 +519,22 @@ const mingw32_generic_src = [_][]const u8{...@@ -519,7 +519,22 @@ const mingw32_generic_src = [_][]const u8{
519 "gdtoa" ++ path.sep_str ++ "strtopx.c",519 "gdtoa" ++ path.sep_str ++ "strtopx.c",
520 "gdtoa" ++ path.sep_str ++ "sum.c",520 "gdtoa" ++ path.sep_str ++ "sum.c",
521 "gdtoa" ++ path.sep_str ++ "ulp.c",521 "gdtoa" ++ path.sep_str ++ "ulp.c",
522 "math" ++ path.sep_str ++ "acospi.c",
523 "math" ++ path.sep_str ++ "acospif.c",
524 "math" ++ path.sep_str ++ "acospil.c",
525 "math" ++ path.sep_str ++ "asinpi.c",
526 "math" ++ path.sep_str ++ "asinpif.c",
527 "math" ++ path.sep_str ++ "asinpil.c",
528 "math" ++ path.sep_str ++ "atanpi.c",
529 "math" ++ path.sep_str ++ "atanpif.c",
530 "math" ++ path.sep_str ++ "atanpil.c",
531 "math" ++ path.sep_str ++ "atan2pi.c",
532 "math" ++ path.sep_str ++ "atan2pif.c",
533 "math" ++ path.sep_str ++ "atan2pil.c",
522 "math" ++ path.sep_str ++ "coshl.c",534 "math" ++ path.sep_str ++ "coshl.c",
535 "math" ++ path.sep_str ++ "cospi.c",
536 "math" ++ path.sep_str ++ "cospif.c",
537 "math" ++ path.sep_str ++ "cospil.c",
523 "math" ++ path.sep_str ++ "fpclassify.c",538 "math" ++ path.sep_str ++ "fpclassify.c",
524 "math" ++ path.sep_str ++ "fpclassifyf.c",539 "math" ++ path.sep_str ++ "fpclassifyf.c",
525 "math" ++ path.sep_str ++ "fpclassifyl.c",540 "math" ++ path.sep_str ++ "fpclassifyl.c",
...@@ -535,8 +550,18 @@ const mingw32_generic_src = [_][]const u8{...@@ -535,8 +550,18 @@ const mingw32_generic_src = [_][]const u8{
535 "math" ++ path.sep_str ++ "signbitl.c",550 "math" ++ path.sep_str ++ "signbitl.c",
536 "math" ++ path.sep_str ++ "signgam.c",551 "math" ++ path.sep_str ++ "signgam.c",
537 "math" ++ path.sep_str ++ "sinhl.c",552 "math" ++ path.sep_str ++ "sinhl.c",
553 "math" ++ path.sep_str ++ "sinpi.c",
554 "math" ++ path.sep_str ++ "sinpif.c",
555 "math" ++ path.sep_str ++ "sinpil.c",
538 "math" ++ path.sep_str ++ "tanhl.c",556 "math" ++ path.sep_str ++ "tanhl.c",
557 "math" ++ path.sep_str ++ "tanpi.c",
558 "math" ++ path.sep_str ++ "tanpif.c",
559 "math" ++ path.sep_str ++ "tanpil.c",
560 "misc" ++ path.sep_str ++ "__mingw_filename_cp.c",
561 "misc" ++ path.sep_str ++ "__mingw_isleadbyte_cp.c",
562 "misc" ++ path.sep_str ++ "_assert.c",
539 "misc" ++ path.sep_str ++ "alarm.c",563 "misc" ++ path.sep_str ++ "alarm.c",
564 "misc" ++ path.sep_str ++ "btowc.c",
540 "misc" ++ path.sep_str ++ "delay-f.c",565 "misc" ++ path.sep_str ++ "delay-f.c",
541 "misc" ++ path.sep_str ++ "delay-n.c",566 "misc" ++ path.sep_str ++ "delay-n.c",
542 "misc" ++ path.sep_str ++ "delayimp.c",567 "misc" ++ path.sep_str ++ "delayimp.c",
...@@ -544,7 +569,10 @@ const mingw32_generic_src = [_][]const u8{...@@ -544,7 +569,10 @@ const mingw32_generic_src = [_][]const u8{
544 "misc" ++ path.sep_str ++ "dirname.c",569 "misc" ++ path.sep_str ++ "dirname.c",
545 "misc" ++ path.sep_str ++ "dllmain.c",570 "misc" ++ path.sep_str ++ "dllmain.c",
546 "misc" ++ path.sep_str ++ "feclearexcept.c",571 "misc" ++ path.sep_str ++ "feclearexcept.c",
572 "misc" ++ path.sep_str ++ "fedisableexcept.c",
573 "misc" ++ path.sep_str ++ "feenableexcept.c",
547 "misc" ++ path.sep_str ++ "fegetenv.c",574 "misc" ++ path.sep_str ++ "fegetenv.c",
575 "misc" ++ path.sep_str ++ "fegetexcept.c",
548 "misc" ++ path.sep_str ++ "fegetexceptflag.c",576 "misc" ++ path.sep_str ++ "fegetexceptflag.c",
549 "misc" ++ path.sep_str ++ "fegetround.c",577 "misc" ++ path.sep_str ++ "fegetround.c",
550 "misc" ++ path.sep_str ++ "feholdexcept.c",578 "misc" ++ path.sep_str ++ "feholdexcept.c",
...@@ -556,7 +584,8 @@ const mingw32_generic_src = [_][]const u8{...@@ -556,7 +584,8 @@ const mingw32_generic_src = [_][]const u8{
556 "misc" ++ path.sep_str ++ "mingw_controlfp.c",584 "misc" ++ path.sep_str ++ "mingw_controlfp.c",
557 "misc" ++ path.sep_str ++ "mingw_setfp.c",585 "misc" ++ path.sep_str ++ "mingw_setfp.c",
558 "misc" ++ path.sep_str ++ "feupdateenv.c",586 "misc" ++ path.sep_str ++ "feupdateenv.c",
559 "misc" ++ path.sep_str ++ "ftruncate.c",587 "misc" ++ path.sep_str ++ "ftime32.c",
588 "misc" ++ path.sep_str ++ "ftime64.c",
560 "misc" ++ path.sep_str ++ "ftw32.c",589 "misc" ++ path.sep_str ++ "ftw32.c",
561 "misc" ++ path.sep_str ++ "ftw32i64.c",590 "misc" ++ path.sep_str ++ "ftw32i64.c",
562 "misc" ++ path.sep_str ++ "ftw64.c",591 "misc" ++ path.sep_str ++ "ftw64.c",
...@@ -565,6 +594,8 @@ const mingw32_generic_src = [_][]const u8{...@@ -565,6 +594,8 @@ const mingw32_generic_src = [_][]const u8{
565 "misc" ++ path.sep_str ++ "getlogin.c",594 "misc" ++ path.sep_str ++ "getlogin.c",
566 "misc" ++ path.sep_str ++ "getopt.c",595 "misc" ++ path.sep_str ++ "getopt.c",
567 "misc" ++ path.sep_str ++ "gettimeofday.c",596 "misc" ++ path.sep_str ++ "gettimeofday.c",
597 "misc" ++ path.sep_str ++ "memalignment.c",
598 "misc" ++ path.sep_str ++ "memset_explicit.c",
568 "misc" ++ path.sep_str ++ "mingw-access.c",599 "misc" ++ path.sep_str ++ "mingw-access.c",
569 "misc" ++ path.sep_str ++ "mingw-aligned-malloc.c",600 "misc" ++ path.sep_str ++ "mingw-aligned-malloc.c",
570 "misc" ++ path.sep_str ++ "mingw_getsp.S",601 "misc" ++ path.sep_str ++ "mingw_getsp.S",
...@@ -575,6 +606,7 @@ const mingw32_generic_src = [_][]const u8{...@@ -575,6 +606,7 @@ const mingw32_generic_src = [_][]const u8{
575 "misc" ++ path.sep_str ++ "mingw_wcstod.c",606 "misc" ++ path.sep_str ++ "mingw_wcstod.c",
576 "misc" ++ path.sep_str ++ "mingw_wcstof.c",607 "misc" ++ path.sep_str ++ "mingw_wcstof.c",
577 "misc" ++ path.sep_str ++ "mingw_wcstold.c",608 "misc" ++ path.sep_str ++ "mingw_wcstold.c",
609 "misc" ++ path.sep_str ++ "mkdtemp.c",
578 "misc" ++ path.sep_str ++ "mkstemp.c",610 "misc" ++ path.sep_str ++ "mkstemp.c",
579 "misc" ++ path.sep_str ++ "sleep.c",611 "misc" ++ path.sep_str ++ "sleep.c",
580 "misc" ++ path.sep_str ++ "strsafe.c",612 "misc" ++ path.sep_str ++ "strsafe.c",
...@@ -583,23 +615,22 @@ const mingw32_generic_src = [_][]const u8{...@@ -583,23 +615,22 @@ const mingw32_generic_src = [_][]const u8{
583 "misc" ++ path.sep_str ++ "tfind.c",615 "misc" ++ path.sep_str ++ "tfind.c",
584 "misc" ++ path.sep_str ++ "tsearch.c",616 "misc" ++ path.sep_str ++ "tsearch.c",
585 "misc" ++ path.sep_str ++ "twalk.c",617 "misc" ++ path.sep_str ++ "twalk.c",
618 "misc" ++ path.sep_str ++ "wctob.c",
586 "misc" ++ path.sep_str ++ "wdirent.c",619 "misc" ++ path.sep_str ++ "wdirent.c",
620 "stdio" ++ path.sep_str ++ "__mingw_fix_fstat_finish.c",
621 "stdio" ++ path.sep_str ++ "__mingw_fix_stat_fallback_fd.c",
622 "stdio" ++ path.sep_str ++ "__mingw_fix_stat_finish.c",
587 "stdio" ++ path.sep_str ++ "__mingw_fix_stat_path.c",623 "stdio" ++ path.sep_str ++ "__mingw_fix_stat_path.c",
624 "stdio" ++ path.sep_str ++ "__mingw_fix_wstat_fallback_fd.c",
588 "stdio" ++ path.sep_str ++ "__mingw_fix_wstat_path.c",625 "stdio" ++ path.sep_str ++ "__mingw_fix_wstat_path.c",
589 "stdio" ++ path.sep_str ++ "asprintf.c",626 "stdio" ++ path.sep_str ++ "asprintf.c",
590 "stdio" ++ path.sep_str ++ "fopen64.c",
591 "stdio" ++ path.sep_str ++ "fseeko32.c",
592 "stdio" ++ path.sep_str ++ "fseeko64.c",
593 "stdio" ++ path.sep_str ++ "ftello.c",
594 "stdio" ++ path.sep_str ++ "ftello64.c",
595 "stdio" ++ path.sep_str ++ "ftruncate64.c",
596 "stdio" ++ path.sep_str ++ "lltoa.c",627 "stdio" ++ path.sep_str ++ "lltoa.c",
597 "stdio" ++ path.sep_str ++ "lltow.c",628 "stdio" ++ path.sep_str ++ "lltow.c",
598 "stdio" ++ path.sep_str ++ "lseek64.c",
599 "stdio" ++ path.sep_str ++ "mingw_asprintf.c",629 "stdio" ++ path.sep_str ++ "mingw_asprintf.c",
600 "stdio" ++ path.sep_str ++ "mingw_fprintf.c",630 "stdio" ++ path.sep_str ++ "mingw_fprintf.c",
601 "stdio" ++ path.sep_str ++ "mingw_fwprintf.c",631 "stdio" ++ path.sep_str ++ "mingw_fwprintf.c",
602 "stdio" ++ path.sep_str ++ "mingw_fscanf.c",632 "stdio" ++ path.sep_str ++ "mingw_fscanf.c",
633 "stdio" ++ path.sep_str ++ "mingw_ftruncate64.c",
603 "stdio" ++ path.sep_str ++ "mingw_fwscanf.c",634 "stdio" ++ path.sep_str ++ "mingw_fwscanf.c",
604 "stdio" ++ path.sep_str ++ "mingw_pformat.c",635 "stdio" ++ path.sep_str ++ "mingw_pformat.c",
605 "stdio" ++ path.sep_str ++ "mingw_sformat.c",636 "stdio" ++ path.sep_str ++ "mingw_sformat.c",
...@@ -631,6 +662,7 @@ const mingw32_generic_src = [_][]const u8{...@@ -631,6 +662,7 @@ const mingw32_generic_src = [_][]const u8{
631 "stdio" ++ path.sep_str ++ "snprintf.c",662 "stdio" ++ path.sep_str ++ "snprintf.c",
632 "stdio" ++ path.sep_str ++ "snwprintf.c",663 "stdio" ++ path.sep_str ++ "snwprintf.c",
633 "stdio" ++ path.sep_str ++ "truncate.c",664 "stdio" ++ path.sep_str ++ "truncate.c",
665 "stdio" ++ path.sep_str ++ "truncate64.c",
634 "stdio" ++ path.sep_str ++ "ulltoa.c",666 "stdio" ++ path.sep_str ++ "ulltoa.c",
635 "stdio" ++ path.sep_str ++ "ulltow.c",667 "stdio" ++ path.sep_str ++ "ulltow.c",
636 "stdio" ++ path.sep_str ++ "vasprintf.c",668 "stdio" ++ path.sep_str ++ "vasprintf.c",
...@@ -640,6 +672,10 @@ const mingw32_generic_src = [_][]const u8{...@@ -640,6 +672,10 @@ const mingw32_generic_src = [_][]const u8{
640 // mingwthrd672 // mingwthrd
641 "libsrc" ++ path.sep_str ++ "mingwthrd_mt.c",673 "libsrc" ++ path.sep_str ++ "mingwthrd_mt.c",
642 // ucrtbase674 // ucrtbase
675 "ctype" ++ path.sep_str ++ "_iscsym_l.c",
676 "ctype" ++ path.sep_str ++ "_iscsymf_l.c",
677 "ctype" ++ path.sep_str ++ "iswctype.c",
678 "ctype" ++ path.sep_str ++ "towctrans.c",
643 "math" ++ path.sep_str ++ "_huge.c",679 "math" ++ path.sep_str ++ "_huge.c",
644 "misc" ++ path.sep_str ++ "__initenv.c",680 "misc" ++ path.sep_str ++ "__initenv.c",
645 "misc" ++ path.sep_str ++ "__winitenv.c",681 "misc" ++ path.sep_str ++ "__winitenv.c",
...@@ -651,14 +687,20 @@ const mingw32_generic_src = [_][]const u8{...@@ -651,14 +687,20 @@ const mingw32_generic_src = [_][]const u8{
651 "misc" ++ path.sep_str ++ "ucrt__wgetmainargs.c",687 "misc" ++ path.sep_str ++ "ucrt__wgetmainargs.c",
652 "misc" ++ path.sep_str ++ "ucrt_amsg_exit.c",688 "misc" ++ path.sep_str ++ "ucrt_amsg_exit.c",
653 "misc" ++ path.sep_str ++ "ucrt_at_quick_exit.c",689 "misc" ++ path.sep_str ++ "ucrt_at_quick_exit.c",
690 "misc" ++ path.sep_str ++ "ucrt_mbsinit.c",
654 "misc" ++ path.sep_str ++ "ucrt_tzset.c",691 "misc" ++ path.sep_str ++ "ucrt_tzset.c",
692 "stdio" ++ path.sep_str ++ "msvcr80plus_ftruncate64.c",
655 "stdio" ++ path.sep_str ++ "ucrt__scprintf.c",693 "stdio" ++ path.sep_str ++ "ucrt__scprintf.c",
694 "stdio" ++ path.sep_str ++ "ucrt__scwprintf.c",
656 "stdio" ++ path.sep_str ++ "ucrt__snprintf.c",695 "stdio" ++ path.sep_str ++ "ucrt__snprintf.c",
657 "stdio" ++ path.sep_str ++ "ucrt__snscanf.c",696 "stdio" ++ path.sep_str ++ "ucrt__snscanf.c",
658 "stdio" ++ path.sep_str ++ "ucrt__snwprintf.c",697 "stdio" ++ path.sep_str ++ "ucrt__snwprintf.c",
698 "stdio" ++ path.sep_str ++ "ucrt__swprintf.c",
659 "stdio" ++ path.sep_str ++ "ucrt__vscprintf.c",699 "stdio" ++ path.sep_str ++ "ucrt__vscprintf.c",
700 "stdio" ++ path.sep_str ++ "ucrt__vscwprintf.c",
660 "stdio" ++ path.sep_str ++ "ucrt__vsnprintf.c",701 "stdio" ++ path.sep_str ++ "ucrt__vsnprintf.c",
661 "stdio" ++ path.sep_str ++ "ucrt__vsnwprintf.c",702 "stdio" ++ path.sep_str ++ "ucrt__vsnwprintf.c",
703 "stdio" ++ path.sep_str ++ "ucrt__vswprintf.c",
662 "stdio" ++ path.sep_str ++ "ucrt___local_stdio_printf_options.c",704 "stdio" ++ path.sep_str ++ "ucrt___local_stdio_printf_options.c",
663 "stdio" ++ path.sep_str ++ "ucrt___local_stdio_scanf_options.c",705 "stdio" ++ path.sep_str ++ "ucrt___local_stdio_scanf_options.c",
664 "stdio" ++ path.sep_str ++ "ucrt_fprintf.c",706 "stdio" ++ path.sep_str ++ "ucrt_fprintf.c",
...@@ -691,7 +733,6 @@ const mingw32_generic_src = [_][]const u8{...@@ -691,7 +733,6 @@ const mingw32_generic_src = [_][]const u8{
691 "stdio" ++ path.sep_str ++ "ucrt_wprintf.c",733 "stdio" ++ path.sep_str ++ "ucrt_wprintf.c",
692 "string" ++ path.sep_str ++ "ucrt__wcstok.c",734 "string" ++ path.sep_str ++ "ucrt__wcstok.c",
693 // uuid735 // uuid
694 "libsrc" ++ path.sep_str ++ "ativscp-uuid.c",
695 "libsrc" ++ path.sep_str ++ "atsmedia-uuid.c",736 "libsrc" ++ path.sep_str ++ "atsmedia-uuid.c",
696 "libsrc" ++ path.sep_str ++ "bth-uuid.c",737 "libsrc" ++ path.sep_str ++ "bth-uuid.c",
697 "libsrc" ++ path.sep_str ++ "cguid-uuid.c",738 "libsrc" ++ path.sep_str ++ "cguid-uuid.c",