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 @@
1313#include <signal.h>
1414#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
1620#pragma pack(push,1)
1721typedef struct _UNWIND_INFO {
18 BYTE VersionAndFlags;
22 BYTE Version:3;
23 BYTE Flags:5;
1924 BYTE PrologSize;
2025 BYTE CountOfUnwindCodes;
2126 BYTE FrameRegisterAndOffset;
......@@ -27,16 +32,11 @@ PIMAGE_SECTION_HEADER _FindPESectionByName (const char *);
2732PIMAGE_SECTION_HEADER _FindPESectionExec (size_t);
2833PBYTE _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
3635#define MAX_PDATA_ENTRIES 32
3736static RUNTIME_FUNCTION emu_pdata[MAX_PDATA_ENTRIES];
3837static UNWIND_INFO emu_xdata[MAX_PDATA_ENTRIES];
3938
39int __mingw_init_ehandler (void);
4040int
4141__mingw_init_ehandler (void)
4242{
......@@ -55,7 +55,8 @@ __mingw_init_ehandler (void)
5555 /* Fill tables and entries. */
5656 while (e < MAX_PDATA_ENTRIES && (pSec = _FindPESectionExec (e)) != NULL)
5757 {
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;
5960 emu_xdata[e].AddressOfExceptionHandler =
6061 (DWORD)(size_t) ((LPBYTE)__mingw_SEH_error_handler - _ImageBase);
6162 emu_pdata[e].BeginAddress = pSec->VirtualAddress;
......@@ -74,203 +75,45 @@ __mingw_init_ehandler (void)
7475 return 1;
7576}
7677
77extern void _fpreset (void);
78#endif
7879
79EXCEPTION_DISPOSITION
80#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
8085__mingw_SEH_error_handler (struct _EXCEPTION_RECORD* ExceptionRecord,
8186 void *EstablisherFrame __attribute__ ((unused)),
82 struct _CONTEXT* ContextRecord __attribute__ ((unused)),
87 struct _CONTEXT* ContextRecord,
8388 void *DispatcherContext __attribute__ ((unused)))
8489{
85 EXCEPTION_DISPOSITION action = ExceptionContinueSearch; /* EXCEPTION_CONTINUE_SEARCH; */
86 void (*old_handler) (int);
87 int reset_fpu = 0;
88
89 switch (ExceptionRecord->ExceptionCode)
90 long action;
91
92 if (ExceptionRecord->ExceptionFlags & EXCEPTION_UNWINDING)
93 return ExceptionContinueSearch;
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)
90107 {
91 case EXCEPTION_ACCESS_VIOLATION:
92 /* test if the user has set SIGSEGV */
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}
108 case EXCEPTION_CONTINUE_SEARCH:
109 return ExceptionContinueSearch;
169110
170#endif
111 case EXCEPTION_CONTINUE_EXECUTION:
112 return ExceptionContinueExecution;
171113
172LPTOP_LEVEL_EXCEPTION_FILTER __mingw_oldexcpt_handler = NULL;
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
114 case EXCEPTION_EXECUTE_HANDLER:
269115 default:
270 break;
116 /* msvc CRT EXE exception handler just exit process with exception code */
117 _exit(ExceptionRecord->ExceptionCode);
271118 }
272
273 if (action == EXCEPTION_CONTINUE_SEARCH && __mingw_oldexcpt_handler)
274 action = (*__mingw_oldexcpt_handler)(exception_data);
275 return action;
276119}
lib/libc/mingw/crt/crtdll.c+3-2
......@@ -4,7 +4,6 @@
44 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
55 */
66
7#include <oscalls.h>
87#include <internal.h>
98#include <stdlib.h>
109#include <windows.h>
......@@ -147,7 +146,9 @@ DllMainCRTStartup (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
147146{
148147 WINBOOL retcode = TRUE;
149148
150 __mingw_app_type = 0;
149 if (dwReason == DLL_PROCESS_ATTACH)
150 __mingw_app_type = 0;
151
151152 __native_dllmain_reason = dwReason;
152153 if (dwReason == DLL_PROCESS_DETACH && __proc_attached <= 0)
153154 {
lib/libc/mingw/crt/crtexe.c+144-121
......@@ -4,25 +4,37 @@
44 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
55 */
66
7#include <oscalls.h>
87#include <internal.h>
8#include <excpt.h>
99#include <process.h>
1010#include <signal.h>
1111#include <math.h>
1212#include <stdlib.h>
13#include <stdio.h>
1314#include <tchar.h>
1415#include <sect_attribs.h>
1516#include <locale.h>
17#include <float.h>
1618#include <corecrt_startup.h>
1719
1820#if defined(__SEH__) && (!defined(__clang__) || __clang_major__ >= 7)
1921#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
2034#endif
2135
2236extern IMAGE_DOS_HEADER __ImageBase;
2337
24extern void _fpreset (void);
25
2638int *__cdecl __p__commode(void);
2739
2840#undef _fmode
......@@ -30,8 +42,7 @@ extern int _fmode;
3042#undef _commode
3143extern int _commode;
3244extern int _dowildcard;
33
34extern _CRTIMP void __cdecl _initterm(_PVFV *, _PVFV *);
45extern int __globallocalestatus;
3546
3647static int __cdecl check_managed_app (void);
3748
......@@ -51,19 +62,15 @@ extern void __main(void);
5162static _TCHAR **argv;
5263static _TCHAR **envp;
5364
54static int mainret=0;
5565static int managedapp;
5666static int has_cctor = 0;
57extern LPTOP_LEVEL_EXCEPTION_FILTER __mingw_oldexcpt_handler;
5867
5968extern void _pei386_runtime_relocator (void);
60long CALLBACK _gnu_exception_handler (EXCEPTION_POINTERS * exception_data);
61static void duplicate_ppstrings (int ac, _TCHAR ***av);
62
63static int __cdecl pre_c_init (void);
64static void __cdecl pre_cpp_init (void);
65_CRTALLOC(".CRT$XIAA") _PIFV __mingw_pcinit = pre_c_init;
66_CRTALLOC(".CRT$XCAA") _PVFV __mingw_pcppinit = pre_cpp_init;
69EXCEPTION_DISPOSITION __cdecl __mingw_SEH_error_handler (struct _EXCEPTION_RECORD *, void *, struct _CONTEXT *, void *);
70#if defined(__x86_64__) && !defined(SEH_INLINE_ASM)
71int __mingw_init_ehandler (void);
72#endif
73static int duplicate_ppstrings (int ac, _TCHAR ***av);
6774
6875extern int _MINGW_INSTALL_DEBUG_MATHERR;
6976
......@@ -85,112 +92,58 @@ __mingw_invalidParameterHandler (const wchar_t * __UNUSED_PARAM_1(expression),
8592#endif
8693}
8794
88static int __cdecl
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;
95#define GCC_MAGIC (('G' << 16) | ('C' << 8) | 'C' | (1U << 29))
10096
101#ifdef _UNICODE
102 ret = _wsetargv();
103#else
104 ret = _setargv();
97#if defined(__i386__) || defined(_X86_)
98/* We need to make sure that we align the stack to 16 bytes for the sake of SSE */
99__attribute__((force_align_arg_pointer))
105100#endif
106 if (ret < 0)
107 _amsg_exit(8); /* _RT_SPACEARG */
108 if (_MINGW_INSTALL_DEBUG_MATHERR == 1)
109 {
110 __setusermatherr (_matherr);
111 }
112
113 if (__globallocalestatus == -1)
114 {
115 }
116 return 0;
101static LONG WINAPI
102cpp_unhandled_exception_filter (EXCEPTION_POINTERS *exception_data)
103{
104 /* C++ gcc SEH exception is thrown by the libgcc __cxa_throw() function
105 * (which calls _Unwind_RaiseException()) or _Unwind_ForcedUnwind() function
106 * as a normal continuable SEH exception with the STATUS_GCC_THROW (0x20474343)
107 * or STATUS_GCC_FORCED (0x22474343) exception code via the WinAPI RaiseException()
108 * call. Both _Unwind_RaiseException() and _Unwind_ForcedUnwind() are expected
109 * to return back to the caller (for example __cxa_throw()) if the exception
110 * was not handled. So if the gcc SEH exception reaches the application
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;
117123}
118124
119static void __cdecl
120pre_cpp_init (void)
125static void
126safe_flush (void)
121127{
122 _startupinfo startinfo;
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 */
128 fflush (NULL);
134129}
135130
136131static int __tmainCRTStartup (void);
137132
138133int WinMainCRTStartup (void);
139
140134__attribute__((used)) /* required due to GNU LD bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30300 */
141135int WinMainCRTStartup (void)
142136{
143 int ret = 255;
144#ifdef SEH_INLINE_ASM
145 asm ("\t.l_startw:\n");
146#endif
147137 __mingw_app_type = 1;
148 ret = __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;
138 return __tmainCRTStartup ();
163139}
164140
165141int mainCRTStartup (void);
166
167#if defined(__x86_64__) && !defined(__SEH__)
168int __mingw_init_ehandler (void);
169#endif
170
171142__attribute__((used)) /* required due to GNU LD bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30300 */
172143int mainCRTStartup (void)
173144{
174 int ret = 255;
175#ifdef SEH_INLINE_ASM
176 asm ("\t.l_start:\n");
177#endif
178145 __mingw_app_type = 0;
179 ret = __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;
146 return __tmainCRTStartup ();
194147}
195148
196149static
......@@ -202,9 +155,27 @@ __attribute__((force_align_arg_pointer))
202155__declspec(noinline) int
203156__tmainCRTStartup (void)
204157{
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
205174 void *lock_free = NULL;
206175 void *fiberid = ((PNT_TIB)NtCurrentTeb())->StackBase;
207176 BOOL nested = FALSE;
177 _startupinfo startinfo;
178 int ret = 0;
208179 while((lock_free = InterlockedCompareExchangePointer (&__native_startup_lock,
209180 fiberid, NULL)) != 0)
210181 {
......@@ -222,48 +193,97 @@ __tmainCRTStartup (void)
222193 else if (__native_startup_state == __uninitialized)
223194 {
224195 __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
225241 if (_initterm_e (__xi_a, __xi_z) != 0)
226 return 255;
227 }
228 else
229 has_cctor = 1;
242 _amsg_exit (10); /* _RT_ABORT */
230243
231 if (__native_startup_state == __initializing)
232 {
244 startinfo.newmode = _newmode;
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);
233258 _initterm (__xc_a, __xc_z);
259 __main (); /* C++ initialization. */
260
234261 __native_startup_state = __initialized;
235262 }
236 _ASSERTE(__native_startup_state == __initialized);
263 else
264 has_cctor = 1;
237265 if (! nested)
238266 (VOID)InterlockedExchangePointer (&__native_startup_lock, NULL);
239267
240268 if (__dyn_tls_init_callback != NULL)
241269 __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. */
254271#ifdef _UNICODE
255272 __winitenv = envp;
256273#else
257274 __initenv = envp;
258275#endif
259 mainret = _tmain (argc, argv, envp);
276 ret = _tmain (argc, argv, envp);
260277 if (!managedapp)
261 exit (mainret);
278 exit (ret);
262279
263280 if (has_cctor == 0)
264281 _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;
267287}
268288
269289extern int __mingw_initltsdrot_force;
......@@ -307,21 +327,24 @@ check_managed_app (void)
307327 return 0;
308328}
309329
310static void duplicate_ppstrings (int ac, _TCHAR ***av)
330static int duplicate_ppstrings (int ac, _TCHAR ***av)
311331{
312332 _TCHAR **avl;
313333 int i;
314334 _TCHAR **n = (_TCHAR **) malloc (sizeof (_TCHAR *) * (ac + 1));
335 if (!n) return 1;
315336
316337 avl=*av;
317338 for (i=0; i < ac; i++)
318339 {
319340 size_t l = sizeof (_TCHAR) * (_tcslen (avl[i]) + 1);
320341 n[i] = (_TCHAR *) malloc (l);
342 if (!n[i]) return 1;
321343 memcpy (n[i], avl[i], l);
322344 }
323345 n[i] = NULL;
324346 *av = n;
347 return 0;
325348}
326349
327350int __cdecl atexit (_PVFV func)
lib/libc/mingw/crt/crtexewin.c+1-5
......@@ -7,10 +7,6 @@
77#include <tchar.h>
88#include <corecrt_startup.h>
99
10#ifndef _UNICODE
11#include <mbctype.h>
12#endif
13
1410#define SPACECHAR _T(' ')
1511#define DQUOTECHAR _T('\"')
1612
......@@ -40,7 +36,7 @@ int _tmain (int __UNUSED_PARAM(argc),
4036 if (*lpCmdLine == DQUOTECHAR)
4137 inDoubleQuote = !inDoubleQuote;
4238#ifndef _UNICODE
43 if (_ismbblead (*lpCmdLine))
39 if (IsDBCSLeadByte (*lpCmdLine))
4440 {
4541 if (lpCmdLine[1])
4642 ++lpCmdLine;
lib/libc/mingw/crt/gccmain.c+1
......@@ -49,6 +49,7 @@ __do_global_ctors (void)
4949
5050static int initialized = 0;
5151
52__attribute__((used)) /* required for gcc -flto -Ofast */
5253void
5354__main (void)
5455{
lib/libc/mingw/crt/pseudo-reloc.c+2-6
......@@ -141,8 +141,7 @@ __report_error (const char *msg, ...)
141141 cygwin_internal (CW_EXIT_PROCESS,
142142 STATUS_ILLEGAL_DLL_PSEUDO_RELOCATION,
143143 1);
144 /* not reached, but silences noreturn warning */
145 abort ();
144 __builtin_unreachable ();
146145#else
147146 va_list argp;
148147 va_start (argp, msg);
......@@ -196,7 +195,6 @@ mark_section_writable (LPVOID addr)
196195 if (!h)
197196 {
198197 __report_error ("Address %p has no image-section", addr);
199 return;
200198 }
201199 the_secs[i].hash = h;
202200 the_secs[i].old_protect = 0;
......@@ -206,7 +204,6 @@ mark_section_writable (LPVOID addr)
206204 {
207205 __report_error (" VirtualQuery failed for %d bytes at address %p",
208206 (int) h->Misc.VirtualSize, the_secs[i].sec_start);
209 return;
210207 }
211208
212209 if (b.Protect != PAGE_EXECUTE_READWRITE && b.Protect != PAGE_READWRITE
......@@ -380,7 +377,6 @@ do_pseudo_reloc (void * start, void * end, void * base)
380377 {
381378 __report_error (" Unknown pseudo relocation protocol version %d.\n",
382379 (int) v2_hdr->version);
383 return;
384380 }
385381
386382 /*************************
......@@ -480,7 +476,7 @@ do_pseudo_reloc (void * start, void * end, void * base)
480476 }
481477}
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 */
484480void
485481_pei386_runtime_relocator (void)
486482{
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)
6464ADD_UNDERSCORE(fileno)
6565; ADD_UNDERSCORE(flushall)
6666ADD_UNDERSCORE(fputchar)
67#ifdef FIXED_SIZE_SYMBOLS
68#ifndef CRTDLL
69ADD_UNDERSCORE(fstat)
70#endif
71#else
67#if defined(UCRTBASE)
7268F32(fstat == _fstat32)
7369F64(fstat == _fstat64i32)
74#endif
75#ifdef FIXED_SIZE_SYMBOLS
76ADD_UNDERSCORE(ftime)
7770#else
78F32(ftime == _ftime32)
79F64(ftime == _ftime64)
71; fstat for non-UCRT is provided by mingw to workaround S_IFDIR issue in _fstat
8072#endif
73; ftime is provided in misc/ftime32.c or misc/ftime64.c as MS _ftime is not ABI compatible with POSIX ftime
8174#if defined(UCRTBASE)
8275; HUGE alias and _HUGE variable are provided by math/_huge.c
8376#elif defined(CRTDLL)
......@@ -232,7 +225,7 @@ ADD_UNDERSCORE(wcsupr)
232225#ifdef UCRTBASE
233226; hypot is natively exported from UCRT
234227#else
235ADD_UNDERSCORE(hypot)
228; hypot is provided by math/hypot.c as a wrapper around _hypot
236229#endif
237230ADD_UNDERSCORE(j0)
238231ADD_UNDERSCORE(j1)
......@@ -248,9 +241,6 @@ getwchar == _fgetwchar
248241putwc == fputwc
249242putwchar == _fputwchar
250243#endif
251#ifdef USE_WCSTOK_S_FOR_WCSTOK
252wcstok == wcstok_s
253#endif
254244
255245; This is list of symbol aliases for C99 functions
256246; ADD_UNDERSCORE(logb)
......@@ -292,29 +282,46 @@ ADD_DOUBLE_UNDERSCORE(toascii)
292282ADD_UNDERSCORE(pclose)
293283ADD_UNDERSCORE(popen)
294284#endif
285fseeko == fseek
286ftello == ftell
287ftruncate == _chsize
295288; ADD_UNDERSCORE(scalb)
296289
297290; 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
298299#ifndef NO_FPOS64_ALIASES
299300; fgetpos and fsetpos are already 64-bit
300301fgetpos64 == fgetpos
301302fsetpos64 == fsetpos
303lseek64 == _lseeki64
302304#endif
303305#ifdef UCRTBASE
306fstat32 == _fstat32
307fstat32i64 == _fstat32i64
308fstat64 == _fstat64
309fstat64i32 == _fstat64i32
304310stat32 == _stat32
305311stat32i64 == _stat32i64
306312stat64 == _stat64
307313stat64i32 == _stat64i32
308314#else
315; fstat for non-UCRT is provided by mingw to workaround S_IFDIR issue in _fstat
309316; stat for non-UCRT is provided by mingw to workaround trailing slash issue in _stat
310317#endif
311318#ifdef FIXED_SIZE_SYMBOLS
312// NO_FIXED_SIZE_64_ALIAS means that DLL provides the native _fstat64 symbol
313#if defined(NO_FIXED_SIZE_64_ALIAS) && !defined(NO_FSTAT64_ALIAS)
314fstat64 == _fstat64
319#ifdef WITH_FSEEKO64_ALIAS
320fseeko64 == _fseeki64
315321#endif
316322#else
317fstat64 == _fstat64
323fseeko64 == _fseeki64
324ftello64 == _ftelli64
318325#endif
319326
320327; This is list of symbol aliases for GNU functions which are not part of POSIX or ISO C
......@@ -325,6 +332,25 @@ strncasecmp == _strnicmp
325332; Some symbols in some version of CRT library were added and some other symbols were removed or renamed
326333; 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
328354#ifndef NO_STRCMPI_ALIAS
329355_strcmpi == _stricmp
330356#endif
......@@ -551,6 +577,7 @@ __p__daylight == __daylight
551577__p__dstbias == __dstbias
552578__p__timezone == __timezone
553579__p__tzname == __tzname
580_XcptFilter == _seh_filter_exe
554581#endif
555582
556583; 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 @@
1616#define F64(x) x
1717#define F_X64(x) x
1818#define F_X86_ANY(x) x
19#define F_X86_NATIVE(x) x
1920#define F_NON_I386(x) x
2021#define F_NON_ARM64(x) x
22#if defined(__arm64ec__)
23#define F_ARM_ANY(x) x
24#undef F_X86_NATIVE
25#endif
2126#elif defined(__i386__)
2227#define F32(x) x
2328#define F_I386(x) x
2429#define F_X86_ANY(x) x
30#define F_X86_NATIVE(x) x
2531#define F_NON_X64(x) x
2632#define F_NON_ARM64(x) x
2733#elif defined(__arm__)
2834#define F32(x) x
2935#define F_ARM32(x) x
30#define F_ARM_ANY(x) x
36#define F_ARM_NATIVE(x) x
3137#define F_NON_I386(x) x
3238#define F_NON_X64(x) x
3339#define F_NON_ARM64(x) x
3440#elif defined(__aarch64__)
3541#define F64(x) x
3642#define F_ARM64(x) x
37#define F_ARM_ANY(x) x
43#define F_ARM_NATIVE(x) x
3844#define F_NON_I386(x) x
3945#define F_NON_X64(x) x
4046#else
41#error No DEF_<ARCH> is defined
47#error Unrecognized architecture
4248#endif
4349
4450#ifndef F32
......@@ -50,14 +56,20 @@
5056#ifndef F_X86_ANY
5157#define F_X86_ANY(x)
5258#endif
59#ifndef F_X86_NATIVE(x)
60#define F_X86_NATIVE(x)
61#endif
5362#ifndef F_I386
5463#define F_I386(x)
5564#endif
5665#ifndef F_X64
5766#define F_X64(x)
5867#endif
68#ifndef F_ARM_NATIVE
69#define F_ARM_NATIVE(x)
70#endif
5971#ifndef F_ARM_ANY
60#define F_ARM_ANY(x)
72#define F_ARM_ANY(x) F_ARM_NATIVE(x)
6173#endif
6274#ifndef F_ARM32
6375#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
109109 */
110110
111111 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,
113113 spec_case, try_quick;
114114 Long L;
115115#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)
172172 char *rv;
173173 int i, j;
174174 size_t L;
175 static char Hexdig[16] = "0123456789abcdef";
175 static char Hexdig[17] = "0123456789abcdef";
176176
177177 while(!bits[--nb])
178178 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 @@
66
77#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
159/* Reference list of existing section for msvcrt. */
16#pragma section(".CRTMP$XCA",long,_ATTRIBUTES)
17#pragma section(".CRTMP$XCZ",long,_ATTRIBUTES)
18#pragma section(".CRTMP$XIA",long,_ATTRIBUTES)
19#pragma section(".CRTMP$XIZ",long,_ATTRIBUTES)
10#pragma section(".CRTMP$XCA", long, read)
11#pragma section(".CRTMP$XCZ", long, read)
12#pragma section(".CRTMP$XIA", long, read)
13#pragma section(".CRTMP$XIZ", long, read)
2014
21#pragma section(".CRTMA$XCA",long,_ATTRIBUTES)
22#pragma section(".CRTMA$XCZ",long,_ATTRIBUTES)
23#pragma section(".CRTMA$XIA",long,_ATTRIBUTES)
24#pragma section(".CRTMA$XIZ",long,_ATTRIBUTES)
15#pragma section(".CRTMA$XCA", long, read)
16#pragma section(".CRTMA$XCZ", long, read)
17#pragma section(".CRTMA$XIA", long, read)
18#pragma section(".CRTMA$XIZ", long, read)
2519
26#pragma section(".CRTVT$XCA",long,_ATTRIBUTES)
27#pragma section(".CRTVT$XCZ",long,_ATTRIBUTES)
20#pragma section(".CRTVT$XCA", long, read)
21#pragma section(".CRTVT$XCZ", long, read)
2822
29#pragma section(".CRT$XCA",long,_ATTRIBUTES)
30#pragma section(".CRT$XCAA",long,_ATTRIBUTES)
31#pragma section(".CRT$XCC",long,_ATTRIBUTES)
32#pragma section(".CRT$XCZ",long,_ATTRIBUTES)
33#pragma section(".CRT$XDA",long,_ATTRIBUTES)
34#pragma section(".CRT$XDC",long,_ATTRIBUTES)
35#pragma section(".CRT$XDZ",long,_ATTRIBUTES)
36#pragma section(".CRT$XIA",long,_ATTRIBUTES)
37#pragma section(".CRT$XIAA",long,_ATTRIBUTES)
38#pragma section(".CRT$XIC",long,_ATTRIBUTES)
39#pragma section(".CRT$XID",long,_ATTRIBUTES)
40#pragma section(".CRT$XIY",long,_ATTRIBUTES)
41#pragma section(".CRT$XIZ",long,_ATTRIBUTES)
42#pragma section(".CRT$XLA",long,_ATTRIBUTES)
43#pragma section(".CRT$XLC",long,_ATTRIBUTES)
44#pragma section(".CRT$XLD",long,_ATTRIBUTES)
45#pragma section(".CRT$XLZ",long,_ATTRIBUTES)
46#pragma section(".CRT$XPA",long,_ATTRIBUTES)
47#pragma section(".CRT$XPX",long,_ATTRIBUTES)
48#pragma section(".CRT$XPXA",long,_ATTRIBUTES)
49#pragma section(".CRT$XPZ",long,_ATTRIBUTES)
50#pragma section(".CRT$XTA",long,_ATTRIBUTES)
51#pragma section(".CRT$XTB",long,_ATTRIBUTES)
52#pragma section(".CRT$XTX",long,_ATTRIBUTES)
53#pragma section(".CRT$XTZ",long,_ATTRIBUTES)
54#pragma section(".rdata$T",long,read)
55#pragma section(".rtc$IAA",long,read)
56#pragma section(".rtc$IZZ",long,read)
57#pragma section(".rtc$TAA",long,read)
58#pragma section(".rtc$TZZ",long,read)
23#pragma section(".CRT$XCA", long, read)
24#pragma section(".CRT$XCAA", long, read)
25#pragma section(".CRT$XCC", long, read)
26#pragma section(".CRT$XCZ", long, read)
27#pragma section(".CRT$XDA", long, read)
28#pragma section(".CRT$XDC", long, read)
29#pragma section(".CRT$XDZ", long, read)
30#pragma section(".CRT$XIA", long, read)
31#pragma section(".CRT$XIAA", long, read)
32#pragma section(".CRT$XIC", long, read)
33#pragma section(".CRT$XID", long, read)
34#pragma section(".CRT$XIY", long, read)
35#pragma section(".CRT$XIZ", long, read)
36#pragma section(".CRT$XLA", long, read)
37#pragma section(".CRT$XLC", long, read)
38#pragma section(".CRT$XLD", long, read)
39#pragma section(".CRT$XLZ", long, read)
40#pragma section(".CRT$XPA", long, read)
41#pragma section(".CRT$XPX", long, read)
42#pragma section(".CRT$XPXA", long, read)
43#pragma section(".CRT$XPZ", long, read)
44#pragma section(".CRT$XTA", long, read)
45#pragma section(".CRT$XTB", long, read)
46#pragma section(".CRT$XTX", long, read)
47#pragma section(".CRT$XTZ", long, read)
48#pragma section(".rdata$T", long, read)
49#pragma section(".rtc$IAA", long, read)
50#pragma section(".rtc$IZZ", long, read)
51#pragma section(".rtc$TAA", long, read)
52#pragma section(".rtc$TZZ", long, read)
5953/* for tlssup.c: */
60#pragma section(".tls",long,read,write)
61#pragma section(".tls$AAA",long,read,write)
62#pragma section(".tls$ZZZ",long,read,write)
54#pragma section(".tls", long)
55#pragma section(".tls$AAA", long)
56#pragma section(".tls$ZZZ", long)
6357#endif /* _MSC_VER */
6458
6559#if defined(_MSC_VER)
......@@ -69,4 +63,3 @@
6963#else
7064#error Your compiler is not supported.
7165#endif
72
lib/libc/mingw/lib-common/api-ms-win-crt-convert-l1-1-0.def.in+2-2
......@@ -93,7 +93,7 @@ atof
9393atoi
9494atol
9595atoll
96btowc
96; btowc ; replaced for consistency with wctob
9797c16rtomb
9898c32rtomb
9999mbrtoc16
......@@ -128,7 +128,7 @@ wcstombs_s
128128wcstoul
129129wcstoull
130130wcstoumax
131wctob
131; wctob ; replaced, CRT version may sign-extend its return value
132132wctomb
133133wctomb_s
134134wctrans
lib/libc/mingw/lib-common/api-ms-win-crt-filesystem-l1-1-0.def.in+3
......@@ -37,10 +37,13 @@ F64(_fstat == _fstat64i32)
3737F32(_fstati64 == _fstat32i64)
3838F64(_fstati64 == _fstat64)
3939_fstat32
40fstat32 == _fstat32
4041_fstat32i64
42fstat32i64 == _fstat32i64
4143_fstat64
4244fstat64 == _fstat64
4345_fstat64i32
46fstat64i32 == _fstat64i32
4447_fullpath
4548_getdiskfree
4649_getdrive
lib/libc/mingw/lib-common/api-ms-win-crt-math-l1-1-0.def.in+1-1
......@@ -266,7 +266,7 @@ expm1
266266expm1f
267267F_LD64(expm1l) ; Can't use long double functions from the CRT on x86
268268fabs
269F_ARM_ANY(fabsf)
269F_ARM_NATIVE(fabsf)
270270fdim
271271fdimf
272272F_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
1212F_X64(_GetImageBase)
1313F_X64(_GetThrowImageBase)
1414_IsExceptionObjectToBeDestroyed
15F_I386(_NLG_Dispatch2@4)
16F_I386(_NLG_Return@12)
15F_I386(_NLG_Dispatch2) ; msvc symbol is without decoration but callee pop stack (like stdcall @4)
16F_I386(_NLG_Return) ; msvc symbol is without decoration but callee pop stack (like stdcall @12)
1717F_I386(_NLG_Return2)
1818F_X64(_SetImageBase)
1919F_X64(_SetThrowImageBase)
......@@ -46,7 +46,9 @@ __dcrt_get_wide_environment_from_os
4646__dcrt_initial_narrow_environment DATA
4747F_I386(__intrinsic_abnormal_termination)
4848F_NON_ARM64(__intrinsic_setjmp)
49F_NON_ARM64(_setjmp == __intrinsic_setjmp)
4950F64(__intrinsic_setjmpex)
51F64(_setjmpex == __intrinsic_setjmpex)
5052__processing_throw
5153__report_gsfailure
5254__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
2424__wcserror
2525__wcserror_s
2626; DATA set manually
27_assert
27__msvcrt_assert DATA == _assert ; mingw-w64 provides _assert() function as wrapper around renamed __msvcrt_assert symbol
2828_beginthread
2929_beginthreadex
3030_c_exit
......@@ -73,6 +73,7 @@ _register_thread_local_exe_atexit_callback
7373_resetstkoflw
7474_seh_filter_dll
7575_seh_filter_exe
76_XcptFilter == _seh_filter_exe
7677_set_abort_behavior
7778_set_app_type
7879__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
2525__stdio_common_vswscanf
2626_chsize
2727chsize == _chsize
28ftruncate == _chsize
2829_chsize_s
2930_close
3031close == _close
3132_commit
3233_creat
3334creat == _creat
35creat64 == _creat
3436_dup
3537dup == _dup
3638_dup2
......@@ -63,10 +65,12 @@ _fread_nolock
6365_fread_nolock_s
6466_fseek_nolock
6567_fseeki64
68fseeko64 == _fseeki64
6669_fseeki64_nolock
6770_fsopen
6871_ftell_nolock
6972_ftelli64
73ftello64 == _ftelli64
7074_ftelli64_nolock
7175_fwrite_nolock
7276_get_fmode
......@@ -91,11 +95,13 @@ _locking
9195_lseek
9296lseek == _lseek
9397_lseeki64
98lseek64 == _lseeki64
9499_mktemp
95100mktemp == _mktemp
96101_mktemp_s
97102_open
98103open == _open
104open64 == _open
99105_open_osfhandle
100106_pclose
101107pclose == _pclose
......@@ -160,6 +166,7 @@ fgets
160166fgetwc
161167fgetws
162168fopen
169fopen64 == fopen
163170fopen_s
164171fputc
165172fputs
......@@ -168,11 +175,14 @@ fputws
168175fread
169176fread_s
170177freopen
178freopen64 == freopen
171179freopen_s
172180fseek
181fseeko == fseek
173182fsetpos
174183fsetpos64 == fsetpos
175184ftell
185ftello == ftell
176186fwrite
177187getc
178188getchar
......@@ -189,6 +199,7 @@ rewind
189199setbuf
190200setvbuf
191201tmpfile
202tmpfile64 == tmpfile
192203tmpfile_s
193204tmpnam
194205tmpnam_s
lib/libc/mingw/lib-common/api-ms-win-crt-string-l1-1-0.def+2-2
......@@ -147,7 +147,7 @@ iswalpha
147147iswascii
148148iswblank
149149iswcntrl
150iswctype
150__msvcrt_iswctype DATA == iswctype ; mingw-w64 provides real iswctype as a wrapper around renamed __msvcrt_iswctype
151151iswdigit
152152iswgraph
153153iswlower
......@@ -183,7 +183,7 @@ strtok_s
183183strxfrm
184184tolower
185185toupper
186towctrans
186__msvcrt_towctrans DATA == towctrans ; mingw-w64 provides real towctrans as a wrapper around renamed __msvcrt_towctrans
187187towlower
188188towupper
189189wcscat
lib/libc/mingw/lib-common/kernel32.def.in+7
......@@ -203,6 +203,8 @@ CreateActCtxWWorker
203203CreateBoundaryDescriptorA
204204CreateBoundaryDescriptorW
205205CreateConsoleScreenBuffer
206CreateDirectory2A
207CreateDirectory2W
206208CreateDirectoryA
207209CreateDirectoryExA
208210CreateDirectoryExW
......@@ -217,6 +219,7 @@ CreateEventW
217219CreateFiber
218220CreateFiberEx
219221CreateFile2
222CreateFile3
220223CreateFileA
221224CreateFileMappingA
222225CreateFileMappingFromApp
......@@ -302,6 +305,8 @@ DeleteAtom
302305DeleteBoundaryDescriptor
303306DeleteCriticalSection
304307DeleteFiber
308DeleteFile2A
309DeleteFile2W
305310DeleteFileA
306311DeleteFileTransactedA
307312DeleteFileTransactedW
......@@ -1290,6 +1295,8 @@ ReleaseSRWLockExclusive
12901295ReleaseSRWLockShared
12911296ReleaseSemaphore
12921297ReleaseSemaphoreWhenCallbackReturns
1298RemoveDirectory2A
1299RemoveDirectory2W
12931300RemoveDirectoryA
12941301RemoveDirectoryTransactedA
12951302RemoveDirectoryTransactedW
lib/libc/mingw/lib-common/ntdll.def.in+7-7
......@@ -228,7 +228,7 @@ LdrSetMUICacheType
228228LdrShutdownProcess
229229LdrShutdownThread
230230LdrStandardizeSystemPath
231LdrSystemDllInitBlock F_ARM_ANY(DATA)
231LdrSystemDllInitBlock DATA
232232LdrUnloadAlternateResourceModule
233233LdrUnloadAlternateResourceModuleEx
234234LdrUnloadDll
......@@ -455,7 +455,7 @@ NtLoadDriver
455455NtLoadEnclaveData
456456NtLoadKey
457457NtLoadKey2
458F_ARM_ANY(NtLoadKey3)
458NtLoadKey3
459459NtLoadKeyEx
460460NtLockFile
461461NtLockProductActivationKeys
......@@ -1643,8 +1643,8 @@ F_X86_ANY(RtlUTF8StringToUnicodeString)
16431643RtlUTF8ToUnicodeN
16441644RtlUdiv128
16451645F_X64(RtlUmsThreadYield)
1646F_ARM_ANY(RtlUlongByteSwap)
1647F_ARM_ANY(RtlUlonglongByteSwap)
1646F_ARM_NATIVE(RtlUlongByteSwap)
1647F_ARM_NATIVE(RtlUlonglongByteSwap)
16481648RtlUnhandledExceptionFilter
16491649RtlUnhandledExceptionFilter2
16501650RtlUnicodeStringToAnsiSize
......@@ -1690,7 +1690,7 @@ RtlUpperString
16901690F_X86_ANY(RtlUsageHeap)
16911691RtlUserFiberStart
16921692RtlUserThreadStart
1693F_ARM_ANY(RtlUshortByteSwap)
1693F_ARM_NATIVE(RtlUshortByteSwap)
16941694RtlValidAcl
16951695RtlValidProcessProtection
16961696RtlValidRelativeSecurityDescriptor
......@@ -1758,7 +1758,7 @@ RtlpConvertRelativeToAbsoluteSecurityAttribute
17581758RtlpCreateProcessRegistryInfo
17591759RtlpEnsureBufferSize
17601760F_X64(RtlpExecuteUmsThread)
1761RtlpFreezeTimeBias F_ARM_ANY(DATA)
1761RtlpFreezeTimeBias DATA
17621762RtlpGetDeviceFamilyInfoEnum
17631763RtlpGetLCIDFromLangInfoNode
17641764RtlpGetNameFromLangInfoNode
......@@ -2114,7 +2114,7 @@ ZwLoadDriver
21142114ZwLoadEnclaveData
21152115ZwLoadKey
21162116ZwLoadKey2
2117F_ARM_ANY(ZwLoadKey3)
2117ZwLoadKey3
21182118ZwLoadKeyEx
21192119ZwLockFile
21202120ZwLockProductActivationKeys
lib/libc/mingw/lib-common/ntdllcrt.def.in+168-140
......@@ -1,225 +1,253 @@
11#include "func.def.in"
22
3LIBRARY "ntdll.dll"
3LIBRARY "NTDLL.dll"
44EXPORTS
5#ifdef __i386__
6_CIcos
7_CIlog
8_CIpow
9_CIsin
10_CIsqrt
11#endif
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)
5
6; This is list of symbols available since Windows NT 3.5
7; Windows NT 3.1, Win32s and Win9x versions do not contain any CRT symbol
8F_I386(_CIpow)
9; _abnormal_termination ; removed in Windows NT 3.51
10; F_I386(_chkstk)
11; _except_handler2 ; removed in Windows NT 3.51
4112_fltused DATA
42#ifdef __i386__
43_ftol
44_ftol2
45_ftol2_sse
46#endif
47_i64toa
48_i64toa_s
49_i64tow
50_i64tow_s
13F_I386(_ftol)
14; _global_unwind2 ; removed in Windows NT 3.51
5115_itoa
52_itoa_s
53_itow
54_itow_s
55_lfind
56F64(_local_unwind)
57F_I386(_local_unwind4)
16; _local_unwind2 ; removed in Windows NT 3.51
5817_ltoa
59_ltoa_s
60_ltow
61_ltow_s
62_makepath_s
6318_memccpy
6419_memicmp
65F_X64(_setjmp)
66F_ARM32(_setjmp)
67F_NON_I386(_setjmpex)
6820_snprintf
69_snprintf_s
70_snscanf_s
7121_snwprintf
72_snwprintf_s
73_snwscanf_s
7422_splitpath
75_splitpath_s
7623_strcmpi
7724_stricmp
7825_strlwr
79strlwr == _strlwr
80_strlwr_s
26strlwr == _strlwr ; manual alias
8127_strnicmp
82_strnset_s
83_strset_s
8428_strupr
85_strupr_s
86_swprintf
87F_X86_ANY(_tolower)
88F_X86_ANY(_toupper)
89_ui64toa
90_ui64toa_s
91_ui64tow
92_ui64tow_s
9329_ultoa
94_ultoa_s
95_ultow
96_ultow_s
97_vscprintf
98_vscwprintf
9930_vsnprintf
100_vsnprintf_s
101_vsnwprintf
102_vsnwprintf_s
103_vswprintf
10431_wcsicmp
10532_wcslwr
106wcslwr == _wcslwr
107_wcslwr_s
33wcslwr == _wcslwr ; manual alias
10834_wcsnicmp
109_wcsnset_s
110_wcsset_s
111_wcstoi64
112_wcstoui64
11335_wcsupr
114_wcsupr_s
115_wmakepath_s
116_wsplitpath_s
117_wtoi
118_wtoi64
119_wtol
12036abs
121atan F_X86_ANY(DATA)
122atan2
37atan F_X86_ANY(DATA) ; replaced by emu
12338atoi
12439atol
125bsearch
126bsearch_s
12740ceil
128cos F_X86_ANY(DATA)
129fabs F_X86_ANY(DATA)
130floor F_X86_ANY(DATA)
131isalnum
41cos F_X86_ANY(DATA) ; replaced by emu
42fabs F_X86_ANY(DATA) ; replaced by emu
43floor F_X86_ANY(DATA) ; replaced by emu
13244isalpha
133iscntrl
13445isdigit
135isgraph
13646islower
13747isprint
138ispunct
13948isspace
14049isupper
141iswalnum
14250iswalpha
143iswascii
14451iswctype
145iswdigit
146iswgraph
147iswlower
148iswprint
149iswspace
150iswxdigit
15152isxdigit
15253labs
15354log
154F_NON_I386(longjmp)
15555mbstowcs
15656memchr
15757memcmp
15858memcpy
159memcpy_s
16059memmove
161memmove_s
16260memset
16361pow
16462qsort
165qsort_s
16663sin
16764sprintf
168sprintf_s
16965sqrt
17066sscanf
171sscanf_s
17267strcat
173strcat_s
17468strchr
17569strcmp
17670strcpy
177strcpy_s
17871strcspn
17972strlen
18073strncat
181strncat_s
18274strncmp
18375strncpy
184strncpy_s
185strnlen
18676strpbrk
18777strrchr
18878strspn
18979strstr
190strtok_s
191strtol
192strtoul
19380swprintf
194swprintf_s
195swscanf_s
19681tan
19782tolower
19883toupper
19984towlower
20085towupper
20186vsprintf
202vsprintf_s
203vswprintf_s
20487wcscat
205wcscat_s
20688wcschr
20789wcscmp
20890wcscpy
209wcscpy_s
21091wcscspn
21192wcslen
21293wcsncat
213wcsncat_s
21494wcsncmp
21595wcsncpy
216wcsncpy_s
217wcsnlen
21896wcspbrk
21997wcsrchr
22098wcsspn
22199wcsstr
222wcstok_s
100; wcstok ; removed in Windows NT 4.0
223101wcstol
224102wcstombs
225103wcstoul
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 @@
11;
22; Definition file of OLEACC.dll
3; Automatic generated by gendef
4; written by Kai Tietz 2008-2014
3; Automatic generated by gendef 1.1
4; written by Kai Tietz 2008
5; The def file has to be processed by --kill-at (-k) option of dlltool or ld
56;
67LIBRARY "OLEACC.dll"
78EXPORTS
9;DllRegisterServer
10;DllUnregisterServer
811AccGetRunningUtilityState
912AccNotifyTouchInteraction
1013AccSetRunningUtilityState
......@@ -16,15 +19,17 @@ AccessibleObjectFromWindowTimeout
1619CreateStdAccessibleObject
1720CreateStdAccessibleProxyA
1821CreateStdAccessibleProxyW
22;DllCanUnloadNow
23;DllGetClassObject
1924GetOleaccVersionInfo
2025GetProcessHandleFromHwnd
2126GetRoleTextA
2227GetRoleTextW
2328GetStateTextA
2429GetStateTextW
25IID_IAccessible
26IID_IAccessibleHandler
27LIBID_Accessibility
30;IID_IAccessible DATA
31;IID_IAccessibleHandler DATA
32;LIBID_Accessibility DATA
2833LresultFromObject
2934ObjectFromLresult
3035PropMgrClient_LookupProp
lib/libc/mingw/lib-common/ucrtbase-common.def.in+9-9
......@@ -75,8 +75,8 @@ _IsExceptionObjectToBeDestroyed
7575_LCbuild
7676_LCmulcc
7777_LCmulcr
78F_I386(_NLG_Dispatch2@4)
79F_I386(_NLG_Return@12)
78F_I386(_NLG_Dispatch2) ; msvc symbol is without decoration but callee pop stack (like stdcall @4)
79F_I386(_NLG_Return) ; msvc symbol is without decoration but callee pop stack (like stdcall @12)
8080F_I386(_NLG_Return2)
8181F_X64(_SetImageBase)
8282F_X64(_SetThrowImageBase)
......@@ -246,7 +246,7 @@ _aligned_realloc
246246F_DEBUG(_aligned_realloc_dbg)
247247_aligned_recalloc
248248F_DEBUG(_aligned_recalloc_dbg)
249_assert
249__msvcrt_assert DATA == _assert ; mingw-w64 provides _assert() function as wrapper around renamed __msvcrt_assert symbol
250250_atodbl
251251_atodbl_l
252252_atof_l
......@@ -1656,7 +1656,7 @@ _o_exp2f
16561656F_LD64(_o_exp2l) ; Can't use long double functions from the CRT on x86
16571657F_NON_I386(_o_expf)
16581658_o_fabs
1659F_ARM_ANY(_o_fabsf)
1659F_ARM_NATIVE(_o_fabsf)
16601660_o_fclose
16611661_o_feof
16621662_o_ferror
......@@ -2233,7 +2233,7 @@ atol
22332233atoll
22342234bsearch
22352235bsearch_s
2236btowc
2236; btowc ; replaced for consistency with wctob
22372237c16rtomb
22382238c32rtomb
22392239cabs
......@@ -2338,7 +2338,7 @@ expm1
23382338expm1f
23392339F_LD64(expm1l) ; Can't use long double functions from the CRT on x86
23402340fabs
2341F_ARM_ANY(fabsf)
2341F_ARM_NATIVE(fabsf)
23422342fclose
23432343fdim
23442344fdimf
......@@ -2424,7 +2424,7 @@ iswalpha
24242424iswascii
24252425iswblank
24262426iswcntrl
2427iswctype
2427__msvcrt_iswctype DATA == iswctype ; mingw-w64 provides real iswctype as a wrapper around renamed __msvcrt_iswctype
24282428iswdigit
24292429iswgraph
24302430iswlower
......@@ -2609,7 +2609,7 @@ tmpnam
26092609tmpnam_s
26102610tolower
26112611toupper
2612towctrans
2612__msvcrt_towctrans DATA == towctrans ; mingw-w64 provides real towctrans as a wrapper around renamed __msvcrt_towctrans
26132613towlower
26142614towupper
26152615trunc
......@@ -2656,7 +2656,7 @@ wcstoul
26562656wcstoull
26572657wcstoumax
26582658wcsxfrm
2659wctob
2659; wctob ; replaced, CRT version may sign-extend its return value
26602660wctomb
26612661wctomb_s
26622662wctrans
lib/libc/mingw/lib-common/vcruntime140-common.def.in+2-2
......@@ -4,8 +4,8 @@ F_NON_I386(_CxxThrowException)
44F_I386(_EH_prolog)
55_FindAndUnlinkFrame
66_IsExceptionObjectToBeDestroyed
7F_I386(_NLG_Dispatch2@4)
8F_I386(_NLG_Return@12)
7F_I386(_NLG_Dispatch2) ; msvc symbol is without decoration but callee pop stack (like stdcall @4)
8F_I386(_NLG_Return) ; msvc symbol is without decoration but callee pop stack (like stdcall @12)
99F_I386(_NLG_Return2)
1010_SetWinRTOutOfMemoryExceptionCallback
1111__AdjustPointer
lib/libc/mingw/lib32/advapi32.def+843-653
......@@ -1,369 +1,80 @@
1;
2; Definition file of ADVAPI32.dll
3; Automatic generated by gendef
4; written by Kai Tietz 2008
5;
61LIBRARY "ADVAPI32.dll"
72EXPORTS
8ord_1000@8 @1000
9I_ScGetCurrentGroupStateW@12
10A_SHAFinal@8
11A_SHAInit@4
12A_SHAUpdate@12
3
4; This file is a comprehensive documentation for 32-bit x86 advapi32.dll symbols.
5; It covers all 3 platforms (Win32s, Win9x and WinNT) and contains information
6; from native advapi32.dll libraries on 32-bit Windows systems and also from
7; 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)
1322AbortSystemShutdownA@4
1423AbortSystemShutdownW@4
1524AccessCheck@32
1625AccessCheckAndAuditAlarmA@44
1726AccessCheckAndAuditAlarmW@44
18AccessCheckByType@44
19AccessCheckByTypeAndAuditAlarmA@64
20AccessCheckByTypeAndAuditAlarmW@64
21AccessCheckByTypeResultList@44
22AccessCheckByTypeResultListAndAuditAlarmA@64
23AccessCheckByTypeResultListAndAuditAlarmByHandleA@68
24AccessCheckByTypeResultListAndAuditAlarmByHandleW@68
25AccessCheckByTypeResultListAndAuditAlarmW@64
2627AddAccessAllowedAce@16
27AddAccessAllowedAceEx@20
28AddAccessAllowedObjectAce@28
2928AddAccessDeniedAce@16
30AddAccessDeniedAceEx@20
31AddAccessDeniedObjectAce@28
3229AddAce@20
3330AddAuditAccessAce@24
34AddAuditAccessAceEx@28
35AddAuditAccessObjectAce@36
36AddConditionalAce@32
37AddMandatoryAce@20
38AddUsersToEncryptedFile@8
39AddUsersToEncryptedFileEx@16
4031AdjustTokenGroups@24
4132AdjustTokenPrivileges@24
4233AllocateAndInitializeSid@44
4334AllocateLocallyUniqueId@4
4435AreAllAccessesGranted@8
4536AreAnyAccessesGranted@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
6837BackupEventLogA@8
6938BackupEventLogW@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
10239ChangeServiceConfigA@44
10340ChangeServiceConfigW@44
104CheckForHiberboot@8
105CheckTokenMembership@12
10641ClearEventLogA@8
10742ClearEventLogW@8
108CloseCodeAuthzLevel@4
109CloseEncryptedFileRaw@4
11043CloseEventLog@4
11144CloseServiceHandle@4
112CloseThreadWaitChainSession@4
113CloseTrace@8
114CommandLineFromMsiDescriptor@12
115ComputeAccessTokenFromCodeAuthzLevel@20
11645ControlService@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
14346CopySid@12
144CreateCodeAuthzLevel@20
14547CreatePrivateObjectSecurity@24
146CreatePrivateObjectSecurityEx@32
147CreatePrivateObjectSecurityWithMultipleInheritance@36
148CreateProcessAsUserA@44
149CreateProcessAsUserW@44
150CreateProcessWithLogonW@44
151CreateProcessWithTokenW@36
152CreateRestrictedToken@36
15348CreateServiceA@52
15449CreateServiceW@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
24350DeleteAce@8
24451DeleteService@4
24552DeregisterEventSource@4
24653DestroyPrivateObjectSecurity@4
247DuplicateEncryptionInfoFile@20
24854DuplicateToken@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
27855EnumDependentServicesA@24
27956EnumDependentServicesW@24
280EnumDynamicTimeZoneInformation@8
281EnumServiceGroupW@36
28257EnumServicesStatusA@32
283EnumServicesStatusExA@40
284EnumServicesStatusExW@40
28558EnumServicesStatusW@32
286EnumerateTraceGuids@12
287EnumerateTraceGuidsEx@24
288EqualDomainSid@12
28959EqualPrefixSid@8
29060EqualSid@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
30861FindFirstFreeAce@8
309FlushEfsCache@4
310FlushTraceA@16
311FlushTraceW@16
312FreeEncryptedFileKeyInfo@4
313FreeEncryptedFileMetadata@4
314FreeEncryptionCertificateHashList@4
315FreeInheritedFromArray@12
31662FreeSid@4
317GetAccessPermissionsForObjectA@36
318GetAccessPermissionsForObjectW@36
31963GetAce@12
32064GetAclInformation@16
321GetAuditedPermissionsFromAclA@16
322GetAuditedPermissionsFromAclW@16
323GetCurrentHwProfileA@4
324GetCurrentHwProfileW@4
325GetDynamicTimeZoneInformationEffectiveYears@12
326GetEffectiveRightsFromAclA@12
327GetEffectiveRightsFromAclW@12
328GetEncryptedFileMetadata@12
329GetEventLogInformation@20
330GetExplicitEntriesFromAclA@12
331GetExplicitEntriesFromAclW@12
33265GetFileSecurityA@20
33366GetFileSecurityW@20
334GetInformationCodeAuthzLevelW@20
335GetInformationCodeAuthzPolicyW@24
336GetInheritanceSourceA@40
337GetInheritanceSourceW@40
33867GetKernelObjectSecurity@20
33968GetLengthSid@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
35369GetNumberOfEventLogRecords@8
35470GetOldestEventLogRecord@8
355GetOverlappedAccessResults@16
35671GetPrivateObjectSecurity@20
35772GetSecurityDescriptorControl@12
35873GetSecurityDescriptorDacl@16
35974GetSecurityDescriptorGroup@12
36075GetSecurityDescriptorLength@4
36176GetSecurityDescriptorOwner@12
362GetSecurityDescriptorRMControl@8
36377GetSecurityDescriptorSacl@16
364GetSecurityInfo@32
365GetSecurityInfoExA@36
366GetSecurityInfoExW@36
36778GetServiceDisplayNameA@16
36879GetServiceDisplayNameW@16
36980GetServiceKeyNameA@16
......@@ -372,65 +83,20 @@ GetSidIdentifierAuthority@4
37283GetSidLengthRequired@4
37384GetSidSubAuthority@8
37485GetSidSubAuthorityCount@4
375GetStringConditionFromBinary@16
376GetSiteDirectoryA@12
377GetSiteDirectoryW@12
378GetSiteNameFromSid@8
379GetSiteSidFromToken@4
380GetSiteSidFromUrl@4
381GetThreadWaitChain@28
38286GetTokenInformation@20
383GetTraceEnableFlags@8
384GetTraceEnableLevel@8
385GetTraceLoggerHandle@4
386GetTrusteeFormA@4
387GetTrusteeFormW@4
388GetTrusteeNameA@4
389GetTrusteeNameW@4
390GetTrusteeTypeA@4
391GetTrusteeTypeW@4
39287GetUserNameA@8
39388GetUserNameW@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
40789ImpersonateNamedPipeClient@4
40890ImpersonateSelf@4
40991InitializeAcl@12
41092InitializeSecurityDescriptor@8
41193InitializeSid@12
412InitiateShutdownA@20
413InitiateShutdownW@20
41494InitiateSystemShutdownA@20
415InitiateSystemShutdownExA@24
416InitiateSystemShutdownExW@24
41795InitiateSystemShutdownW@20
418InstallApplication@4
419IsProcessRestricted@0
420IsTextUnicode@12
421IsTokenRestricted@4
422IsTokenUntrusted@4
42396IsValidAcl@4
424IsValidRelativeSecurityDescriptor@12
42597IsValidSecurityDescriptor@4
42698IsValidSid@4
427IsWellKnownSid@8
42899LockServiceDatabase@4
429LogonUserA@24
430LogonUserExA@40
431LogonUserExExW@44
432LogonUserExW@40
433LogonUserW@24
434100LookupAccountNameA@28
435101LookupAccountNameW@28
436102LookupAccountSidA@28
......@@ -441,115 +107,18 @@ LookupPrivilegeNameA@16
441107LookupPrivilegeNameW@16
442108LookupPrivilegeValueA@12
443109LookupPrivilegeValueW@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
532110MakeAbsoluteSD@44
533111MakeSelfRelativeSD@12
534112MapGenericMask@8
535113NotifyBootConfigStatus@4
536NotifyChangeEventLog@8
537NotifyServiceStatusChange@12
538NotifyServiceStatusChangeA@12
539NotifyServiceStatusChangeW@12
540NpGetUserName@12
541114ObjectCloseAuditAlarmA@12
542115ObjectCloseAuditAlarmW@12
543ObjectDeleteAuditAlarmA@12
544ObjectDeleteAuditAlarmW@12
545116ObjectOpenAuditAlarmA@48
546117ObjectOpenAuditAlarmW@48
547118ObjectPrivilegeAuditAlarmA@24
548119ObjectPrivilegeAuditAlarmW@24
549120OpenBackupEventLogA@8
550121OpenBackupEventLogW@8
551OpenEncryptedFileRawA@12
552OpenEncryptedFileRawW@12
553122OpenEventLogA@8
554123OpenEventLogW@8
555124OpenProcessToken@12
......@@ -558,97 +127,28 @@ OpenSCManagerW@12
558127OpenServiceA@12
559128OpenServiceW@12
560129OpenThreadToken@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
595130PrivilegeCheck@12
596131PrivilegedServiceAuditAlarmA@20
597132PrivilegedServiceAuditAlarmW@20
598ProcessIdleTasks@0
599ProcessIdleTasksW@16
600ProcessTrace@16
601QueryAllTracesA@12
602QueryAllTracesW@12
603QueryRecoveryAgentsOnEncryptedFile@8
604QuerySecurityAccessMask@8
605QueryServiceConfig2A@20
606QueryServiceConfig2W@20
607133QueryServiceConfigA@16
608134QueryServiceConfigW@16
609QueryServiceDynamicInformation@12
610135QueryServiceLockStatusA@16
611136QueryServiceLockStatusW@16
612137QueryServiceObjectSecurity@20
613138QueryServiceStatus@8
614QueryServiceStatusEx@20
615QueryTraceA@16
616QueryTraceProcessingHandle@32
617QueryTraceW@16
618QueryUsersOnEncryptedFile@8
619QueryWindows31FilesMigration@4
620ReadEncryptedFileRaw@12
621139ReadEventLogA@28
622140ReadEventLogW@28
623141RegCloseKey@4
624142RegConnectRegistryA@12
625RegConnectRegistryExA@16
626RegConnectRegistryExW@16
627143RegConnectRegistryW@12
628RegCopyTreeA@12
629RegCopyTreeW@12
630144RegCreateKeyA@12
631145RegCreateKeyExA@36
632146RegCreateKeyExW@36
633RegCreateKeyTransactedA@44
634RegCreateKeyTransactedW@44
635147RegCreateKeyW@12
636148RegDeleteKeyA@8
637149RegDeleteKeyW@8
638RegDeleteKeyExA@16
639RegDeleteKeyExW@16
640RegDeleteKeyTransactedA@24
641RegDeleteKeyTransactedW@24
642RegDeleteKeyValueA@12
643RegDeleteKeyValueW@12
644RegDeleteTreeA@8
645RegDeleteTreeW@8
646150RegDeleteValueA@8
647151RegDeleteValueW@8
648RegDisablePredefinedCache@0
649RegDisablePredefinedCacheEx@0
650RegDisableReflectionKey@4
651RegEnableReflectionKey@4
652152RegEnumKeyA@16
653153RegEnumKeyExA@32
654154RegEnumKeyExW@32
......@@ -657,45 +157,26 @@ RegEnumValueA@32
657157RegEnumValueW@32
658158RegFlushKey@4
659159RegGetKeySecurity@16
660RegGetValueA@28
661RegGetValueW@28
662RegLoadAppKeyA@20
663RegLoadAppKeyW@20
664160RegLoadKeyA@12
665161RegLoadKeyW@12
666RegLoadMUIStringA@28
667RegLoadMUIStringW@28
668162RegNotifyChangeKeyValue@20
669RegOpenCurrentUser@8
670163RegOpenKeyA@12
671164RegOpenKeyExA@20
672165RegOpenKeyExW@20
673RegOpenKeyTransactedA@28
674RegOpenKeyTransactedW@28
675166RegOpenKeyW@12
676RegOpenUserClassesRoot@16
677RegOverridePredefKey@8
678167RegQueryInfoKeyA@48
679168RegQueryInfoKeyW@48
680RegQueryMultipleValuesA@20
681RegQueryMultipleValuesW@20
682RegQueryReflectionKey@8
683169RegQueryValueA@16
684170RegQueryValueExA@24
685171RegQueryValueExW@24
686172RegQueryValueW@16
687RegRenameKey@12
688173RegReplaceKeyA@16
689174RegReplaceKeyW@16
690175RegRestoreKeyA@12
691176RegRestoreKeyW@12
692177RegSaveKeyA@12
693RegSaveKeyExA@16
694RegSaveKeyExW@16
695178RegSaveKeyW@12
696179RegSetKeySecurity@12
697RegSetKeyValueA@24
698RegSetKeyValueW@24
699180RegSetValueA@20
700181RegSetValueExA@24
701182RegSetValueExW@24
......@@ -704,88 +185,92 @@ RegUnLoadKeyA@8
704185RegUnLoadKeyW@8
705186RegisterEventSourceA@8
706187RegisterEventSourceW@8
707RegisterIdleTask@16
708188RegisterServiceCtrlHandlerA@8
709RegisterServiceCtrlHandlerExA@12
710RegisterServiceCtrlHandlerExW@12
711189RegisterServiceCtrlHandlerW@8
712RegisterTraceGuidsA@32
713RegisterTraceGuidsW@32
714RegisterWaitChainCOMCallback@8
715RemoteRegEnumKeyWrapper@20
716RemoteRegEnumValueWrapper@28
717RemoteRegQueryInfoKeyWrapper@40
718RemoteRegQueryMultipleValues2Wrapper@24
719RemoteRegQueryMultipleValuesWrapper@20
720RemoteRegQueryValueWrapper@24
721RemoveTraceCallback@4
722RemoveUsersFromEncryptedFile@8
723190ReportEventA@36
724191ReportEventW@36
725192RevertToSelf@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
743193SetAclInformation@16
744SetEncryptedFileMetadata@24
745SetEntriesInAccessListA@24
746SetEntriesInAccessListW@24
747SetEntriesInAclA@16
748SetEntriesInAclW@16
749SetEntriesInAuditListA@24
750SetEntriesInAuditListW@24
751194SetFileSecurityA@12
752195SetFileSecurityW@12
753SetInformationCodeAuthzLevelW@16
754SetInformationCodeAuthzPolicyW@20
755196SetKernelObjectSecurity@12
756SetNamedSecurityInfoA@28
757SetNamedSecurityInfoExA@36
758SetNamedSecurityInfoExW@36
759SetNamedSecurityInfoW@28
760197SetPrivateObjectSecurity@20
761SetPrivateObjectSecurityEx@24
762SetSecurityAccessMask@8
763SetSecurityDescriptorControl@12
764198SetSecurityDescriptorDacl@16
765199SetSecurityDescriptorGroup@12
766200SetSecurityDescriptorOwner@12
767SetSecurityDescriptorRMControl@8
768201SetSecurityDescriptorSacl@16
769SetSecurityInfo@28
770SetSecurityInfoExA@36
771SetSecurityInfoExW@36
772SetServiceBits@16
773202SetServiceObjectSecurity@12
774203SetServiceStatus@8
775SetThreadToken@8
776204SetTokenInformation@16
777SetTraceCallback@8
778SetUserFileEncryptionKey@4
779SetUserFileEncryptionKeyEx@16
780205StartServiceA@12
781206StartServiceCtrlDispatcherA@4
782207StartServiceCtrlDispatcherW@4
783208StartServiceW@12
784StartTraceA@12
785StartTraceW@12
786SynchronizeWindows31FilesAndWindowsNTRegistry@16
787StopTraceA@16
788StopTraceW@16
209UnlockServiceDatabase@4
210
211; This is list of symbols added in Win32s 1.20 and available in all Win9x and WinNT versions
212SetThreadToken@8
213
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
789274SystemFunction001@12
790275SystemFunction002@12
791276SystemFunction003@8
......@@ -817,61 +302,766 @@ SystemFunction028@8
817302SystemFunction029@8
818303SystemFunction030@8
819304SystemFunction031@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
820312SystemFunction032@8
821313SystemFunction033@8
822SystemFunction034@12
823SystemFunction035@4
824SystemFunction036@8
825SystemFunction040@12
826SystemFunction041@12
827TraceEvent@12
828TraceEventInstance@20
829TraceMessage
830TraceMessageVa@24
831TraceQueryInformation@24
832TraceSetInformation@20
833TreeResetNamedSecurityInfoA@44
834TreeResetNamedSecurityInfoW@44
835TreeSetNamedSecurityInfoA@44
836TreeSetNamedSecurityInfoW@44
314
315; This is list of symbols added in Win32s 1.25, available in all Win9x versions and since Windows NT 3.51
316CreateProcessAsUserA@44
317CreateProcessAsUserW@44
318ImpersonateLoggedOnUser@4
319LogonUserA@24
320LogonUserW@24
321
322; This is list of symbols added in Win32s 1.25, available since Windows NT 3.51, but not available in Win9x
323LsaAddAccountRights@16
324LsaDeleteTrustedDomain@8
325LsaEnumerateAccountRights@16
326LsaEnumerateAccountsWithUserRight@16
327LsaQueryTrustedDomainInfo@16
328LsaRemoveAccountRights@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
837441TrusteeAccessToObjectA@24
838442TrusteeAccessToObjectW@24
839UninstallApplication@8
840UnlockServiceDatabase@4
841UnregisterIdleTask@12
842UnregisterTraceGuids@8
843UpdateTraceA@16
844UpdateTraceW@16
845UsePinForEncryptedFilesA@12
846UsePinForEncryptedFilesW@12
847WaitServiceState@16
848WmiCloseBlock@4
849WmiDevInstToInstanceNameA@16
850WmiDevInstToInstanceNameW@16
851WmiEnumerateGuids@8
852WmiExecuteMethodA@28
853WmiExecuteMethodW@28
854WmiFileHandleToInstanceNameA@16
855WmiFileHandleToInstanceNameW@16
856WmiFreeBuffer@4
857WmiMofEnumerateResourcesA@12
858WmiMofEnumerateResourcesW@12
859WmiNotificationRegistrationA@20
860WmiNotificationRegistrationW@20
861WmiOpenBlock@12
862WmiQueryAllDataA@12
863WmiQueryAllDataMultipleA@16
864WmiQueryAllDataMultipleW@16
865WmiQueryAllDataW@12
866WmiQueryGuidInformation@8
867WmiQuerySingleInstanceA@16
868WmiQuerySingleInstanceMultipleA@20
869WmiQuerySingleInstanceMultipleW@20
870WmiQuerySingleInstanceW@16
871WmiReceiveNotificationsA@16
872WmiReceiveNotificationsW@16
873WmiSetSingleInstanceA@20
874WmiSetSingleInstanceW@20
875WmiSetSingleItemA@24
876WmiSetSingleItemW@24
877WriteEncryptedFileRaw@12
443
444; This is list of symbols added in Windows 98 and also since Windows 2000, but not available in Win32s
445CryptContextAddRef@12
446CryptDuplicateHash@16
447CryptDuplicateKey@16
448CryptEnumProviderTypesA@24
449CryptEnumProviderTypesW@24
450CryptEnumProvidersA@24
451CryptEnumProvidersW@24
452CryptGetDefaultProviderA@20
453CryptGetDefaultProviderW@20
454CryptSetProviderExA@16
455CryptSetProviderExW@16
456
457; This is list of symbols added in Windows ME, but not available in Win32s and WinNT
458; CryptGetLocalKeyLimits@16
459
460;; This is end of Win9x symbols ;;
461
462; This is list of symbols (not mentioned in previous sections) added in Windows NT 4.0, but not available in Win32s and Win9x
463; BuildAccessRequestA@12 ; removed in Windows NT 4.0 SP4
464; BuildAccessRequestW@12 ; removed in Windows NT 4.0 SP4
465; DenyAccessRightsA@16 ; removed in Windows NT 4.0 SP4
466; DenyAccessRightsW@16 ; removed in Windows NT 4.0 SP4
467EnumServiceGroupW@36
468; GetAuditedPermissionsFromSDA@16 ; removed in Windows NT 4.0 SP4
469; GetAuditedPermissionsFromSDW@16 ; removed in Windows NT 4.0 SP4
470; GetEffectiveAccessRightsA@16 ; removed in Windows NT 4.0 SP4
471; GetEffectiveAccessRightsW@16 ; removed in Windows NT 4.0 SP4
472; GetEffectiveRightsFromSDA@12 ; removed in Windows NT 4.0 SP4
473; GetEffectiveRightsFromSDW@12 ; removed in Windows NT 4.0 SP4
474; GetExplicitAccessRightsA@16 ; removed in Windows NT 4.0 SP4
475; GetExplicitAccessRightsW@16 ; removed in Windows NT 4.0 SP4
476; GrantAccessRightsA@16 ; removed in Windows NT 4.0 SP4
477; GrantAccessRightsW@16 ; removed in Windows NT 4.0 SP4
478I_ScGetCurrentGroupStateW@12
479; IsAccessPermittedA@20 ; removed in Windows NT 4.0 SP4
480; IsAccessPermittedW@20 ; removed in Windows NT 4.0 SP4
481LsaGetUserName@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;
2; Definition file of KERNEL32.dll
3; Automatic generated by gendef
4; written by Kai Tietz 2008
5;
61LIBRARY "KERNEL32.dll"
72EXPORTS
8BaseThreadInitThunk@4
9InterlockedPushListSList@8
10AcquireSRWLockExclusive@4
11AcquireSRWLockShared@4
12ActivateActCtx@8
13ActivateActCtxWorker@8
14ActivatePackageVirtualizationContext@8
3
4; This file is a comprehensive documentation for 32-bit x86 kernel32.dll symbols.
5; It covers all 3 platforms Win32s, Win9x and WinNT and contains information
6; from native kernel32.dll libraries on 32-bit Windows systems and also from
7; 32-bit WoW64 kernel32.dll libraries on 64-bit Windows systems. Symbols in this
8; file are ordered by increasing Windows version in which they were introduced.
9; 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)
1521AddAtomA@4
1622AddAtomW@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
3223AllocConsole@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
5124BackupRead@28
5225BackupSeek@24
5326BackupWrite@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
11427Beep@8
11528BeginUpdateResourceA@8
11629BeginUpdateResourceW@8
117BindIoCompletionCallback@12
11830BuildCommDCBA@8
11931BuildCommDCBAndTimeoutsA@12
12032BuildCommDCBAndTimeoutsW@12
12133BuildCommDCBW@8
122BuildIoRingCancelRequest@20
123BuildIoRingFlushFile@24
124BuildIoRingReadFile@44
125BuildIoRingReadFileScatter@40
126BuildIoRingRegisterBuffers@16
127BuildIoRingRegisterFileHandles@16
128BuildIoRingWriteFile@48
129BuildIoRingWriteFileGather@44
13034CallNamedPipeA@28
13135CallNamedPipeW@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
15236ClearCommBreak@4
15337ClearCommError@12
154CloseConsoleHandle@4
15538CloseHandle@4
156CloseIoRing@4
157ClosePackageInfo@4
158ClosePrivateNamespace@8
15939CloseProfileUserMapping@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
17340CompareFileTime@8
174CompareStringA@24
175CompareStringEx@36
176CompareStringOrdinal@20
17741CompareStringW@24
17842ConnectNamedPipe@8
179ConsoleIMERoutine@4
180ConsoleMenuControl@12
18143ContinueDebugEvent@12
182ConvertCalDateTimeToSystemTime@8
183ConvertDefaultLocale@4
184ConvertFiberToThread@0
185ConvertNLSDayOfWeekToWin32DayOfWeek@4
186ConvertSystemTimeToCalDateTime@12
187ConvertThreadToFiber@4
188ConvertThreadToFiberEx@8
189ConvertToGlobalHandle@4
190CopyContext@12
191CopyFile2@12
19244CopyFileA@12
193CopyFileExA@24
194CopyFileExW@24
195CopyFileTransactedA@28
196CopyFileTransactedW@28
19745CopyFileW@12
198CopyLZFile@8
199CreateActCtxA@4
200CreateActCtxW@4
201CreateActCtxWWorker@4
202CreateBoundaryDescriptorA@8
203CreateBoundaryDescriptorW@8
20446CreateConsoleScreenBuffer@20
20547CreateDirectoryA@8
20648CreateDirectoryExA@12
20749CreateDirectoryExW@12
208CreateDirectoryTransactedA@16
209CreateDirectoryTransactedW@16
21050CreateDirectoryW@8
211CreateEnclave@32
21251CreateEventA@16
213CreateEventExA@16
214CreateEventExW@16
21552CreateEventW@16
216CreateFiber@12
217CreateFiberEx@20
218CreateFile2@20
21953CreateFileA@28
22054CreateFileMappingA@24
221CreateFileMappingFromApp@24
222CreateFileMappingNumaA@28
223CreateFileMappingNumaW@28
22455CreateFileMappingW@24
225CreateFileTransactedA@40
226CreateFileTransactedW@40
22756CreateFileW@28
228CreateHardLinkA@12
229CreateHardLinkTransactedA@16
230CreateHardLinkTransactedW@16
231CreateHardLinkW@12
232CreateIoCompletionPort@16
233CreateIoRing@24
234CreateJobObjectA@8
235CreateJobObjectW@8
236CreateJobSet@12
23757CreateMailslotA@16
23858CreateMailslotW@16
239CreateMemoryResourceNotification@4
24059CreateMutexA@12
241CreateMutexExA@16
242CreateMutexExW@16
24360CreateMutexW@12
24461CreateNamedPipeA@32
24562CreateNamedPipeW@32
246CreatePackageVirtualizationContext@8
24763CreatePipe@16
248CreatePrivateNamespaceA@12
249CreatePrivateNamespaceW@12
25064CreateProcessA@40
251; MSDN says these are exported from ADVAPI32.DLL.
252; CreateProcessAsUserA@44
253; CreateProcessAsUserW@44
254CreateProcessInternalA@48
255CreateProcessInternalW@48
25665CreateProcessW@40
257CreatePseudoConsole@20
25866CreateRemoteThread@28
259CreateRemoteThreadEx@32
26067CreateSemaphoreA@16
261CreateSemaphoreExA@24
262CreateSemaphoreExW@24
26368CreateSemaphoreW@16
264CreateSocketHandle@0
265CreateSymbolicLinkA@12
266CreateSymbolicLinkTransactedA@16
267CreateSymbolicLinkTransactedW@16
268CreateSymbolicLinkW@12
26969CreateTapePartition@16
27070CreateThread@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
28971DebugActiveProcess@4
290DebugActiveProcessStop@4
29172DebugBreak@0
292DebugBreakProcess@4
293DebugSetProcessKillOnExit@4
294DecodePointer@4
295DecodeSystemPointer@4
29673DefineDosDeviceA@12
29774DefineDosDeviceW@12
298DelayLoadFailureHook@8
29975DeleteAtom@4
300DeleteBoundaryDescriptor@4
30176DeleteCriticalSection@4
302DeleteFiber@4
30377DeleteFileA@4
304DeleteFileTransactedA@8
305DeleteFileTransactedW@8
30678DeleteFileW@4
307DeleteProcThreadAttributeList@4
308DeleteSynchronizationBarrier@4
309DeleteTimerQueue@4
310DeleteTimerQueueEx@8
311DeleteTimerQueueTimer@12
312DeleteVolumeMountPointA@4
313DeleteVolumeMountPointW@4
31479DeviceIoControl@32
315DisableThreadLibraryCalls@4
316DisableThreadProfiling@4
317DisassociateCurrentThreadFromCallback@4
318DiscardVirtualMemory@8
31980DisconnectNamedPipe@4
320DnsHostnameToComputerNameA@12
321DnsHostnameToComputerNameExW@12
322DnsHostnameToComputerNameW@12
32381DosDateTimeToFileTime@12
324DosPathToSessionPathA@12
325DosPathToSessionPathW@12
326DuplicateConsoleHandle@16
327DuplicateEncryptionInfoFileExt@20
32882DuplicateHandle@28
329DuplicatePackageVirtualizationContext@8
330EnableProcessOptionalXStateFeatures@8
331EnableThreadProfiling@20
332EncodePointer@4
333EncodeSystemPointer@4
33483EndUpdateResourceA@8
33584EndUpdateResourceW@8
33685EnterCriticalSection@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
35086EnumResourceLanguagesA@20
351EnumResourceLanguagesExA@28
352EnumResourceLanguagesExW@28
35387EnumResourceLanguagesW@20
35488EnumResourceNamesA@16
355EnumResourceNamesExA@24
356EnumResourceNamesExW@24
35789EnumResourceNamesW@16
35890EnumResourceTypesA@12
359EnumResourceTypesExA@20
360EnumResourceTypesExW@20
36191EnumResourceTypesW@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
37992EraseTape@12
38093EscapeCommFunction@8
38194ExitProcess@4
38295ExitThread@4
383ExitVDM@8
38496ExpandEnvironmentStringsA@12
38597ExpandEnvironmentStringsW@12
386ExpungeConsoleCommandHistoryA@4
387ExpungeConsoleCommandHistoryW@4
388ExtendVirtualBuffer@8
38998FatalAppExitA@8
39099FatalAppExitW@8
391100FatalExit@4
......@@ -395,11 +104,6 @@ FileTimeToSystemTime@8
395104FillConsoleOutputAttribute@20
396105FillConsoleOutputCharacterA@20
397106FillConsoleOutputCharacterW@20
398FindActCtxSectionGuid@20
399FindActCtxSectionGuidWorker@20
400FindActCtxSectionStringA@20
401FindActCtxSectionStringW@20
402FindActCtxSectionStringWWorker@20
403107FindAtomA@4
404108FindAtomW@4
405109FindClose@4
......@@ -407,96 +111,29 @@ FindCloseChangeNotification@4
407111FindFirstChangeNotificationA@12
408112FindFirstChangeNotificationW@12
409113FindFirstFileA@8
410FindFirstFileExA@24
411FindFirstFileExW@24
412FindFirstFileNameTransactedW@20
413FindFirstFileNameW@16
414FindFirstFileTransactedA@28
415FindFirstFileTransactedW@28
416114FindFirstFileW@8
417FindFirstStreamTransactedW@20
418FindFirstStreamW@16
419FindFirstVolumeA@8
420FindFirstVolumeMountPointA@12
421FindFirstVolumeMountPointW@12
422FindFirstVolumeW@8
423FindNLSString@28
424FindNLSStringEx@40
425115FindNextChangeNotification@4
426116FindNextFileA@8
427FindNextFileNameW@12
428117FindNextFileW@8
429FindNextStreamW@8
430FindNextVolumeA@12
431FindNextVolumeMountPointA@12
432FindNextVolumeMountPointW@12
433FindNextVolumeW@12
434FindPackagesByPackageFamily@28
435118FindResourceA@12
436119FindResourceExA@16
437120FindResourceExW@16
438121FindResourceW@12
439FindStringOrdinal@24
440FindVolumeClose@4
441FindVolumeMountPointClose@4
442FlsAlloc@4
443FlsFree@4
444FlsGetValue2@4
445FlsGetValue@4
446FlsSetValue@8
447122FlushConsoleInputBuffer@4
448123FlushFileBuffers@4
449124FlushInstructionCache@12
450FlushProcessWriteBuffers@0
451125FlushViewOfFile@8
452FoldStringA@20
453126FoldStringW@20
454FormatApplicationUserModelId@16
455127FormatMessageA@28
456128FormatMessageW@28
457129FreeConsole@0
458FreeEnvironmentStringsA@4
459FreeEnvironmentStringsW@4
460130FreeLibrary@4
461FreeLibraryAndExitThread@8
462FreeLibraryWhenCallbackReturns@8
463FreeMemoryJobObject@4
464131FreeResource@4
465FreeUserPhysicalPages@12
466FreeVirtualBuffer@4
467132GenerateConsoleCtrlEvent@8
468133GetACP@0
469GetActiveProcessorCount@4
470GetActiveProcessorGroupCount@0
471GetAppContainerAce@16
472GetAppContainerNamedObjectPath@20
473GetApplicationRecoveryCallback@20
474GetApplicationRecoveryCallbackWorker@20
475GetApplicationRestartSettings@16
476GetApplicationRestartSettingsWorker@16
477GetApplicationUserModelId@12
478134GetAtomNameA@12
479135GetAtomNameW@12
480GetBinaryType@8
481GetBinaryTypeA@8
482GetBinaryTypeW@8
483GetCPFileNameFromRegistry@12
484136GetCPInfo@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
500137GetCommMask@8
501138GetCommModemStatus@8
502139GetCommProperties@8
......@@ -504,295 +141,85 @@ GetCommState@8
504141GetCommTimeouts@8
505142GetCommandLineA@0
506143GetCommandLineW@0
507GetCompressedFileSizeA@8
508GetCompressedFileSizeTransactedA@12
509GetCompressedFileSizeTransactedW@12
510GetCompressedFileSizeW@8
511144GetComputerNameA@8
512GetComputerNameExA@12
513GetComputerNameExW@12
514145GetComputerNameW@8
515GetConsoleAliasA@16
516GetConsoleAliasExesA@8
517GetConsoleAliasExesLengthA@0
518GetConsoleAliasExesLengthW@0
519GetConsoleAliasExesW@8
520GetConsoleAliasW@16
521GetConsoleAliasesA@12
522GetConsoleAliasesLengthA@4
523GetConsoleAliasesLengthW@4
524GetConsoleAliasesW@12
525146GetConsoleCP@0
526GetConsoleCharType@12
527GetConsoleCommandHistoryA@12
528GetConsoleCommandHistoryLengthA@4
529GetConsoleCommandHistoryLengthW@4
530GetConsoleCommandHistoryW@12
531147GetConsoleCursorInfo@8
532GetConsoleCursorMode@12
533GetConsoleDisplayMode@4
534GetConsoleFontInfo@16
535GetConsoleFontSize@8
536GetConsoleHardwareState@12
537GetConsoleHistoryInfo@4
538GetConsoleInputExeNameA@8
539GetConsoleInputExeNameW@8
540GetConsoleInputWaitHandle@0
541GetConsoleKeyboardLayoutNameA@4
542GetConsoleKeyboardLayoutNameW@4
543148GetConsoleMode@8
544GetConsoleNlsMode@8
545GetConsoleOriginalTitleA@8
546GetConsoleOriginalTitleW@8
547149GetConsoleOutputCP@0
548GetConsoleProcessList@8
549150GetConsoleScreenBufferInfo@8
550GetConsoleScreenBufferInfoEx@8
551GetConsoleSelectionInfo@4
552151GetConsoleTitleA@8
553152GetConsoleTitleW@8
554GetConsoleWindow@0
555GetCurrencyFormatA@24
556GetCurrencyFormatEx@24
557GetCurrencyFormatW@24
558GetCurrentActCtx@4
559GetCurrentActCtxWorker@4
560GetCurrentApplicationUserModelId@8
561GetCurrentConsoleFont@12
562GetCurrentConsoleFontEx@12
563153GetCurrentDirectoryA@8
564154GetCurrentDirectoryW@8
565GetCurrentPackageFamilyName@8
566GetCurrentPackageFullName@8
567GetCurrentPackageId@8
568GetCurrentPackageInfo@16
569GetCurrentPackagePath@8
570GetCurrentPackageVirtualizationContext@0
571155GetCurrentProcess@0
572156GetCurrentProcessId@0
573GetCurrentProcessorNumber@0
574GetCurrentProcessorNumberEx@4
575157GetCurrentThread@0
576158GetCurrentThreadId@0
577GetCurrentThreadStackLimits@8
578GetDateFormatA@24
579GetDateFormatAWorker@28
580GetDateFormatEx@28
581159GetDateFormatW@24
582GetDateFormatWWorker@28
583GetDefaultCommConfigA@12
584GetDefaultCommConfigW@12
585GetDevicePowerState@8
586160GetDiskFreeSpaceA@20
587GetDiskFreeSpaceExA@16
588GetDiskFreeSpaceExW@16
589161GetDiskFreeSpaceW@20
590GetDiskSpaceInformationA@8
591GetDiskSpaceInformationW@8
592GetDllDirectoryA@8
593GetDllDirectoryW@8
594162GetDriveTypeA@4
595163GetDriveTypeW@4
596GetDurationFormat@32
597GetDurationFormatEx@32
598GetDynamicTimeZoneInformation@4
599GetEnabledXStateFeatures@0
600GetEncryptedFileVersionExt@8
601164GetEnvironmentStrings@0
602GetEnvironmentStringsA@0
603GetEnvironmentStringsW@0
604165GetEnvironmentVariableA@12
605166GetEnvironmentVariableW@12
606GetEraNameCountedString@16
607GetErrorMode@0
608167GetExitCodeProcess@8
609168GetExitCodeThread@8
610GetExpandedNameA@8
611GetExpandedNameW@8
612169GetFileAttributesA@4
613GetFileAttributesExA@12
614GetFileAttributesExW@12
615GetFileAttributesTransactedA@16
616GetFileAttributesTransactedW@16
617170GetFileAttributesW@4
618GetFileBandwidthReservation@24
619171GetFileInformationByHandle@8
620GetFileInformationByHandleEx@16
621GetFileInformationByName@16
622GetFileMUIInfo@16
623GetFileMUIPath@28
624172GetFileSize@8
625GetFileSizeEx@8
626173GetFileTime@16
627174GetFileType@4
628GetFinalPathNameByHandleA@16
629GetFinalPathNameByHandleW@16
630GetFirmwareEnvironmentVariableA@16
631GetFirmwareEnvironmentVariableExA@20
632GetFirmwareEnvironmentVariableExW@20
633GetFirmwareEnvironmentVariableW@16
634GetFirmwareType@4
635175GetFullPathNameA@16
636GetFullPathNameTransactedA@20
637GetFullPathNameTransactedW@20
638176GetFullPathNameW@16
639GetGeoInfoA@20
640GetGeoInfoEx@16
641GetGeoInfoW@20
642GetHandleContext@4
643GetHandleInformation@8
644GetIoRingInfo@8
645GetLargePageMinimum@0
646177GetLargestConsoleWindowSize@4
647178GetLastError@0
648179GetLocalTime@4
649GetLocaleInfoA@16
650GetLocaleInfoEx@16
651180GetLocaleInfoW@16
652181GetLogicalDriveStringsA@8
653182GetLogicalDriveStringsW@8
654183GetLogicalDrives@0
655GetLogicalProcessorInformation@8
656GetLogicalProcessorInformationEx@12
657GetLongPathNameA@12
658GetLongPathNameTransactedA@16
659GetLongPathNameTransactedW@16
660GetLongPathNameW@12
661GetMachineTypeAttributes@8
662184GetMailslotInfo@20
663GetMaximumProcessorCount@4
664GetMaximumProcessorGroupCount@0
665GetMemoryErrorHandlingCapabilities@4
666185GetModuleFileNameA@12
667186GetModuleFileNameW@12
668187GetModuleHandleA@4
669GetModuleHandleExA@12
670GetModuleHandleExW@12
671188GetModuleHandleW@4
672GetNLSVersion@12
673GetNLSVersionEx@12
674GetNamedPipeAttribute@20
675GetNamedPipeClientComputerNameA@12
676GetNamedPipeClientComputerNameW@12
677GetNamedPipeClientProcessId@8
678GetNamedPipeClientSessionId@8
679189GetNamedPipeHandleStateA@28
680190GetNamedPipeHandleStateW@28
681191GetNamedPipeInfo@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
701192GetNumberOfConsoleInputEvents@8
702193GetNumberOfConsoleMouseButtons@4
703194GetOEMCP@0
704195GetOverlappedResult@16
705GetOverlappedResultEx@20
706GetPackageApplicationIds@16
707GetPackageFamilyName@12
708GetPackageFullName@12
709GetPackageId@12
710GetPackageInfo@20
711GetPackagePath@16
712GetPackagePathByFullName@12
713GetPackagesByPackageFamily@20
714GetPhysicallyInstalledSystemMemory@4
715196GetPriorityClass@4
716197GetPrivateProfileIntA@16
717198GetPrivateProfileIntW@16
718199GetPrivateProfileSectionA@16
719GetPrivateProfileSectionNamesA@12
720GetPrivateProfileSectionNamesW@12
721200GetPrivateProfileSectionW@16
722201GetPrivateProfileStringA@24
723202GetPrivateProfileStringW@24
724GetPrivateProfileStructA@20
725GetPrivateProfileStructW@20
726203GetProcAddress@8
727GetProcessAffinityMask@12
728GetProcessDEPPolicy@12
729GetProcessDefaultCpuSetMasks@16
730GetProcessDefaultCpuSets@16
731GetProcessGroupAffinity@12
732GetProcessHandleCount@8
733204GetProcessHeap@0
734GetProcessHeaps@8
735GetProcessId@4
736GetProcessIdOfThread@4
737GetProcessInformation@16
738GetProcessIoCounters@8
739GetProcessMitigationPolicy@16
740GetProcessPreferredUILanguages@16
741GetProcessPriorityBoost@8
742205GetProcessShutdownParameters@8
743206GetProcessTimes@20
744GetProcessUserModeExceptionPolicy@4
745GetProcessVersion@4
746GetProcessWorkingSetSize@12
747GetProcessWorkingSetSizeEx@16
748GetProcessesInVirtualizationContext@12
749GetProcessorSystemCycleTime@12
750GetProductInfo@20
751GetProductName@8
752207GetProfileIntA@12
753208GetProfileIntW@12
754209GetProfileSectionA@12
755210GetProfileSectionW@12
756211GetProfileStringA@20
757212GetProfileStringW@20
758GetQueuedCompletionStatus@20
759GetQueuedCompletionStatusEx@24
760GetShortPathNameA@12
761GetShortPathNameW@12
762GetStagedPackagePathByFullName@12
763213GetStartupInfoA@4
764214GetStartupInfoW@4
765GetStateFolder@16
766215GetStdHandle@4
767GetStringScripts@20
768GetStringTypeA@20
769GetStringTypeExA@20
770GetStringTypeExW@20
771216GetStringTypeW@16
772GetSystemAppDataKey@16
773GetSystemCpuSetInformation@20
774GetSystemDEPPolicy@0
775217GetSystemDefaultLCID@0
776218GetSystemDefaultLangID@0
777GetSystemDefaultLocaleName@8
778GetSystemDefaultUILanguage@0
779219GetSystemDirectoryA@8
780220GetSystemDirectoryW@8
781GetSystemFileCacheSize@12
782GetSystemFirmwareTable@16
783221GetSystemInfo@4
784GetSystemPowerStatus@4
785GetSystemPreferredUILanguages@16
786GetSystemRegistryQuota@8
787222GetSystemTime@4
788GetSystemTimeAdjustment@12
789GetSystemTimeAsFileTime@4
790GetSystemTimePreciseAsFileTime@4
791GetSystemTimes@12
792GetSystemWindowsDirectoryA@8
793GetSystemWindowsDirectoryW@8
794GetSystemWow64DirectoryA@8
795GetSystemWow64DirectoryW@8
796223GetTapeParameters@16
797224GetTapePosition@20
798225GetTapeStatus@4
......@@ -800,63 +227,22 @@ GetTempFileNameA@16
800227GetTempFileNameW@16
801228GetTempPathA@8
802229GetTempPathW@8
803GetTempPath2A@8
804GetTempPath2W@8
230GetTickCount@0
805231GetThreadContext@8
806GetThreadDescription@8
807GetThreadEnabledXStateFeatures@0
808GetThreadErrorMode@0
809GetThreadGroupAffinity@8
810GetThreadIOPendingFlag@8
811GetThreadId@4
812GetThreadIdealProcessorEx@8
813GetThreadInformation@16
814232GetThreadLocale@0
815GetThreadPreferredUILanguages@16
816233GetThreadPriority@4
817GetThreadPriorityBoost@8
818GetThreadSelectedCpuSetMasks@16
819GetThreadSelectedCpuSets@16
820234GetThreadSelectorEntry@12
821235GetThreadTimes@20
822GetThreadUILanguage@0
823GetTickCount64@0
824GetTickCount@0
825GetTimeFormatA@24
826GetTimeFormatAWorker@28
827GetTimeFormatEx@24
828236GetTimeFormatW@24
829GetTimeFormatWWorker@24
830237GetTimeZoneInformation@4
831GetTimeZoneInformationForYear@12
832GetUILanguageInfo@20
833GetUserDefaultGeoName@8
834238GetUserDefaultLCID@0
835239GetUserDefaultLangID@0
836GetUserDefaultLocaleName@8
837GetUserDefaultUILanguage@0
838GetUserGeoID@4
839GetUserPreferredUILanguages@16
840GetVDMCurrentDirectories@8
841240GetVersion@0
842GetVersionExA@4
843GetVersionExW@4
844241GetVolumeInformationA@32
845GetVolumeInformationByHandleW@32
846242GetVolumeInformationW@32
847GetVolumeNameForVolumeMountPointA@12
848GetVolumeNameForVolumeMountPointW@12
849GetVolumePathNameA@12
850GetVolumePathNameW@12
851GetVolumePathNamesForVolumeNameA@16
852GetVolumePathNamesForVolumeNameW@16
853243GetWindowsDirectoryA@8
854244GetWindowsDirectoryW@8
855GetWriteWatch@24
856GetXStateFeaturesMask@8
857245GlobalAddAtomA@4
858GlobalAddAtomExA@8
859GlobalAddAtomExW@8
860246GlobalAddAtomW@4
861247GlobalAlloc@8
862248GlobalCompact@4
......@@ -871,67 +257,23 @@ GlobalGetAtomNameW@12
871257GlobalHandle@4
872258GlobalLock@4
873259GlobalMemoryStatus@4
874GlobalMemoryStatusEx@4
875GlobalMemoryStatusVlm@4
876260GlobalReAlloc@12
877261GlobalSize@4
878262GlobalUnWire@4
879263GlobalUnfix@4
880264GlobalUnlock@4
881265GlobalWire@4
882Heap32First@12
883Heap32ListFirst@8
884Heap32ListNext@8
885Heap32Next@4
886266HeapAlloc@12
887HeapCompact@8
888267HeapCreate@12
889HeapCreateTagsW@16
890268HeapDestroy@4
891HeapExtend@16
892269HeapFree@12
893HeapLock@4
894HeapQueryInformation@20
895HeapQueryTagW@20
896270HeapReAlloc@16
897HeapSetInformation@16
898271HeapSize@12
899HeapSummary@12
900HeapUnlock@4
901HeapUsage@20
902HeapValidate@12
903HeapWalk@8
904IdnToAscii@20
905IdnToNameprepUnicode@20
906IdnToUnicode@20
907272InitAtomTable@4
908273InitializeCriticalSection@4
909InitOnceBeginInitialize@16
910InitOnceComplete@12
911InitOnceExecuteOnce@16
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
274InterlockedDecrement@4 DATA ; FIXME: why is decorated stdcall function symbol disabled?
275InterlockedExchange@8 DATA ; FIXME: why is decorated stdcall function symbol disabled?
276InterlockedIncrement@4 DATA ; FIXME: why is decorated stdcall function symbol disabled?
935277IsBadCodePtr@4
936278IsBadHugeReadPtr@8
937279IsBadHugeWritePtr@8
......@@ -939,93 +281,19 @@ IsBadReadPtr@8
939281IsBadStringPtrA@8
940282IsBadStringPtrW@8
941283IsBadWritePtr@8
942IsCalendarLeapDay@20
943IsCalendarLeapMonth@16
944IsCalendarLeapYear@12
945284IsDBCSLeadByte@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
962285IsValidCodePage@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
1000286LCMapStringW@24
1001LZClose@4
1002LZCloseFile@4
1003LZCopy@8
1004LZCreateFileW@20
1005LZDone@0
1006LZInit@4
1007LZOpenFileA@12
1008LZOpenFileW@12
1009LZRead@12
1010LZSeek@12
1011LZStart@0
1012287LeaveCriticalSection@4
1013LeaveCriticalSectionWhenCallbackReturns@8
1014LoadAppInitDlls@0
1015LoadEnclaveData@36
1016288LoadLibraryA@4
1017289LoadLibraryExA@12
1018290LoadLibraryExW@12
1019291LoadLibraryW@4
1020292LoadModule@8
1021LoadPackagedLibrary@8
1022293LoadResource@8
1023LoadStringBaseExW@20
1024LoadStringBaseW@16
1025294LocalAlloc@8
1026295LocalCompact@4
1027296LocalFileTimeToFileTime@8
1028LocalFileTimeToLocalSystemTime@12
1029297LocalFlags@4
1030298LocalFree@4
1031299LocalHandle@4
......@@ -1033,164 +301,44 @@ LocalLock@4
1033301LocalReAlloc@12
1034302LocalShrink@8
1035303LocalSize@4
1036LocalSystemTimeToLocalFileTime@12
1037304LocalUnlock@4
1038LocaleNameToLCID@8
1039LocateXStateFeature@12
1040305LockFile@20
1041306LockFileEx@24
1042307LockResource@4
1043MapUserPhysicalPages@12
1044MapUserPhysicalPagesScatter@12
1045308MapViewOfFile@20
1046309MapViewOfFileEx@24
1047MapViewOfFileExNuma@28
1048MapViewOfFileVlm@28
1049MapViewOfFileFromApp@20
1050Module32First@8
1051Module32FirstW@8
1052Module32Next@8
1053Module32NextW@8
1054310MoveFileA@8
1055311MoveFileExA@12
1056312MoveFileExW@12
1057MoveFileTransactedA@24
1058MoveFileTransactedW@24
1059313MoveFileW@8
1060MoveFileWithProgressA@20
1061MoveFileWithProgressW@20
1062314MulDiv@12
1063315MultiByteToWideChar@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
1081316OpenEventA@12
1082317OpenEventW@12
1083318OpenFile@12
1084OpenFileById@24
1085319OpenFileMappingA@12
1086320OpenFileMappingW@12
1087OpenJobObjectA@12
1088OpenJobObjectW@12
1089321OpenMutexA@12
1090322OpenMutexW@12
1091OpenPackageInfoByFullName@12
1092OpenPrivateNamespaceA@8
1093OpenPrivateNamespaceW@8
1094323OpenProcess@12
1095; MSDN says OpenProcessToken is from Advapi32.dll, not Kernel32.dll
1096; OpenProcessToken@12
1097324OpenProfileUserMapping@0
1098325OpenSemaphoreA@12
1099326OpenSemaphoreW@12
1100OpenState@0
1101OpenStateExplicit@8
1102OpenThread@12
1103; MSDN says this is exported from ADVAPI32.DLL.
1104; OpenThreadToken@16
1105OpenWaitableTimerA@12
1106OpenWaitableTimerW@12
1107327OutputDebugStringA@4
1108328OutputDebugStringW@4
1109PackageFamilyNameFromFullName@12
1110PackageFamilyNameFromId@12
1111PackageFullNameFromId@12
1112PackageIdFromFullName@16
1113PackageNameAndPublisherIdFromFamilyName@20
1114ParseApplicationUserModelId@20
1115329PeekConsoleInputA@16
1116330PeekConsoleInputW@16
1117331PeekNamedPipe@24
1118PopIoRingCompletion@8
1119PostQueuedCompletionStatus@16
1120PowerClearRequest@8
1121PowerCreateRequest@4
1122PowerSetRequest@8
1123PrefetchVirtualMemory@16
1124332PrepareTape@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
1145333PulseEvent@4
1146334PurgeComm@8
1147QueryActCtxSettingsW@28
1148QueryActCtxSettingsWWorker@28
1149QueryActCtxW@28
1150QueryActCtxWWorker@28
1151QueryDepthSList@4
1152335QueryDosDeviceA@12
1153336QueryDosDeviceW@12
1154QueryFullProcessImageNameA@16
1155QueryFullProcessImageNameW@16
1156QueryIdleProcessorCycleTime@8
1157QueryIdleProcessorCycleTimeEx@12
1158QueryInformationJobObject@20
1159QueryIoRateControlInformationJobObject@16
1160QueryIoRingCapabilities@4
1161QueryMemoryResourceNotification@8
1162337QueryPerformanceCounter@4
1163338QueryPerformanceFrequency@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
1185339RaiseException@16
1186RaiseFailFastException@12
1187RaiseInvalid16BitExeError@4
1188ReOpenFile@16
1189ReclaimVirtualMemory@8
1190340ReadConsoleA@20
1191341ReadConsoleInputA@16
1192ReadConsoleInputExA@20
1193ReadConsoleInputExW@20
1194342ReadConsoleInputW@16
1195343ReadConsoleOutputA@20
1196344ReadConsoleOutputAttribute@20
......@@ -1198,447 +346,112 @@ ReadConsoleOutputCharacterA@20
1198346ReadConsoleOutputCharacterW@20
1199347ReadConsoleOutputW@20
1200348ReadConsoleW@20
1201ReadDirectoryChangesExW@36
1202ReadDirectoryChangesW@32
1203349ReadFile@20
1204350ReadFileEx@20
1205ReadFileScatter@20
1206ReadFileVlm@20
1207351ReadProcessMemory@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
1273352ReleaseMutex@4
1274ReleaseMutexWhenCallbackReturns@8
1275ReleasePackageVirtualizationContext@4
1276ReleasePseudoConsole@4
1277ReleaseSRWLockExclusive@4
1278ReleaseSRWLockShared@4
1279353ReleaseSemaphore@12
1280ReleaseSemaphoreWhenCallbackReturns@12
1281ResolveLocaleName@12
1282354RemoveDirectoryA@4
1283RemoveDirectoryTransactedA@8
1284RemoveDirectoryTransactedW@8
1285355RemoveDirectoryW@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
1298356ResetEvent@4
1299ResetWriteWatch@8
1300ResizePseudoConsole@8
1301ResolveDelayLoadedAPI@24
1302ResolveDelayLoadsFromDll@12
1303RestoreLastError@4
1304357ResumeThread@4
1305RtlCaptureContext@4
1306RtlCaptureStackBackTrace@16
1307RtlFillMemory@12
1308358RtlMoveMemory@12
1309RtlPcToFileHeader@8
1310359RtlUnwind@16
1311360RtlZeroMemory@8
1312361ScrollConsoleScreenBufferA@20
1313362ScrollConsoleScreenBufferW@20
1314363SearchPathA@24
1315364SearchPathW@24
1316SetCachedSigningLevel@16
1317SetCalendarInfoA@16
1318SetCalendarInfoW@16
1319SetClientTimeZoneInformation@4
1320SetComPlusPackageInstallStatus@4
1321365SetCommBreak@4
1322SetCommConfig@12
1323366SetCommMask@8
1324367SetCommState@8
1325368SetCommTimeouts@8
1326369SetComputerNameA@4
1327SetComputerNameEx2W@12
1328SetComputerNameExA@8
1329SetComputerNameExW@8
1330370SetComputerNameW@4
1331371SetConsoleActiveScreenBuffer@4
1332372SetConsoleCP@4
1333SetConsoleCommandHistoryMode@4
1334373SetConsoleCtrlHandler@8
1335SetConsoleCursor@8
1336374SetConsoleCursorInfo@8
1337SetConsoleCursorMode@12
1338375SetConsoleCursorPosition@8
1339SetConsoleDisplayMode@12
1340SetConsoleFont@8
1341SetConsoleHardwareState@12
1342SetConsoleHistoryInfo@4
1343SetConsoleIcon@4
1344SetConsoleInputExeNameA@4
1345SetConsoleInputExeNameW@4
1346SetConsoleKeyShortcuts@16
1347SetConsoleLocalEUDC@16
1348SetConsoleMaximumWindowSize@8
1349SetConsoleMenuClose@4
1350376SetConsoleMode@8
1351SetConsoleNlsMode@8
1352SetConsoleNumberOfCommandsA@8
1353SetConsoleNumberOfCommandsW@8
1354SetConsoleOS2OemFormat@4
1355377SetConsoleOutputCP@4
1356SetConsolePalette@12
1357SetConsoleScreenBufferInfoEx@8
1358378SetConsoleScreenBufferSize@8
1359379SetConsoleTextAttribute@8
1360380SetConsoleTitleA@4
1361381SetConsoleTitleW@4
1362382SetConsoleWindowInfo@12
1363SetCriticalSectionSpinCount@8
1364SetCurrentConsoleFontEx@12
1365383SetCurrentDirectoryA@4
1366384SetCurrentDirectoryW@4
1367SetDefaultCommConfigA@12
1368SetDefaultCommConfigW@12
1369SetDefaultDllDirectories@4
1370SetDllDirectoryA@4
1371SetDllDirectoryW@4
1372SetDynamicTimeZoneInformation@4
1373385SetEndOfFile@4
1374SetEnvironmentStringsA@4
1375SetEnvironmentStringsW@4
1376386SetEnvironmentVariableA@8
1377387SetEnvironmentVariableW@8
1378388SetErrorMode@4
1379389SetEvent@4
1380SetEventWhenCallbackReturns@8
1381SetFileApisToANSI@0
1382390SetFileApisToOEM@0
1383391SetFileAttributesA@8
1384SetFileAttributesTransactedA@12
1385SetFileAttributesTransactedW@12
1386392SetFileAttributesW@8
1387SetFileBandwidthReservation@24
1388SetFileCompletionNotificationModes@8
1389SetFileInformationByHandle@16
1390SetFileIoOverlappedRange@12
1391393SetFilePointer@16
1392SetFilePointerEx@20
1393SetFileShortNameA@8
1394SetFileShortNameW@8
1395394SetFileTime@16
1396SetFileValidData@12
1397SetFirmwareEnvironmentVariableA@16
1398SetFirmwareEnvironmentVariableExA@20
1399SetFirmwareEnvironmentVariableExW@20
1400SetFirmwareEnvironmentVariableW@16
1401SetHandleContext@8
1402395SetHandleCount@4
1403SetHandleInformation@12
1404SetInformationJobObject@16
1405SetIoRateControlInformationJobObject@8
1406SetIoRingCompletionEvent@8
1407SetLastConsoleEventActive@0
1408396SetLastError@4
1409SetLocalPrimaryComputerNameA@8
1410SetLocalPrimaryComputerNameW@8
1411397SetLocalTime@4
1412SetLocaleInfoA@12
1413SetLocaleInfoW@12
1414398SetMailslotInfo@8
1415SetMessageWaitingIndicator@8
1416SetNamedPipeAttribute@20
1417399SetNamedPipeHandleState@16
1418400SetPriorityClass@8
1419SetProcessAffinityMask@8
1420SetProcessAffinityUpdateMode@8
1421SetProcessDEPPolicy@4
1422SetProcessDefaultCpuSetMasks@12
1423SetProcessDefaultCpuSets@12
1424SetProcessDynamicEHContinuationTargets@12
1425SetProcessDynamicEnforcedCetCompatibleRanges@12
1426SetProcessInformation@16
1427SetProcessMitigationPolicy@12
1428SetProcessPreferredUILanguages@12
1429SetProcessPriorityBoost@8
1430401SetProcessShutdownParameters@8
1431SetProcessUserModeExceptionPolicy@4
1432SetProcessWorkingSetSize@12
1433SetProcessWorkingSetSizeEx@16
1434SetProtectedPolicy@12
1435SetSearchPathMode@4
1436402SetStdHandle@8
1437SetStdHandleEx@12
1438SetSystemFileCacheSize@12
1439SetSystemPowerState@8
1440403SetSystemTime@4
1441SetSystemTimeAdjustment@8
1442404SetTapeParameters@12
1443405SetTapePosition@24
1444SetTermsrvAppInstallMode@4
1445SetThreadAffinityMask@8
1446406SetThreadContext@8
1447SetThreadDescription@8
1448SetThreadErrorMode@8
1449SetThreadExecutionState@4
1450SetThreadGroupAffinity@12
1451SetThreadIdealProcessor@8
1452SetThreadIdealProcessorEx@12
1453SetThreadInformation@16
1454407SetThreadLocale@4
1455SetThreadPreferredUILanguages@12
1456408SetThreadPriority@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
1471409SetTimeZoneInformation@4
1472SetTimerQueueTimer@24
1473410SetUnhandledExceptionFilter@4
1474SetUserGeoID@4
1475SetUserGeoName@4
1476SetVDMCurrentDirectories@8
1477411SetVolumeLabelA@8
1478412SetVolumeLabelW@8
1479SetVolumeMountPointA@8
1480SetVolumeMountPointW@8
1481SetVolumeMountPointWStub@8
1482SetWaitableTimer@24
1483SetWaitableTimerEx@28
1484SetXStateFeaturesMask@12
1485413SetupComm@12
1486ShowConsoleCursor@8
1487SignalObjectAndWait@16
1488414SizeofResource@8
1489415Sleep@4
1490SleepConditionVariableCS@12
1491SleepConditionVariableSRW@16
1492416SleepEx@8
1493SortCloseHandle@4
1494SortGetHandle@12
1495StartThreadpoolIo@4
1496SubmitIoRing@16
1497SubmitThreadpoolWork@4
1498417SuspendThread@4
1499SwitchToFiber@4
1500SwitchToThread@0
1501418SystemTimeToFileTime@8
1502SystemTimeToTzSpecificLocalTime@12
1503SystemTimeToTzSpecificLocalTimeEx@12
1504TerminateJobObject@8
1505419TerminateProcess@8
1506420TerminateThread@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
1523421TlsAlloc@0
1524422TlsFree@4
1525TlsGetValue2@4
1526423TlsGetValue@4
1527424TlsSetValue@8
1528Toolhelp32ReadProcessMemory@20
1529425TransactNamedPipe@28
1530426TransmitCommChar@8
1531TrimVirtualBuffer@4
1532TryAcquireSRWLockExclusive@4
1533TryAcquireSRWLockShared@4
1534TryEnterCriticalSection@4
1535TrySubmitThreadpoolCallback@12
1536TzSpecificLocalTimeToSystemTime@12
1537TzSpecificLocalTimeToSystemTimeEx@12
1538UTRegister@28
1539UTUnRegister@4
1540427UnhandledExceptionFilter@4
1541428UnlockFile@20
1542429UnlockFileEx@20
1543430UnmapViewOfFile@4
1544UnmapViewOfFileEx@8
1545UnmapViewOfFileVlm@4
1546UnregisterApplicationRecoveryCallback@0
1547UnregisterApplicationRestart@0
1548UnregisterBadMemoryNotification@4
1549UnregisterConsoleIME@0
1550UnregisterWait@4
1551UnregisterWaitEx@8
1552UnregisterWaitUntilOOBECompleted@4
1553UpdateCalendarDayOfWeek@4
1554UpdateProcThreadAttribute@28
1555431UpdateResourceA@24
1556432UpdateResourceW@24
1557VDMConsoleOperation@8
1558VDMOperationStarted@4
1559433VerLanguageNameA@12
1560434VerLanguageNameW@12
1561VerSetConditionMask@16
1562VerifyConsoleIoHandle@4
1563VerifyScripts@20
1564VerifyVersionInfoA@16
1565VerifyVersionInfoW@16
1566435VirtualAlloc@16
1567VirtualAllocEx@20
1568VirtualAllocExNuma@24
1569VirtualAllocVlm@24
1570VirtualBufferExceptionHandler@12
1571436VirtualFree@12
1572VirtualFreeEx@16
1573VirtualFreeVlm@20
1574437VirtualLock@8
1575438VirtualProtect@16
1576439VirtualProtectEx@20
1577VirtualProtectVlm@24
1578440VirtualQuery@12
1579441VirtualQueryEx@16
1580VirtualQueryVlm@16
1581442VirtualUnlock@8
1582WTSGetActiveConsoleSessionId@0
1583443WaitCommEvent@12
1584444WaitForDebugEvent@8
1585WaitForDebugEventEx@8
1586445WaitForMultipleObjects@16
1587446WaitForMultipleObjectsEx@20
1588447WaitForSingleObject@8
1589448WaitForSingleObjectEx@12
1590WaitForThreadpoolIoCallbacks@8
1591WaitForThreadpoolTimerCallbacks@8
1592WaitForThreadpoolWaitCallbacks@8
1593WaitForThreadpoolWorkCallbacks@8
1594449WaitNamedPipeA@8
1595450WaitNamedPipeW@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
1629451WideCharToMultiByte@32
1630452WinExec@8
1631Wow64DisableWow64FsRedirection@4
1632Wow64EnableWow64FsRedirection@4
1633Wow64GetThreadContext@8
1634Wow64GetThreadSelectorEntry@12
1635Wow64RevertWow64FsRedirection@4
1636Wow64SetThreadContext@8
1637Wow64SuspendThread@4
1638453WriteConsoleA@20
1639454WriteConsoleInputA@16
1640WriteConsoleInputVDMA@16
1641WriteConsoleInputVDMW@16
1642455WriteConsoleInputW@16
1643456WriteConsoleOutputA@20
1644457WriteConsoleOutputAttribute@20
......@@ -1648,23 +461,16 @@ WriteConsoleOutputW@20
1648461WriteConsoleW@20
1649462WriteFile@20
1650463WriteFileEx@20
1651WriteFileGather@20
1652WriteFileVlm@20
1653464WritePrivateProfileSectionA@12
1654465WritePrivateProfileSectionW@12
1655466WritePrivateProfileStringA@16
1656467WritePrivateProfileStringW@16
1657WritePrivateProfileStructA@20
1658WritePrivateProfileStructW@20
1659468WriteProcessMemory@20
1660WriteProcessMemoryVlm@20
1661469WriteProfileSectionA@8
1662470WriteProfileSectionW@8
1663471WriteProfileStringA@12
1664472WriteProfileStringW@12
1665473WriteTapemark@16
1666ZombifyActCtx@4
1667ZombifyActCtxWorker@4
1668474_hread@12
1669475_hwrite@12
1670476_lclose@4
......@@ -1673,32 +479,1760 @@ _llseek@12
1673479_lopen@8
1674480_lread@12
1675481_lwrite@12
1676lstrcat@8
1677482lstrcatA@8
1678483lstrcatW@8
1679lstrcmp@8
1680484lstrcmpA@8
1681485lstrcmpW@8
1682lstrcmpi@8
1683486lstrcmpiA@8
1684487lstrcmpiW@8
1685lstrcpy@8
1686488lstrcpyA@8
1687489lstrcpyW@8
1688lstrcpyn@12
490lstrlenA@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
1689552lstrcpynA@12
1690553lstrcpynW@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
1691566lstrlen@4
1692lstrlenA@4
1693lstrlenW@4
1694;
1695; MSDN says these functions are exported
1696; from winmm.dll. Commented out for
1697; compatibility with older versions of
1698; Windows.
1699;
1700;timeBeginPeriod@4
1701;timeEndPeriod@4
1702;timeGetDevCaps@8
1703;timeGetSystemTime@8
1704;timeGetTime@0
567
568; This is list of symbols added in Win32s 1.20, available since Windows NT 3.1, but not available in Win9x
569AddConsoleAliasW@12
570BaseAttachCompleteThunk@0 ; FIXME: All WinNT versions have ABI "BaseAttachCompleteThunk@16", removed in Windows XP
571; BasepDebugDump@4 ; removed in Windows NT 3.51
572CloseConsoleHandle@4
573CmdBatNotification@4
574ConsoleMenuControl@12
575; ConsoleSubst@16 ; removed in Windows NT 3.51
576CreateVirtualBuffer@12 ; removed in Windows Server 2003 SP1
577DuplicateConsoleHandle@16
578ExitVDM@8
579ExpungeConsoleCommandHistoryA@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;
2; Definition file of ntdll.dll
3; Automatic generated by gendef
4; written by Kai Tietz 2008
5;
6LIBRARY "ntdll.dll"
1LIBRARY "NTDLL.dll"
72EXPORTS
8RtlDispatchAPC@12
9RtlActivateActivationContextUnsafeFast@0
10RtlDeactivateActivationContextUnsafeFast@0
11RtlInterlockedPushListSList@8
12@RtlUlongByteSwap@4
13@RtlUlonglongByteSwap@8
14@RtlUshortByteSwap@4
15ExpInterlockedPopEntrySListEnd@0
16ExpInterlockedPopEntrySListFault@0
17ExpInterlockedPopEntrySListResume@0
18RtlpInterlockedPopEntrySeqSListEnd@0
19RtlpInterlockedPopEntrySeqSListFault@0
20RtlpInterlockedPopEntrySeqSListResume@0
21A_SHAFinal@8
22A_SHAInit@4
23A_SHAUpdate@12
24AlpcAdjustCompletionListConcurrencyCount@8
25AlpcFreeCompletionListMessage@8
26AlpcGetCompletionListLastMessageInformation@12
27AlpcGetCompletionListMessageAttributes@8
28AlpcGetHeaderSize@4
29AlpcGetMessageAttribute@8
30AlpcGetMessageFromCompletionList@8
31AlpcGetOutstandingCompletionListMessageCount@4
32AlpcInitializeMessageAttribute@16
33AlpcMaxAllowedMessageLength@0
34AlpcRegisterCompletionList@20
35AlpcRegisterCompletionListWorkerThread@4
36AlpcRundownCompletionList@4
37AlpcUnregisterCompletionList@4
38AlpcUnregisterCompletionListWorkerThread@4
39ApiSetQueryApiSetPresence@8
40ApiSetQueryApiSetPresenceEx@12
41CsrAllocateCaptureBuffer@8
3
4; This file is a comprehensive documentation for 32-bit x86 ntdll.dll symbols.
5; It covers all 3 platforms Win32s, Win9x and WinNT and contains information
6; from native ntdll.dll libraries on 32-bit Windows systems and also from
7; 32-bit WoW64 ntdll.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 subset of Win9x symbols which is subset
11; of WinNT symbols. Comments contains additional information with exceptions.
12
13; 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)
14DbgBreakPoint@0
15DbgPrint ; cdecl
16DbgPrompt@12
17NtCurrentTeb@0
18NtQueryEaFile@36
19NtQueryPerformanceCounter@8
20NtSetEaFile@16
21RtlCreateHeap@24
22RtlEnlargedIntegerMultiply@8
23RtlExtendedIntegerMultiply@12
24RtlExtendedLargeIntegerDivide@16
25RtlImageDirectoryEntryToData@16
26RtlImageNtHeader@4
27RtlLargeIntegerSubtract@16
28RtlUnwind@16
29RtlValidateHeap@12 ; Win32s, Win9x and Windows NT 3.1 has ABI "RtlValidateHeap@4", Windows NT 3.5 and new has ABI "RtlValidateHeap@12"
30
31; This is list of symbols available only in Win32s (not available in Win9x and WinNT)
32; RtlProcessHeap@0
33
34; This is list of symbols available in Win32s and Win9x but not in WinNT
35; RtlExFreeHeap@12
36; 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
42140CsrAllocateMessagePointer@12
43141CsrCaptureMessageBuffer@16
44CsrCaptureMessageMultiUnicodeStringsInPlace@12
45142CsrCaptureMessageString@20
46143CsrCaptureTimeout@8
47144CsrClientCallServer@16
48CsrClientConnectToServer@20
145CsrClientConnectToServer@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
49150CsrFreeCaptureBuffer@4
50CsrGetProcessId@0
51151CsrIdentifyAlertableThread@0
52CsrNewThread@0
53CsrProbeForRead@12
54CsrProbeForWrite@12
152CsrNewThread@0 ; removed in Windows Vista SP1
153CsrProbeForRead@12 ; removed in Windows Vista
154CsrProbeForWrite@12 ; removed in Windows Vista
55155CsrSetPriorityClass@8
56CsrVerifyRegion@8
57DbgBreakPoint@0
58DbgPrint
59DbgPrintEx
60DbgPrintReturnControlC
61DbgPrompt@12
62DbgQueryDebugFilterState@8
63DbgSetDebugFilterState@12
64DbgSsHandleKmApiMsg@8
65DbgSsInitialize@16
156; CsrStartProfile@0 ; removed in Windows NT 3.5
157; CsrStopDumpProfile@0 ; removed in Windows NT 3.5
158; CsrStopProfile@0 ; removed in Windows NT 3.5
159; CsrpProcessCallbackRequest@4 ; removed in Windows NT 4.0
160DbgSsHandleKmApiMsg@8 ; removed in Windows XP
161DbgSsInitialize@16 ; removed in Windows XP
66162DbgUiConnectToDbg@0
67163DbgUiContinue@8
68DbgUiConvertStateChangeStructure@8
69DbgUiConvertStateChangeStructureEx@8
70DbgUiDebugActiveProcess@4
71DbgUiGetThreadDebugObject@0
72DbgUiIssueRemoteBreakin@4
73DbgUiRemoteBreakin@4
74DbgUiSetThreadDebugObject@4
75DbgUiStopDebugging@4
76164DbgUiWaitStateChange@8
77165DbgUserBreakPoint@0
78EtwCheckCoverage@4
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
166KiUserApcDispatcher@20 ; really stdcall @20, gendef detects it incorrectly
125167KiUserExceptionDispatcher@8
126168LdrAccessResource@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
140169LdrFindEntryForAddress@8
141170LdrFindResourceDirectory_U@16
142LdrFindResourceEx_U@20
143171LdrFindResource_U@16
144LdrFlushAlternateResourceModules@0
145LdrGetDllDirectory@4
146LdrGetDllFullName@8
147172LdrGetDllHandle@16
148LdrGetDllHandleByMapping@8
149LdrGetDllHandleByName@12
150LdrGetDllHandleEx@20
151LdrGetDllPath@16
152LdrGetFailureData@0
153LdrGetFileNameFromLoadAsDataTable@8
154173LdrGetProcedureAddress@16
155LdrGetProcedureAddressEx@20
156LdrGetProcedureAddressForCaller@24
157LdrHotPatchRoutine@0
158LdrInitShimEngineDynamic@4
159LdrInitializeEnclave@20
160LdrInitializeThunk@16
161LdrIsModuleSxsRedirected@4
162LdrLoadAlternateResourceModule@16
163LdrLoadAlternateResourceModuleEx@20
174LdrInitializeThunk@16 ; really stdcall @16, gendef detects it incorrectly
164175LdrLoadDll@16
165LdrLoadEnclaveModule@12
166LdrLockLoaderLock@12
167LdrOpenImageFileOptionsKey@12
168LdrParentInterlockedPopEntrySList@0
169LdrParentRtlInitializeNtUserPfn@0
170LdrParentRtlResetNtUserPfn@0
171LdrParentRtlRetrieveNtUserPfn@0
172176LdrProcessRelocationBlock@16
173LdrProcessRelocationBlockEx@20
174177LdrQueryImageFileExecutionOptions@24
175LdrQueryImageFileExecutionOptionsEx@28
176LdrQueryImageFileKeyOption@24
177LdrQueryModuleServiceTags@12
178LdrQueryOptionalDelayLoadedAPI@16
179178LdrQueryProcessModuleInformation@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
197179LdrShutdownProcess@0
198180LdrShutdownThread@0
199LdrStandardizeSystemPath@4
200LdrSystemDllInitBlock@0
201LdrUnloadAlternateResourceModule@4
202LdrUnloadAlternateResourceModuleEx@8
203181LdrUnloadDll@4
204LdrUnlockLoaderLock@8
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
182LdrVerifyImageMatchesChecksum@16 ; Windows NT 3.1-3.51 has ABI "LdrVerifyImageMatchesChecksum@4", Windows NT 4.0 and new has ABI "LdrVerifyImageMatchesChecksum@16"
223183NtAcceptConnectPort@24
224184NtAccessCheck@32
225185NtAccessCheckAndAuditAlarm@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
238186NtAdjustGroupsToken@24
239187NtAdjustPrivilegesToken@24
240NtAdjustTokenClaimsAndDeviceGroups@64
241188NtAlertResumeThread@8
242189NtAlertThread@4
243NtAlertThreadByThreadId@4
244190NtAllocateLocallyUniqueId@4
245NtAllocateReserveObject@12
246NtAllocateUserPhysicalPages@12
247NtAllocateUserPhysicalPagesEx@20
248NtAllocateUuids@16
249191NtAllocateVirtualMemory@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
281192NtCancelIoFile@8
282NtCancelIoFileEx@12
283NtCancelSynchronousIoFile@12
284NtCancelTimer2@8
285193NtCancelTimer@8
286NtCancelWaitCompletionPacket@8
287NtChangeProcessState@24
288NtChangeThreadState@24
289NtClearEvent@4
290NtClose@4
291194NtCloseObjectAuditAlarm@12
292NtCommitComplete@8
293NtCommitEnlistment@8
294NtCommitRegistryTransaction@8
295NtCommitTransaction@8
296NtCompactKeys@8
297NtCompareObjects@8
298NtCompareSigningLevels@8
299NtCompareTokens@12
300195NtCompleteConnectPort@4
301NtCompressKey@4
302196NtConnectPort@32
303197NtContinue@8
304NtContinueEx@8
305NtConvertBetweenAuxiliaryCounterAndPerformanceCounter@16
306NtCreateCrossVmEvent@24
307NtCreateCrossVmMutant@24
308NtCreateDebugObject@16
309198NtCreateDirectoryObject@12
310NtCreateDirectoryObjectEx@20
311NtCreateEnclave@36
312NtCreateEnlistment@32
313199NtCreateEvent@20
314200NtCreateEventPair@12
315NtCreateFile@44
316NtCreateIRTimer@12
317NtCreateIoCompletion@16
318NtCreateIoRing@20
319NtCreateJobObject@12
320NtCreateJobSet@12
321201NtCreateKey@28
322NtCreateKeyTransacted@32
323NtCreateKeyedEvent@16
324NtCreateLowBoxToken@36
325202NtCreateMailslotFile@32
326203NtCreateMutant@16
327204NtCreateNamedPipeFile@56
328205NtCreatePagingFile@16
329NtCreatePartition@16
330206NtCreatePort@20
331NtCreatePrivateNamespace@16
332207NtCreateProcess@32
333NtCreateProcessEx@36
334NtCreateProcessStateChange@20
335NtCreateProfile@36
336NtCreateProfileEx@40
337NtCreateRegistryTransaction@16
338NtCreateResourceManager@28
339NtCreateSection@28
340NtCreateSectionEx@36
341NtCreateSemaphore@20
208NtCreateProfile@36 ; Windows NT 3.1-3.5 has ABI "NtCreateProfile@28", Windows NT 3.51 and new has ABI "NtCreateProfile@36"
342209NtCreateSymbolicLinkObject@16
343210NtCreateThread@32
344NtCreateThreadEx@44
345NtCreateThreadStateChange@20
346NtCreateTimer2@20
347NtCreateTimer@16
211NtCreateTimer@16 ; Windows NT 3.1-3.51 has ABI "NtCreateTimer@12", Windows NT 4.0 and new has ABI "NtCreateTimer@16"
348212NtCreateToken@52
349NtCreateTokenEx@68
350NtCreateTransaction@40
351NtCreateTransactionManager@24
352NtCreateUserProcess@44
353NtCreateWaitCompletionPacket@12
354NtCreateWaitablePort@20
355NtCreateWnfStateName@28
356NtCreateWorkerFactory@40
357NtCurrentTeb@0
358NtDebugActiveProcess@8
359NtDebugContinue@12
360213NtDelayExecution@8
361NtDeleteAtom@4
362NtDeleteBootEntry@4
363NtDeleteDriverEntry@4
364NtDeleteFile@4
365214NtDeleteKey@4
366NtDeleteObjectAuditAlarm@12
367NtDeletePrivateNamespace@4
368215NtDeleteValueKey@8
369NtDeleteWnfStateData@8
370NtDeleteWnfStateName@4
371216NtDeviceIoControlFile@40
372NtDirectGraphicsCall@20
373NtDisableLastKnownGood@0
374217NtDisplayString@4
375NtDrawText@4
376218NtDuplicateObject@28
377219NtDuplicateToken@24
378NtEnableLastKnownGood@0
379NtEnumerateBootEntries@8
380NtEnumerateDriverEntries@8
381220NtEnumerateKey@24
382NtEnumerateSystemEnvironmentValuesEx@12
383NtEnumerateTransactionObject@20
384221NtEnumerateValueKey@24
385222NtExtendSection@8
386NtFilterBootOption@20
387NtFilterToken@24
388NtFilterTokenEx@56
389NtFindAtom@12
390223NtFlushBuffersFile@8
391NtFlushBuffersFileEx@20
392NtFlushInstallUILanguage@8
393224NtFlushInstructionCache@12
394225NtFlushKey@4
395NtFlushProcessWriteBuffers@0
396226NtFlushVirtualMemory@16
397227NtFlushWriteBuffer@0
398NtFreeUserPhysicalPages@12
399228NtFreeVirtualMemory@16
400NtFreezeRegistry@4
401NtFreezeTransactions@8
402229NtFsControlFile@40
403NtGetCachedSigningLevel@24
404NtGetCompleteWnfStateSubscription@24
405230NtGetContextThread@8
406NtGetCurrentProcessorNumber@0
407NtGetCurrentProcessorNumberEx@4
408NtGetDevicePowerState@8
409NtGetMUIRegistryInfo@12
410NtGetNextProcess@20
411NtGetNextThread@24
412NtGetNlsSectionPtr@20
413NtGetNotificationResourceManager@28
414NtGetPlugPlayEvent@16
415NtGetTickCount@0
416NtGetWriteWatch@28
417NtImpersonateAnonymousToken@4
231; NtGetTickCount@0 ; removed in Windows XP
418232NtImpersonateClientOfPort@8
419233NtImpersonateThread@12
420NtInitializeEnclave@20
421NtInitializeNlsFiles@16 ;Check!!! gendef says 12
422234NtInitializeRegistry@4
423NtInitiatePowerAction@16
424NtIsProcessInJob@8
425NtIsSystemResumeAutomatic@0
426NtIsUILanguageComitted@0
235; NtInitializeVDM@0 ; removed in Windows NT 3.5
427236NtListenPort@8
428237NtLoadDriver@4
429NtLoadEnclaveData@36
430NtLoadKey2@12
431NtLoadKey3@32
432238NtLoadKey@8
433NtLoadKeyEx@32
434239NtLockFile@40
435NtLockProductActivationKeys@8
436NtLockRegistryKey@4
437240NtLockVirtualMemory@16
438NtMakePermanentObject@4
439241NtMakeTemporaryObject@4
440NtManageHotPatch@16
441NtManagePartition@20
442NtMapCMFModule@24
443NtMapUserPhysicalPages@12
444NtMapUserPhysicalPagesScatter@12
445NtMapViewOfSection@40
446NtMapViewOfSectionEx@36
447NtModifyBootEntry@4
448NtModifyDriverEntry@4
449242NtNotifyChangeDirectoryFile@36
450NtNotifyChangeDirectoryFileEx@40
451243NtNotifyChangeKey@40
452NtNotifyChangeMultipleKeys@48
453NtNotifyChangeSession@32
454NtOpenDirectoryObject@12
455NtOpenEnlistment@20
456244NtOpenEvent@12
457245NtOpenEventPair@12
458246NtOpenFile@24
459NtOpenIoCompletion@12
460NtOpenJobObject@12
461247NtOpenKey@12
462NtOpenKeyEx@16
463NtOpenKeyTransacted@16
464NtOpenKeyTransactedEx@20
465NtOpenKeyedEvent@12
466248NtOpenMutant@12
467249NtOpenObjectAuditAlarm@48
468NtOpenPartition@12
469NtOpenPrivateNamespace@16
470250NtOpenProcess@16
471251NtOpenProcessToken@12
472NtOpenProcessTokenEx@16
473NtOpenRegistryTransaction@12
474NtOpenResourceManager@20
475252NtOpenSection@12
476253NtOpenSemaphore@12
477NtOpenSession@12
478254NtOpenSymbolicLinkObject@12
479255NtOpenThread@16
480256NtOpenThreadToken@16
481NtOpenThreadTokenEx@20
482257NtOpenTimer@12
483NtOpenTransaction@20
484NtOpenTransactionManager@24
485NtPlugPlayControl@12
486NtPowerInformation@20
487NtPrePrepareComplete@8
488NtPrePrepareEnlistment@8
489NtPrepareComplete@8
490NtPrepareEnlistment@8
491258NtPrivilegeCheck@12
492259NtPrivilegeObjectAuditAlarm@24
493260NtPrivilegedServiceAuditAlarm@20
494NtPropagationComplete@16
495NtPropagationFailed@12
496261NtProtectVirtualMemory@20
497NtPssCaptureVaSpaceBulk@20
498262NtPulseEvent@8
499NtQueryAttributesFile@8
500NtQueryAuxiliaryCounterFrequency@4
501NtQueryBootEntryOrder@8
502NtQueryBootOptions@8
503NtQueryDebugFilterState@8
504263NtQueryDefaultLocale@8
505NtQueryDefaultUILanguage@4
506264NtQueryDirectoryFile@44
507NtQueryDirectoryFileEx@40
508265NtQueryDirectoryObject@28
509NtQueryDriverEntryOrder@8
510NtQueryEaFile@36
511266NtQueryEvent@20
512NtQueryFullAttributesFile@8
513NtQueryInformationAtom@20
514NtQueryInformationByName@20
515NtQueryInformationEnlistment@20
516267NtQueryInformationFile@20
517NtQueryInformationJobObject@20
518268NtQueryInformationPort@20
519269NtQueryInformationProcess@20
520NtQueryInformationResourceManager@20
521270NtQueryInformationThread@20
522271NtQueryInformationToken@20
523NtQueryInformationTransaction@20
524NtQueryInformationTransactionManager@20
525NtQueryInformationWorkerFactory@20
526NtQueryInstallUILanguage@4
527NtQueryIntervalProfile@8
528NtQueryIoCompletion@20
529NtQueryIoRingCapabilities@8
272NtQueryIntervalProfile@8 ; Windows NT 3.1-3.5 has ABI "NtQueryIntervalProfile@4", Windows NT 3.51 and new has ABI "NtQueryIntervalProfile@8"
530273NtQueryKey@20
531NtQueryLicenseValue@20
532NtQueryMultipleValueKey@24
533274NtQueryMutant@20
534275NtQueryObject@20
535NtQueryOpenSubKeys@8
536NtQueryOpenSubKeysEx@16
537NtQueryPerformanceCounter@8
538NtQueryPortInformationProcess@0
539NtQueryQuotaInformationFile@36
540276NtQuerySection@20
541NtQuerySecurityAttributesToken@24
542277NtQuerySecurityObject@20
543NtQuerySecurityPolicy@24
544278NtQuerySemaphore@20
545279NtQuerySymbolicLinkObject@12
546280NtQuerySystemEnvironmentValue@16
547NtQuerySystemEnvironmentValueEx@20
548281NtQuerySystemInformation@16
549NtQuerySystemInformationEx@24
550282NtQuerySystemTime@4
551283NtQueryTimer@20
552NtQueryTimerResolution@12
553284NtQueryValueKey@24
554285NtQueryVirtualMemory@24
555286NtQueryVolumeInformationFile@20
556NtQueryWnfStateData@24
557NtQueryWnfStateNameInformation@20
558NtQueueApcThread@20
559NtQueueApcThreadEx2@28
560NtQueueApcThreadEx@24
561287NtRaiseException@12
562288NtRaiseHardError@24
563289NtReadFile@36
564NtReadFileScatter@36
565NtReadOnlyEnlistment@8
566290NtReadRequestData@24
567291NtReadVirtualMemory@20
568NtReadVirtualMemoryEx@24
569NtRecoverEnlistment@8
570NtRecoverResourceManager@4
571NtRecoverTransactionManager@4
572NtRegisterProtocolAddressInformation@20
573292NtRegisterThreadTerminatePort@4
574NtReleaseCMFViewOwnership@0
575NtReleaseKeyedEvent@16
576293NtReleaseMutant@8
577NtReleaseSemaphore@12
578NtReleaseWorkerFactoryWorker@4
579NtRemoveIoCompletion@20
580NtRemoveIoCompletionEx@24
581NtRemoveProcessDebug@8
582NtRenameKey@8
583NtRenameTransactionManager@8
294; NtReleaseProcessMutant@0 ; removed in Windows NT 4.0
295; NtRenameValueKey@16 ; removed in Windows NT 3.5
584296NtReplaceKey@12
585NtReplacePartitionUnit@12
586297NtReplyPort@8
587298NtReplyWaitReceivePort@16
588NtReplyWaitReceivePortEx@20
589299NtReplyWaitReplyPort@8
590NtRequestDeviceWakeup@4
591300NtRequestPort@8
592301NtRequestWaitReplyPort@12
593NtRequestWakeupLatency@4
594302NtResetEvent@8
595NtResetWriteWatch@12
596303NtRestoreKey@12
597NtResumeProcess@4
598304NtResumeThread@8
599NtRevertContainerImpersonation@0
600NtRollbackComplete@8
601NtRollbackEnlistment@8
602NtRollbackRegistryTransaction@8
603NtRollbackTransaction@8
604NtRollforwardTransactionManager@8
605305NtSaveKey@8
606NtSaveKeyEx@12
607NtSaveMergedKeys@12
608NtSecureConnectPort@36
609NtSerializeBoot@0
610NtSetBootEntryOrder@8
611NtSetBootOptions@8
612NtSetCachedSigningLevel2@24
613NtSetCachedSigningLevel@20
614306NtSetContextThread@8
615NtSetDebugFilterState@12
616307NtSetDefaultHardErrorPort@4
617308NtSetDefaultLocale@8
618NtSetDefaultUILanguage@4
619NtSetDriverEntryOrder@8
620NtSetEaFile@16
621309NtSetEvent@8
622NtSetEventBoostPriority@4
623310NtSetHighEventPair@4
624311NtSetHighWaitLowEventPair@4
625NtSetIRTimer@8
626NtSetInformationDebugObject@20
627NtSetInformationEnlistment@16
312; NtSetHighWaitLowThread@0 ; removed in Windows 2000
628313NtSetInformationFile@20
629NtSetInformationIoRing@16
630NtSetInformationJobObject@16
631314NtSetInformationKey@16
632NtSetInformationObject@16
633315NtSetInformationProcess@16
634NtSetInformationResourceManager@16
635NtSetInformationSymbolicLink@16
636316NtSetInformationThread@16
637317NtSetInformationToken@16
638NtSetInformationTransaction@16
639NtSetInformationTransactionManager@16
640NtSetInformationVirtualMemory@24
641NtSetInformationWorkerFactory@16
642NtSetIntervalProfile@8
643NtSetIoCompletion@20
644NtSetIoCompletionEx@24
318NtSetIntervalProfile@8 ; Windows NT 3.1-3.5 has ABI "NtSetIntervalProfile@4", Windows NT 3.51 and new has ABI "NtSetIntervalProfile@8"
645319NtSetLdtEntries@24
646320NtSetLowEventPair@4
647321NtSetLowWaitHighEventPair@4
648NtSetQuotaInformationFile@16
322; NtSetLowWaitHighThread@0 ; removed in Windows 2000
649323NtSetSecurityObject@12
650324NtSetSystemEnvironmentValue@8
651NtSetSystemEnvironmentValueEx@20
652NtSetSystemInformation@12
653NtSetSystemPowerState@12
654325NtSetSystemTime@8
655NtSetThreadExecutionState@8
656NtSetTimer2@16
657NtSetTimer@28
658NtSetTimerEx@16
659NtSetTimerResolution@12
660NtSetUuidSeed@4
326NtSetTimer@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
661327NtSetValueKey@24
662328NtSetVolumeInformationFile@20
663NtSetWnfProcessNotificationEvent@4
664329NtShutdownSystem@4
665NtShutdownWorkerFactory@8
666NtSignalAndWaitForSingleObject@16
667NtSinglePhaseReject@8
668330NtStartProfile@4
669331NtStopProfile@4
670NtSubmitIoRing@16
671NtSubscribeWnfStateChange@16
672NtSuspendProcess@4
673332NtSuspendThread@8
674333NtSystemDebugControl@24
675NtTerminateEnclave@8
676NtTerminateJobObject@8
677334NtTerminateProcess@8
678335NtTerminateThread@8
679336NtTestAlert@0
680NtThawRegistry@0
681NtThawTransactions@0
682NtTraceControl@24
683NtTraceEvent@16
684NtTranslateFilePath@16
685NtUmsThreadYield@4
686337NtUnloadDriver@4
687NtUnloadKey2@8
688338NtUnloadKey@4
689NtUnloadKeyEx@8
690339NtUnlockFile@20
691340NtUnlockVirtualMemory@16
692NtUnmapViewOfSection@8
693NtUnmapViewOfSectionEx@12
694NtUnsubscribeWnfStateChange@4
695NtUpdateWnfStateData@28
696NtVdmControl@8
697NtWaitForAlertByThreadId@8
698NtWaitForDebugEvent@16
699NtWaitForKeyedEvent@16
700NtWaitForMultipleObjects32@20
341NtVdmControl@8 ; Windows NT 3.1 has ABI "NtVdmControl@16", Windows NT 3.5 and new has ABI "NtVdmControl@8"
342; NtVdmStartExecution@0 ; removed in Windows NT 3.5
701343NtWaitForMultipleObjects@20
702NtWaitForSingleObject@12
703NtWaitForWorkViaWorkerFactory@8
344; NtWaitForProcessMutant@0 ; removed in Windows NT 4.0
704345NtWaitHighEventPair@4
705346NtWaitLowEventPair@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
726347NtWriteFile@36
727NtWriteFileGather@36
728348NtWriteRequestData@24
729349NtWriteVirtualMemory@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
737350PfxFindPrefix@8
738351PfxInitialize@4
739352PfxInsertPrefix@12
740353PfxRemovePrefix@8
741PssNtCaptureSnapshot@16
742PssNtDuplicateSnapshot@20
743PssNtFreeRemoteSnapshot@8
744PssNtFreeSnapshot@4
745PssNtFreeWalkMarker@4
746PssNtQuerySnapshot@16
747PssNtValidateDescriptor@8
748PssNtWalkSnapshot@20
749354RtlAbortRXact@4
750355RtlAbsoluteToSelfRelativeSD@12
751356RtlAcquirePebLock@0
752RtlAcquirePrivilege@16
753RtlAcquireReleaseSRWLockExclusive@4
754357RtlAcquireResourceExclusive@8
755358RtlAcquireResourceShared@8
756RtlAcquireSRWLockExclusive@4
757RtlAcquireSRWLockShared@4
758RtlActivateActivationContext@12
759RtlActivateActivationContextEx@16
760359RtlAddAccessAllowedAce@16
761RtlAddAccessAllowedAceEx@20
762RtlAddAccessAllowedObjectAce@28
763360RtlAddAccessDeniedAce@16
764RtlAddAccessDeniedAceEx@20
765RtlAddAccessDeniedObjectAce@28
766RtlAddAccessFilterAce@32
767361RtlAddAce@20
768362RtlAddActionToRXact@24
769RtlAddAtomToAtomTable@12
770363RtlAddAttributeActionToRXact@32
771364RtlAddAuditAccessAce@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
787365RtlAdjustPrivilege@16
788RtlAllocateActivationContextStack@4
789366RtlAllocateAndInitializeSid@44
790RtlAllocateAndInitializeSidEx@16
791RtlAllocateHandle@8
792RtlAllocateHeap@12
793RtlAllocateMemoryBlockLookaside@12
794RtlAllocateMemoryZone@12
795RtlAllocateWnfSerializationGroup@0
367; RtlAnalyzeProfile@0 ; removed in Windows NT 3.5
796368RtlAnsiCharToUnicodeChar@4
797RtlAnsiStringToUnicodeSize@4
798RtlAnsiStringToUnicodeString@12
799369RtlAppendAsciizToString@8
800RtlAppendPathElement@12
801370RtlAppendStringToString@8
802371RtlAppendUnicodeStringToString@8
803372RtlAppendUnicodeToString@8
804RtlApplicationVerifierStop@40
805373RtlApplyRXact@4
806374RtlApplyRXactNoFlush@4
807RtlAppxIsFileOwnedByTrustedInstaller@8
808375RtlAreAllAccessesGranted@8
809376RtlAreAnyAccessesGranted@8
810377RtlAreBitsClear@12
811378RtlAreBitsSet@12
812RtlAreLongPathsEnabled@0
813379RtlAssert@16
814RtlAvlInsertNodeEx@16
815RtlAvlRemoveNode@8
816RtlBarrier@8
817RtlBarrierForDelete@8
818RtlCallbackLpcClient@12
819RtlCancelTimer@8
820RtlCanonicalizeDomainName@12
821RtlCapabilityCheck@12
822RtlCapabilityCheckForSingleSessionSku@12
823RtlCaptureContext@4
824380RtlCaptureStackBackTrace@16
825RtlCaptureStackContext@12
826381RtlCharToInteger@12
827RtlCheckBootStatusIntegrity@8
828RtlCheckForOrphanedCriticalSections@4
829RtlCheckPortableOperatingSystem@4
830382RtlCheckRegistryKey@8
831RtlCheckSandboxedToken@8
832RtlCheckSystemBootStatusIntegrity@4
833RtlCheckTokenCapability@12
834RtlCheckTokenMembership@12
835RtlCheckTokenMembershipEx@16
836RtlCleanUpTEBLangLists@0
837383RtlClearAllBits@4
838RtlClearBit@8
839384RtlClearBits@12
840RtlClearThreadWorkOnBehalfTicket@0
841RtlCloneMemoryStream@8
842RtlCloneUserProcess@20
843RtlCmDecodeMemIoResource@8
844RtlCmEncodeMemIoResource@24
845RtlCommitDebugInfo@8
846RtlCommitMemoryStream@8
847385RtlCompactHeap@8
848RtlCompareAltitudes@8
849RtlCompareExchangePointerMapping@16
850RtlCompareExchangePropertyStore@16
851386RtlCompareMemory@12
852387RtlCompareMemoryUlong@12
853388RtlCompareString@12
854389RtlCompareUnicodeString@12
855RtlCompareUnicodeStrings@20
856RtlCompressBuffer@32
857RtlComputeCrc32@12
858RtlComputeImportTableHash@12
859RtlComputePrivatizedDllName_U@12
860RtlConnectToSm@16
861390RtlConsoleMultiByteToUnicodeN@24
862RtlConstructCrossVmEventPath@12
863RtlConstructCrossVmMutexPath@12
864RtlContractHashTable@4
865RtlConvertDeviceFamilyInfoToString@16
866391RtlConvertExclusiveToShared@4
867RtlConvertLCIDToString@20
868RtlConvertLongToLargeInteger@4
869RtlConvertSRWLockExclusiveToShared@4
870392RtlConvertSharedToExclusive@4
871393RtlConvertSidToUnicodeString@12
872RtlConvertToAutoInheritSecurityObject@24
873RtlConvertUiListToApiList@12
874RtlConvertUlongToLargeInteger@4
875RtlCopyBitMap@12
876RtlCopyContext@12
877RtlCopyExtendedContext@12
394RtlConvertUiListToApiList@12 ; removed in Windows 8.1
878395RtlCopyLuid@8
879396RtlCopyLuidAndAttributesArray@12
880RtlCopyMappedMemory@12
881RtlCopyMemoryStreamTo@24
882RtlCopyOutOfProcessMemoryStreamTo@24
883RtlCopyRangeList@8
884397RtlCopySecurityDescriptor@8
885398RtlCopySid@12
886399RtlCopySidAndAttributesArray@28
887400RtlCopyString@8
888401RtlCopyUnicodeString@8
889RtlCrc32@12
890RtlCrc64@16
891402RtlCreateAcl@12
892RtlCreateActivationContext@24
893403RtlCreateAndSetSD@20
894RtlCreateAtomTable@8
895RtlCreateBootStatusDataFile@4
896RtlCreateBoundaryDescriptor@8
897404RtlCreateEnvironment@8
898RtlCreateEnvironmentEx@12
899RtlCreateHashTable@12
900RtlCreateHashTableEx@16
901RtlCreateHeap@24
902RtlCreateLpcServer@24
903RtlCreateMemoryBlockLookaside@20
904RtlCreateMemoryZone@12
905405RtlCreateProcessParameters@40
906RtlCreateProcessParametersEx@44
907RtlCreateProcessParametersWithTemplate@12
908RtlCreateProcessReflection@24
909RtlCreateQueryDebugBuffer@8
910406RtlCreateRegistryKey@8
911RtlCreateSecurityDescriptor@8
912RtlCreateServiceSid@12
913RtlCreateSystemVolumeInformationFolder@4
914RtlCreateTagHeap@16
915RtlCreateTimer@28
916RtlCreateTimerQueue@4
917407RtlCreateUnicodeString@8
918408RtlCreateUnicodeStringFromAsciiz@8
919409RtlCreateUserProcess@40
920RtlCreateUserProcessEx@20
921410RtlCreateUserSecurityObject@28
922RtlCreateUserStack@24
923411RtlCreateUserThread@40
924RtlCreateVirtualAccountSid@16
925RtlCultureNameToLCID@8
926412RtlCustomCPToUnicodeN@24
927RtlCutoverTimeToSystemTime@16
928RtlDeCommitDebugInfo@12
929413RtlDeNormalizeProcessParams@4
930RtlDeactivateActivationContext@8
931RtlDebugPrintTimes@0
932RtlDecodePointer@4
933RtlDecodeRemotePointer@12
934RtlDecodeSystemPointer@4
935RtlDecompressBuffer@24
936RtlDecompressBufferEx@28
937RtlDecompressFragment@32
938RtlDefaultNpAcl@4
939RtlDelayExecution@8
940414RtlDelete@4
941415RtlDeleteAce@8
942RtlDeleteAtomFromAtomTable@8
943RtlDeleteBarrier@4
944RtlDeleteBoundaryDescriptor@4
945416RtlDeleteCriticalSection@4
946417RtlDeleteElementGenericTable@8
947RtlDeleteElementGenericTableAvl@8
948RtlDeleteElementGenericTableAvlEx@8
949RtlDeleteHashTable@4
950RtlDeleteNoSplay@8
951RtlDeleteOwnersRanges@8
952RtlDeleteRange@24
953418RtlDeleteRegistryValue@12
954419RtlDeleteResource@4
955420RtlDeleteSecurityObject@4
956RtlDeleteTimer@12
957RtlDeleteTimerQueue@4
958RtlDeleteTimerQueueEx@8
959RtlDeregisterSecureMemoryCacheCallback@4
960RtlDeregisterWait@4
961RtlDeregisterWaitEx@8
962RtlDeriveCapabilitySidsFromName@12
963RtlDestroyAtomTable@4
964421RtlDestroyEnvironment@4
965RtlDestroyHandleTable@4
966RtlDestroyHeap@4
967RtlDestroyMemoryBlockLookaside@4
968RtlDestroyMemoryZone@4
969422RtlDestroyProcessParameters@4
970RtlDestroyQueryDebugBuffer@4
971RtlDetectHeapLeaks@0
972423RtlDetermineDosPathNameType_U@4
973RtlDisableThreadProfiling@4
974RtlDllShutdownInProgress@0
975RtlDnsHostNameToComputerName@12
976424RtlDoesFileExists_U@4
977RtlDoesNameContainWildCards@4
978RtlDosApplyFileIsolationRedirection_Ustr@36
979RtlDosLongPathNameToNtPathName_U_WithStatus@16
980RtlDosLongPathNameToRelativeNtPathName_U_WithStatus@16
981425RtlDosPathNameToNtPathName_U@16
982RtlDosPathNameToNtPathName_U_WithStatus@16
983RtlDosPathNameToRelativeNtPathName_U@16
984RtlDosPathNameToRelativeNtPathName_U_WithStatus@16
985426RtlDosSearchPath_U@24
986RtlDosSearchPath_Ustr@36
987RtlDowncaseUnicodeChar@4
988RtlDowncaseUnicodeString@12
989427RtlDumpResource@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
1003428RtlEnterCriticalSection@4
1004RtlEnumProcessHeaps@8
1005RtlEnumerateEntryHashTable@8
1006429RtlEnumerateGenericTable@8
1007RtlEnumerateGenericTableAvl@8
1008RtlEnumerateGenericTableLikeADirectory@28
1009430RtlEnumerateGenericTableWithoutSplaying@8
1010RtlEnumerateGenericTableWithoutSplayingAvl@8
1011431RtlEqualComputerName@8
1012432RtlEqualDomainName@8
1013433RtlEqualLuid@8
......@@ -1015,600 +435,141 @@ RtlEqualPrefixSid@8
1015435RtlEqualSid@8
1016436RtlEqualString@12
1017437RtlEqualUnicodeString@12
1018RtlEqualWnfChangeStamps@8
1019438RtlEraseUnicodeString@4
1020RtlEthernetAddressToStringA@8
1021RtlEthernetAddressToStringW@8
1022RtlEthernetStringToAddressA@12
1023RtlEthernetStringToAddressW@12
1024RtlExitUserProcess@4
1025RtlExitUserThread@4 ; Not sure, but we assume @4
1026RtlExpandEnvironmentStrings@24
439; RtlExpandEnvironmentStrings@16 ; removed in Windows NT 3.5
1027440RtlExpandEnvironmentStrings_U@16
1028RtlExpandHashTable@4
1029RtlExtendCorrelationVector@4
1030RtlExtendMemoryBlockLookaside@8
1031RtlExtendMemoryZone@8
1032RtlExtendedIntegerMultiply@12
1033RtlExtendedLargeIntegerDivide@16
1034RtlExtendedMagicDivide@20
1035RtlExtractBitMap@16
1036RtlExtendHeap@16
1037RtlFillMemory@12
1038441RtlFillMemoryUlong@12
1039RtlFillMemoryUlonglong@16
1040RtlFinalReleaseOutOfProcessMemoryStream@4
1041RtlFindAceByType@12
1042RtlFindActivationContextSectionGuid@20
1043RtlFindActivationContextSectionString@20
1044RtlFindCharInUnicodeString@16
1045442RtlFindClearBits@12
1046443RtlFindClearBitsAndSet@12
1047RtlFindClearRuns@16
1048RtlFindClosestEncodableLength@12
1049RtlFindExportedRoutineByName@8
1050RtlFindLastBackwardRunClear@12
1051RtlFindLeastSignificantBit@8
1052444RtlFindLongestRunClear@8
1053RtlFindLongestRunSet@8
445RtlFindLongestRunSet@8 ; removed in Windows 2000
1054446RtlFindMessage@20
1055RtlFindMostSignificantBit@8
1056RtlFindNextForwardRunClear@12
1057RtlFindRange@48
1058447RtlFindSetBits@12
1059448RtlFindSetBitsAndClear@12
1060RtlFindUnicodeSubstring@12
1061RtlFirstEntrySList@4
1062449RtlFirstFreeAce@8
1063RtlFlsAlloc@8
1064RtlFlsFree@4
1065RtlFlsGetValue@8
1066RtlFlsSetValue@8
1067RtlFlushHeaps@0
1068RtlFlushSecureMemoryCache@8
1069RtlFormatCurrentUserKeyPath@4
1070450RtlFormatMessage@36
1071RtlFormatMessageEx@40
1072RtlFreeActivationContextStack@4
1073451RtlFreeAnsiString@4
1074RtlFreeHandle@8
1075RtlFreeHeap@12
1076RtlFreeMemoryBlockLookaside@8
1077452RtlFreeOemString@4
1078453RtlFreeSid@4
1079RtlFreeThreadActivationContextStack@0
1080RtlFreeUTF8String@4
1081454RtlFreeUnicodeString@4
1082RtlFreeUserStack@4
1083RtlFreeUserThreadStack@8
1084RtlGUIDFromString@8
1085RtlGenerate8dot3Name@16
455RtlGenerate8dot3Name@16 ; Windows NT 3.1 has ABI "RtlGenerate8dot3Name@12", Windows NT 3.5 and new has ABI "RtlGenerate8dot3Name@16"
1086456RtlGetAce@12
1087RtlGetActiveActivationContext@4
1088RtlGetActiveConsoleId@0
1089RtlGetAppContainerNamedObjectPath@16
1090RtlGetAppContainerParent@8
1091RtlGetAppContainerSidType@8
1092457RtlGetCallersAddress@8
1093RtlGetCompressionWorkSpaceSize@12
1094RtlGetConsoleSessionForegroundProcessId@0
1095458RtlGetControlSecurityDescriptor@12
1096RtlGetCriticalSectionRecursionCount@4
1097459RtlGetCurrentDirectory_U@8
1098RtlGetCurrentPeb@0
1099RtlGetCurrentProcessorNumber@0
1100RtlGetCurrentProcessorNumberEx@4
1101RtlGetCurrentServiceSessionId@0
1102RtlGetCurrentTransaction@0
1103460RtlGetDaclSecurityDescriptor@16
1104RtlGetDeviceFamilyInfoEnum@12
1105461RtlGetElementGenericTable@8
1106RtlGetElementGenericTableAvl@8
1107RtlGetEnabledExtendedFeatures@8
1108RtlGetExePath@8
1109RtlGetExtendedContextLength2@16
1110RtlGetExtendedContextLength@8
1111RtlGetExtendedFeaturesMask@4
1112RtlGetFileMUIPath@28
1113RtlGetFirstRange@12
1114RtlGetFrame@0
1115462RtlGetFullPathName_U@16
1116RtlGetFullPathName_UEx@20
1117RtlGetFullPathName_UstrEx@32
1118463RtlGetGroupSecurityDescriptor@12
1119RtlGetImageFileMachines@8
1120RtlGetIntegerAtom@8
1121RtlGetInterruptTimePrecise@4
1122RtlGetLastNtStatus@0
1123RtlGetLastWin32Error@0
1124RtlGetLengthWithoutLastFullDosOrNtPathElement@12
1125RtlGetLengthWithoutTrailingPathSeperators@12
1126RtlGetLocaleFileMappingAddress@12
1127RtlGetLongestNtPathLength@0
1128RtlGetMultiTimePrecise@12
1129RtlGetNativeSystemInformation@16
1130RtlGetNextRange@12
1131RtlGetNextEntryHashTable@8
464; RtlGetHeapUserValue@4 ; removed in Windows NT 3.5
1132465RtlGetNtGlobalFlags@0
1133466RtlGetNtProductType@4
1134RtlGetNtSystemRoot@0
1135RtlGetNtVersionNumbers@12
1136467RtlGetOwnerSecurityDescriptor@12
1137RtlGetParentLocaleName@16
1138RtlGetPersistedStateLocation@28
1139RtlGetProcessHeaps@8
1140RtlGetProcessPreferredUILanguages@16
1141RtlGetProductInfo@20
1142RtlGetReturnAddressHijackTarget@0
1143468RtlGetSaclSecurityDescriptor@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
1169469RtlIdentifierAuthoritySid@4
1170RtlIdnToAscii@20
1171RtlIdnToNameprepUnicode@20
1172RtlIdnToUnicode@20
1173RtlImageDirectoryEntryToData@16
1174RtlImageNtHeader@4
1175RtlImageNtHeaderEx@20
1176RtlImageRvaToSection@12
1177RtlImageRvaToVa@16
1178RtlImpersonateLpcClient@8
1179470RtlImpersonateSelf@4
1180RtlImpersonateSelfEx@12
1181RtlIncrementCorrelationVector@4
1182RtlInitAnsiString@8
1183RtlInitAnsiStringEx@8
1184RtlInitBarrier@12
1185471RtlInitCodePageTable@8
1186RtlInitEnumerationHashTable@8
1187RtlInitMemoryStream@4
1188472RtlInitNlsTables@16
1189RtlInitOutOfProcessMemoryStream@4
1190RtlInitString@8
1191RtlInitStringEx@8
1192RtlInitStrongEnumerationHashTable@8
1193RtlInitUTF8String@8
1194RtlInitUTF8StringEx@8
1195RtlInitUnicodeString@8
1196RtlInitUnicodeStringEx@8
1197RtlInitWeakEnumerationHashTable@8
1198RtlInitializeAtomPackage@4
1199473RtlInitializeBitMap@12
1200RtlInitializeConditionVariable@4
1201474RtlInitializeContext@20
1202RtlInitializeCorrelationVector@12
1203475RtlInitializeCriticalSection@4
1204RtlInitializeCriticalSectionAndSpinCount@8
1205RtlInitializeCriticalSectionEx@12
1206RtlInitializeExceptionChain@4
1207RtlInitializeExtendedContext2@20
1208RtlInitializeExtendedContext@12
1209476RtlInitializeGenericTable@20
1210RtlInitializeGenericTableAvl@20
1211RtlInitializeHandleTable@12
1212RtlInitializeNtUserPfn@24
477; RtlInitializeProfile@4 ; removed in Windows NT 3.5
1213478RtlInitializeRXact@12
1214479RtlInitializeResource@4
1215RtlInitializeSListHead@4
1216RtlInitializeSRWLock@4
1217480RtlInitializeSid@12
1218RtlInitializeSidEx@0
481; RtlInitializeStackTraceDataBase@12 ; removed in Windows NT 3.51, added back in Windows XP SP2 and removed again in Windows Server 2003
1219482RtlInsertElementGenericTable@16
1220RtlInsertElementGenericTableAvl@16
1221RtlInsertElementGenericTableFull@24
1222RtlInsertElementGenericTableFullAvl@24
1223RtlInsertEntryHashTable@16
1224RtlInt64ToUnicodeString@16
1225483RtlIntegerToChar@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
1262484RtlIsDosDeviceName_U@4
1263RtlIsElevatedRid@4
1264RtlIsEnclaveFeaturePresent@4
1265485RtlIsGenericTableEmpty@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
1299486RtlLargeIntegerToChar@16
1300RtlLcidToLocaleName@16
1301487RtlLeaveCriticalSection@4
1302488RtlLengthRequiredSid@4
1303489RtlLengthSecurityDescriptor@4
1304490RtlLengthSid@4
1305RtlLengthSidAsUnicodeString@8
1306RtlLoadString@32
1307491RtlLocalTimeToSystemTime@8
1308RtlLocaleNameToLcid@12
1309RtlLocateExtendedFeature2@16
1310RtlLocateExtendedFeature@12
1311RtlLocateLegacyContext@8
1312RtlLockBootStatusData@4
1313RtlLockCurrentThread@0
1314492RtlLockHeap@4
1315RtlLockMemoryBlockLookaside@4
1316RtlLockMemoryStreamRegion@24
1317RtlLockMemoryZone@4
1318RtlLockModuleSection@4
1319RtlLogStackBackTrace@0
1320RtlLookupAtomInAtomTable@12
493; RtlLogStackBackTrace@0 ; removed in Windows NT 3.51
1321494RtlLookupElementGenericTable@8
1322RtlLookupElementGenericTableAvl@8
1323RtlLookupElementGenericTableFull@16
1324RtlLookupElementGenericTableFullAvl@16
1325RtlLookupEntryHashTable@12
1326RtlLookupFirstMatchingElementGenericTableAvl@12
495; RtlLookupSymbolByAddress@24 ; removed in Windows NT 3.51
496; RtlLookupSymbolByName@16 ; removed in Windows NT 3.51
1327497RtlMakeSelfRelativeSD@12
1328498RtlMapGenericMask@8
1329RtlMapSecurityErrorToNtStatus@4
1330RtlMergeRangeLists@16
1331RtlMoveMemory@12
1332RtlMultiAppendUnicodeStringBuffer@12
1333RtlMultiByteToUnicodeN@20
1334499RtlMultiByteToUnicodeSize@12
1335RtlMultipleAllocateHeap@20
1336RtlMultipleFreeHeap@16
1337500RtlNewInstanceSecurityObject@40
1338501RtlNewSecurityGrantedAccess@24
1339502RtlNewSecurityObject@24
1340RtlNewSecurityObjectEx@32
1341RtlNewSecurityObjectWithMultipleInheritance@36
1342503RtlNormalizeProcessParams@4
1343RtlNormalizeSecurityDescriptor@20
1344RtlNormalizeString@20
1345RtlNotifyFeatureUsage@4
1346RtlNtPathNameToDosPathName@16
1347RtlNtStatusToDosError@4
1348RtlNtStatusToDosErrorNoTeb@4
1349504RtlNumberGenericTableElements@4
1350RtlNumberGenericTableElementsAvl@4
1351505RtlNumberOfClearBits@4
1352RtlNumberOfClearBitsInRange@12
1353506RtlNumberOfSetBits@4
1354RtlNumberOfSetBitsInRange@12
1355RtlNumberOfSetBitsUlongPtr@4
1356507RtlOemStringToUnicodeSize@4
1357508RtlOemStringToUnicodeString@12
1358509RtlOemToUnicodeN@20
1359510RtlOpenCurrentUser@8
1360RtlOsDeploymentState@4
1361RtlOwnerAcesPresent@4
1362511RtlPcToFileHeader@8
1363RtlPinAtomInAtomTable@8
1364RtlPopFrame@4
1365512RtlPrefixString@12
1366513RtlPrefixUnicodeString@12
1367RtlProcessFlsData@4
1368RtlProtectHeap@8
1369RtlPublishWnfStateData@24
1370RtlPushFrame@4
1371RtlQueryActivationContextApplicationSettings@28
1372RtlQueryAllFeatureConfigurations@16
1373RtlQueryAtomInAtomTable@24
1374RtlQueryCriticalSectionOwner@4
1375RtlQueryDepthSList@4
1376RtlQueryDynamicTimeZoneInformation@4
1377RtlQueryElevationFlags@4
1378RtlQueryEnvironmentVariable@24
514; RtlQueryEnvironmentVariable@0 ; removed in Windows NT 3.5
1379515RtlQueryEnvironmentVariable_U@12
1380RtlQueryFeatureConfiguration@16
1381RtlQueryFeatureConfigurationChangeStamp@0
1382RtlQueryFeatureUsageNotificationSubscriptions@8
1383RtlQueryHeapInformation@20
1384RtlQueryImageMitigationPolicy@20
1385516RtlQueryInformationAcl@16
1386RtlQueryInformationActivationContext@28
1387RtlQueryInformationActiveActivationContext@16
1388RtlQueryInterfaceMemoryStream@12
1389RtlQueryModuleInformation@12
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
517; RtlQueryModuleInformation@24 ; removed in Windows NT 3.51
518RtlQueryProcessBackTraceInformation@4 ; Windows NT 3.1-3.5 has ABI "RtlQueryProcessBackTraceInformation@12", Windows NT 3.51 and new has ABI "RtlQueryProcessBackTraceInformation@4"
519RtlQueryProcessHeapInformation@4 ; Windows NT 3.1-3.5 has ABI "RtlQueryProcessHeapInformation@12", Windows NT 3.51 and new has ABI "RtlQueryProcessHeapInformation@4"
520RtlQueryProcessLockInformation@4 ; Windows NT 3.1-3.5 has ABI "RtlQueryProcessLockInformation@12", Windows NT 3.51 and new has ABI "RtlQueryProcessLockInformation@4"
1404521RtlQueryRegistryValues@20
1405RtlQueryRegistryValuesEx@20
1406RtlQueryResourcePolicy@16
1407522RtlQuerySecurityObject@20
1408RtlQueryTagHeap@20
1409RtlQueryThreadPlaceholderCompatibilityMode@0
1410RtlQueryThreadProfiling@8
1411523RtlQueryTimeZoneInformation@4
1412RtlQueryTokenHostIdAsUlong64@8
1413RtlQueryUnbiasedInterruptTime@4
1414RtlQueryValidationRunlevel@4
1415RtlQueryWnfMetaNotification@20
1416RtlQueryWnfStateData@24
1417RtlQueryWnfStateDataWithExplicitScope@28
1418RtlQueueApcWow64Thread@20
1419RtlQueueWorkItem@12
1420RtlRaiseCustomSystemEventTrigger@4
1421524RtlRaiseException@4
1422525RtlRaiseStatus@4
1423526RtlRandom@4
1424RtlRandomEx@4
1425RtlRbInsertNodeEx@16
1426RtlRbRemoveNode@8
1427RtlReAllocateHeap@16
1428RtlReadMemoryStream@16
1429RtlReadOutOfProcessMemoryStream@16
1430RtlReadThreadProfilingData@12
1431527RtlRealPredecessor@4
1432528RtlRealSuccessor@4
1433RtlRegisterFeatureConfigurationChangeNotification@16
1434RtlRegisterForWnfMetaNotification@24
1435RtlRegisterSecureMemoryCacheCallback@4
1436RtlRegisterThreadWithCsrss@0
1437RtlRegisterWait@24
1438RtlReleaseActivationContext@4
1439RtlReleaseMemoryStream@4
1440RtlReleasePath@4
1441529RtlReleasePebLock@0
1442RtlReleasePrivilege@4
1443RtlReleaseRelativeName@4
1444530RtlReleaseResource@4
1445RtlReleaseSRWLockExclusive@4
1446RtlReleaseSRWLockShared@4
1447531RtlRemoteCall@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
1463532RtlResetRtlTranslations@4
1464RtlRestoreBootStatusDefaults@4
1465RtlRestoreContext@8
1466RtlRestoreLastWin32Error@4
1467RtlRestoreSystemBootStatusDefaults@0
1468RtlRestoreThreadPreferredUILanguages@4
1469RtlRetrieveNtUserPfn@12
1470RtlRevertMemoryStream@4
1471533RtlRunDecodeUnicodeString@8
1472534RtlRunEncodeUnicodeString@8
1473RtlRunOnceBeginInitialize@12
1474RtlRunOnceComplete@12
1475RtlRunOnceExecuteOnce@16
1476RtlRunOnceInitialize@4
1477535RtlSecondsSince1970ToTime@8
1478536RtlSecondsSince1980ToTime@8
1479RtlSeekMemoryStream@20
1480RtlSelfRelativeToAbsoluteSD2@8
1481537RtlSelfRelativeToAbsoluteSD@44
1482RtlSendMsgToSm@8
1483538RtlSetAllBits@4
1484RtlSetAttributesSecurityDescriptor@12
1485RtlSetBit@8
1486539RtlSetBits@12
1487RtlSetControlSecurityDescriptor@12
1488RtlSetCriticalSectionSpinCount@8
1489540RtlSetCurrentDirectory_U@4
1490541RtlSetCurrentEnvironment@8
1491RtlSetCurrentTransaction@4
1492RtlSetDaclSecurityDescriptor@16
1493RtlSetDynamicTimeZoneInformation@4
1494RtlSetEnvironmentStrings@8
1495RtlSetEnvironmentVar@20
1496542RtlSetEnvironmentVariable@12
1497RtlSetExtendedFeaturesMask@12
1498RtlSetFeatureConfigurations@16
1499543RtlSetGroupSecurityDescriptor@12
1500RtlSetHeapInformation@16
1501RtlSetImageMitigationPolicy@20
544; RtlSetHeapUserValue@8 ; removed in Windows NT 3.5
1502545RtlSetInformationAcl@16
1503RtlSetIoCompletionCallback@12
1504RtlSetLastWin32Error@4
1505RtlSetLastWin32ErrorAndNtStatusFromNtStatus@4
1506RtlSetMemoryStreamSize@12
1507546RtlSetOwnerSecurityDescriptor@12
1508RtlSetPortableOperatingSystem@4
1509RtlSetProcessDebugInformation@12
1510RtlSetProcessIsCritical@0
1511RtlSetProcessPlaceholderCompatibilityMode@4
1512RtlSetProcessPreferredUILanguages@12
1513RtlSetProtectedPolicy@12
1514RtlSetProxiedProcessId@4
1515547RtlSetSaclSecurityDescriptor@16
1516RtlSetSearchPathMode@4
1517RtlSetSecurityDescriptorRMControl@8
1518548RtlSetSecurityObject@20
1519RtlSetSecurityObjectEx@24
1520RtlSetSystemBootStatus@16
1521RtlSetSystemBootStatusEx@12
1522RtlSetThreadErrorMode@8
1523RtlSetThreadIsCritical@0
1524RtlSetThreadPlaceholderCompatibilityMode@4
1525RtlSetThreadPoolStartFunc@8
1526RtlSetThreadPreferredUILanguages2@16
1527RtlSetThreadPreferredUILanguages@12
1528RtlSetThreadSubProcessTag@4
1529RtlSetThreadWorkOnBehalfTicket@4
1530549RtlSetTimeZoneInformation@4
1531RtlSetTimer@28
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
550; RtlSnapShotHeap@16 ; removed in Windows NT 3.51
1546551RtlSplay@4
552; RtlStartProfile@0 ; removed in Windows NT 3.5
1547553RtlStartRXact@4
1548RtlStatMemoryStream@12
1549RtlStringFromGUID@8
1550RtlStringFromGUIDEx@12
1551RtlStronglyEnumerateEntryHashTable@8
554; RtlStopProfile@0 ; removed in Windows NT 3.5
1552555RtlSubAuthorityCountSid@4
1553556RtlSubAuthoritySid@8
1554RtlSubscribeForFeatureUsageNotification@8
1555RtlSubscribeWnfStateChangeNotification@36
1556557RtlSubtreePredecessor@4
1557558RtlSubtreeSuccessor@4
1558RtlSwitchedVVI@16
1559559RtlSystemTimeToLocalTime@8
1560RtlTestAndPublishWnfStateData@28
1561RtlTestBit@8
1562RtlTestProtectedAccess@8
1563560RtlTimeFieldsToTime@8
1564561RtlTimeToElapsedTimeFields@8
1565562RtlTimeToSecondsSince1970@8
1566563RtlTimeToSecondsSince1980@8
1567564RtlTimeToTimeFields@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
1588565RtlUnicodeStringToCountedOemString@12
1589RtlUnicodeStringToInteger@12
1590566RtlUnicodeStringToOemSize@4
1591567RtlUnicodeStringToOemString@12
1592RtlUnicodeStringToUTF8String@12
1593568RtlUnicodeToCustomCPN@24
1594RtlUnicodeToMultiByteN@20
1595569RtlUnicodeToMultiByteSize@12
1596570RtlUnicodeToOemN@20
1597RtlUnicodeToUTF8N@20
1598571RtlUniform@4
1599RtlUnlockBootStatusData@4
1600RtlUnlockCurrentThread@0
1601572RtlUnlockHeap@4
1602RtlUnlockMemoryBlockLookaside@4
1603RtlUnlockMemoryStreamRegion@24
1604RtlUnlockMemoryZone@4
1605RtlUnlockModuleSection@4
1606RtlUnregisterFeatureConfigurationChangeNotification@4
1607RtlUnsubscribeFromFeatureUsageNotifications@8
1608RtlUnsubscribeWnfNotificationWaitForCompletion@4
1609RtlUnsubscribeWnfNotificationWithCompletionCallback@12
1610RtlUnsubscribeWnfStateChangeNotification@4
1611RtlUnwind@16
1612573RtlUpcaseUnicodeChar@4
1613574RtlUpcaseUnicodeString@12
1614575RtlUpcaseUnicodeStringToAnsiString@12
......@@ -1617,712 +578,2338 @@ RtlUpcaseUnicodeStringToOemString@12
1617578RtlUpcaseUnicodeToCustomCPN@24
1618579RtlUpcaseUnicodeToMultiByteN@20
1619580RtlUpcaseUnicodeToOemN@20
1620RtlUpdateClonedCriticalSection@4
1621RtlUpdateClonedSRWLock@8
1622RtlUpdateTimer@16
1623581RtlUpperChar@4
1624582RtlUpperString@8
1625RtlUsageHeap@12
1626; Not sure.
1627RtlUserThreadStart
1628583RtlValidAcl@4
1629RtlValidProcessProtection@4
1630RtlValidRelativeSecurityDescriptor@12
1631584RtlValidSecurityDescriptor@4
1632585RtlValidSid@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
1662586RtlWriteRegistryValue@24
1663RtlZeroHeap@8
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
587; RtlpInitializeRtl@12 ; removed in Windows NT 4.0
1691588RtlpNtCreateKey@24
1692589RtlpNtEnumerateSubKey@16
1693590RtlpNtMakeTemporaryKey@4
1694591RtlpNtOpenKey@16
1695592RtlpNtQueryValueKey@20
1696593RtlpNtSetValueKey@16
1697RtlpQueryDefaultUILanguage@8
1698; Not sure.
1699RtlpQueryProcessDebugInformationRemote
1700RtlpRefreshCachedUILanguage@8
1701RtlpSetInstallLanguage@8
1702RtlpSetPreferredUILanguages@12
1703RtlpSetUserPreferredUILanguages@12
1704RtlpTimeFieldsToTime@12
1705RtlpTimeToTimeFields@12
1706594RtlpUnWaitCriticalSection@4
1707RtlpVerifyAndCommitUILanguageSettings@4
1708595RtlpWaitForCriticalSection@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
1820596ZwAcceptConnectPort@24
1821597ZwAccessCheck@32
1822598ZwAccessCheckAndAuditAlarm@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
1835599ZwAdjustGroupsToken@24
1836600ZwAdjustPrivilegesToken@24
1837ZwAdjustTokenClaimsAndDeviceGroups@64
1838601ZwAlertResumeThread@8
1839602ZwAlertThread@4
1840ZwAlertThreadByThreadId@4
1841603ZwAllocateLocallyUniqueId@4
1842ZwAllocateReserveObject@12
1843ZwAllocateUserPhysicalPages@12
1844ZwAllocateUserPhysicalPagesEx@20
1845ZwAllocateUuids@16
1846604ZwAllocateVirtualMemory@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
1878605ZwCancelIoFile@8
1879ZwCancelIoFileEx@12
1880ZwCancelSynchronousIoFile@12
1881ZwCancelTimer2@8
1882606ZwCancelTimer@8
1883ZwCancelWaitCompletionPacket@8
1884ZwChangeProcessState@24
1885ZwChangeThreadState@24
1886ZwClearEvent@4
1887607ZwClose@4
1888608ZwCloseObjectAuditAlarm@12
1889ZwCommitComplete@8
1890ZwCommitEnlistment@8
1891ZwCommitRegistryTransaction@8
1892ZwCommitTransaction@8
1893ZwCompactKeys@8
1894ZwCompareObjects@8
1895ZwCompareSigningLevels@8
1896ZwCompareTokens@12
1897609ZwCompleteConnectPort@4
1898ZwCompressKey@4
1899610ZwConnectPort@32
1900611ZwContinue@8
1901ZwContinueEx@8
1902ZwConvertBetweenAuxiliaryCounterAndPerformanceCounter@16
1903ZwCreateCrossVmEvent@24
1904ZwCreateCrossVmMutant@24
1905ZwCreateDebugObject@16
1906612ZwCreateDirectoryObject@12
1907ZwCreateDirectoryObjectEx@20
1908ZwCreateEnclave@36
1909ZwCreateEnlistment@32
1910613ZwCreateEvent@20
1911614ZwCreateEventPair@12
1912615ZwCreateFile@44
1913ZwCreateIRTimer@12
1914ZwCreateIoCompletion@16
1915ZwCreateIoRing@20
1916ZwCreateJobObject@12
1917ZwCreateJobSet@12
1918616ZwCreateKey@28
1919ZwCreateKeyTransacted@32
1920ZwCreateKeyedEvent@16
1921ZwCreateLowBoxToken@36
1922617ZwCreateMailslotFile@32
1923618ZwCreateMutant@16
1924619ZwCreateNamedPipeFile@56
1925620ZwCreatePagingFile@16
1926ZwCreatePartition@16
1927621ZwCreatePort@20
1928ZwCreatePrivateNamespace@16
1929622ZwCreateProcess@32
1930ZwCreateProcessEx@36
1931ZwCreateProcessStateChange@20
1932ZwCreateProfile@36
1933ZwCreateProfileEx@40
1934ZwCreateRegistryTransaction@16
1935ZwCreateResourceManager@28
623ZwCreateProfile@36 ; Windows NT 3.1-3.5 has ABI "ZwCreateProfile@28", Windows NT 3.51 and new has ABI "ZwCreateProfile@36"
1936624ZwCreateSection@28
1937ZwCreateSectionEx@36
1938625ZwCreateSemaphore@20
1939626ZwCreateSymbolicLinkObject@16
1940627ZwCreateThread@32
1941ZwCreateThreadEx@44
1942ZwCreateThreadStateChange@20
1943ZwCreateTimer2@20
1944ZwCreateTimer@16
628ZwCreateTimer@16 ; Windows NT 3.1-3.51 has ABI "ZwCreateTimer@12", Windows NT 4.0 and new has ABI "ZwCreateTimer@16"
1945629ZwCreateToken@52
1946ZwCreateTokenEx@68
1947ZwCreateTransaction@40
1948ZwCreateTransactionManager@24
1949ZwCreateUserProcess@44
1950ZwCreateWaitCompletionPacket@12
1951ZwCreateWaitablePort@20
1952ZwCreateWnfStateName@28
1953ZwCreateWorkerFactory@40
1954ZwDebugActiveProcess@8
1955ZwDebugContinue@12
1956630ZwDelayExecution@8
1957ZwDeleteAtom@4
1958ZwDeleteBootEntry@4
1959ZwDeleteDriverEntry@4
1960ZwDeleteFile@4
1961631ZwDeleteKey@4
1962ZwDeleteObjectAuditAlarm@12
1963ZwDeletePrivateNamespace@4
1964632ZwDeleteValueKey@8
1965ZwDeleteWnfStateData@8
1966ZwDeleteWnfStateName@4
1967633ZwDeviceIoControlFile@40
1968ZwDirectGraphicsCall@20
1969ZwDisableLastKnownGood@0
1970634ZwDisplayString@4
1971ZwDrawText@4
1972635ZwDuplicateObject@28
1973636ZwDuplicateToken@24
1974ZwEnableLastKnownGood@0
1975ZwEnumerateBootEntries@8
1976ZwEnumerateDriverEntries@8
1977637ZwEnumerateKey@24
1978ZwEnumerateSystemEnvironmentValuesEx@12
1979ZwEnumerateTransactionObject@20
1980638ZwEnumerateValueKey@24
1981639ZwExtendSection@8
1982ZwFilterBootOption@20
1983ZwFilterToken@24
1984ZwFilterTokenEx@56
1985ZwFindAtom@12
1986640ZwFlushBuffersFile@8
1987ZwFlushBuffersFileEx@20
1988ZwFlushInstallUILanguage@8
1989641ZwFlushInstructionCache@12
1990642ZwFlushKey@4
1991ZwFlushProcessWriteBuffers@0
1992643ZwFlushVirtualMemory@16
1993644ZwFlushWriteBuffer@0
1994ZwFreeUserPhysicalPages@12
1995645ZwFreeVirtualMemory@16
1996ZwFreezeRegistry@4
1997ZwFreezeTransactions@8
1998646ZwFsControlFile@40
1999ZwGetCachedSigningLevel@24
2000ZwGetCompleteWnfStateSubscription@24
2001647ZwGetContextThread@8
2002ZwGetCurrentProcessorNumber@0
2003ZwGetCurrentProcessorNumberEx@4
2004ZwGetDevicePowerState@8
2005ZwGetMUIRegistryInfo@12
2006ZwGetNextProcess@20
2007ZwGetNextThread@24
2008ZwGetNlsSectionPtr@20
2009ZwGetNotificationResourceManager@28
2010ZwGetPlugPlayEvent@16
2011ZwGetTickCount@0
2012ZwGetWriteWatch@28
2013ZwImpersonateAnonymousToken@4
648ZwGetTickCount@0 ; removed in Windows XP
2014649ZwImpersonateClientOfPort@8
2015650ZwImpersonateThread@12
2016ZwInitializeEnclave@20
2017ZwInitializeNlsFiles@16
2018651ZwInitializeRegistry@4
2019ZwInitiatePowerAction@16
2020ZwIsProcessInJob@8
2021ZwIsSystemResumeAutomatic@0
2022ZwIsUILanguageComitted@0
652; ZwInitializeVDM@0 ; removed in Windows NT 3.5
2023653ZwListenPort@8
2024654ZwLoadDriver@4
2025ZwLoadEnclaveData@36
2026ZwLoadKey2@12
2027ZwLoadKey3@32
2028655ZwLoadKey@8
2029ZwLoadKeyEx@32
2030656ZwLockFile@40
2031ZwLockProductActivationKeys@8
2032ZwLockRegistryKey@4
2033657ZwLockVirtualMemory@16
2034ZwMakePermanentObject@4
2035658ZwMakeTemporaryObject@4
2036ZwManageHotPatch@16
2037ZwManagePartition@20
2038ZwMapCMFModule@24
2039ZwMapUserPhysicalPages@12
2040ZwMapUserPhysicalPagesScatter@12
2041659ZwMapViewOfSection@40
2042ZwMapViewOfSectionEx@36
2043ZwModifyBootEntry@4
2044ZwModifyDriverEntry@4
2045660ZwNotifyChangeDirectoryFile@36
2046ZwNotifyChangeDirectoryFileEx@40
2047661ZwNotifyChangeKey@40
2048ZwNotifyChangeMultipleKeys@48
2049ZwNotifyChangeSession@32
2050662ZwOpenDirectoryObject@12
2051ZwOpenEnlistment@20
2052663ZwOpenEvent@12
2053664ZwOpenEventPair@12
2054665ZwOpenFile@24
2055ZwOpenIoCompletion@12
2056ZwOpenJobObject@12
2057666ZwOpenKey@12
2058ZwOpenKeyEx@16
2059ZwOpenKeyTransacted@16
2060ZwOpenKeyTransactedEx@20
2061ZwOpenKeyedEvent@12
2062667ZwOpenMutant@12
2063668ZwOpenObjectAuditAlarm@48
2064ZwOpenPartition@12
2065ZwOpenPrivateNamespace@16
2066669ZwOpenProcess@16
2067670ZwOpenProcessToken@12
2068ZwOpenProcessTokenEx@16
2069ZwOpenRegistryTransaction@12
2070ZwOpenResourceManager@20
2071671ZwOpenSection@12
2072672ZwOpenSemaphore@12
2073ZwOpenSession@12
2074673ZwOpenSymbolicLinkObject@12
2075674ZwOpenThread@16
2076675ZwOpenThreadToken@16
2077ZwOpenThreadTokenEx@20
2078676ZwOpenTimer@12
2079ZwOpenTransaction@20
2080ZwOpenTransactionManager@24
2081ZwPlugPlayControl@12
2082ZwPowerInformation@20
2083ZwPrePrepareComplete@8
2084ZwPrePrepareEnlistment@8
2085ZwPrepareComplete@8
2086ZwPrepareEnlistment@8
2087677ZwPrivilegeCheck@12
2088678ZwPrivilegeObjectAuditAlarm@24
2089679ZwPrivilegedServiceAuditAlarm@20
2090ZwPropagationComplete@16
2091ZwPropagationFailed@12
2092680ZwProtectVirtualMemory@20
2093ZwPssCaptureVaSpaceBulk@20
2094681ZwPulseEvent@8
2095ZwQueryAttributesFile@8
2096ZwQueryAuxiliaryCounterFrequency@4
2097ZwQueryBootEntryOrder@8
2098ZwQueryBootOptions@8
2099ZwQueryDebugFilterState@8
2100682ZwQueryDefaultLocale@8
2101ZwQueryDefaultUILanguage@4
2102683ZwQueryDirectoryFile@44
2103ZwQueryDirectoryFileEx@40
2104684ZwQueryDirectoryObject@28
2105ZwQueryDriverEntryOrder@8
2106685ZwQueryEaFile@36
2107686ZwQueryEvent@20
2108ZwQueryFullAttributesFile@8
2109ZwQueryInformationAtom@20
2110ZwQueryInformationByName@20
2111ZwQueryInformationEnlistment@20
2112687ZwQueryInformationFile@20
2113ZwQueryInformationJobObject@20
2114688ZwQueryInformationPort@20
2115689ZwQueryInformationProcess@20
2116ZwQueryInformationResourceManager@20
2117690ZwQueryInformationThread@20
2118691ZwQueryInformationToken@20
2119ZwQueryInformationTransaction@20
2120ZwQueryInformationTransactionManager@20
2121ZwQueryInformationWorkerFactory@20
2122ZwQueryInstallUILanguage@4
2123ZwQueryIntervalProfile@8
2124ZwQueryIoCompletion@20
2125ZwQueryIoRingCapabilities@8
692ZwQueryIntervalProfile@8 ; Windows NT 3.1-3.51 has ABI "ZwQueryIntervalProfile@4", Windows NT 4.0 and new has ABI "ZwQueryIntervalProfile@8"
2126693ZwQueryKey@20
2127ZwQueryLicenseValue@20
2128ZwQueryMultipleValueKey@24
2129694ZwQueryMutant@20
2130695ZwQueryObject@20
2131ZwQueryOpenSubKeys@8
2132ZwQueryOpenSubKeysEx@16
2133696ZwQueryPerformanceCounter@8
2134ZwQueryPortInformationProcess@0
2135ZwQueryQuotaInformationFile@36
2136697ZwQuerySection@20
2137ZwQuerySecurityAttributesToken@24
2138698ZwQuerySecurityObject@20
2139ZwQuerySecurityPolicy@24
2140699ZwQuerySemaphore@20
2141700ZwQuerySymbolicLinkObject@12
2142701ZwQuerySystemEnvironmentValue@16
2143ZwQuerySystemEnvironmentValueEx@20
2144702ZwQuerySystemInformation@16
2145ZwQuerySystemInformationEx@24
2146703ZwQuerySystemTime@4
2147704ZwQueryTimer@20
2148ZwQueryTimerResolution@12
2149705ZwQueryValueKey@24
2150706ZwQueryVirtualMemory@24
2151707ZwQueryVolumeInformationFile@20
2152ZwQueryWnfStateData@24
2153ZwQueryWnfStateNameInformation@20
2154ZwQueueApcThread@20
2155ZwQueueApcThreadEx2@28
2156ZwQueueApcThreadEx@24
2157708ZwRaiseException@12
2158709ZwRaiseHardError@24
2159710ZwReadFile@36
2160ZwReadFileScatter@36
2161ZwReadOnlyEnlistment@8
2162711ZwReadRequestData@24
2163712ZwReadVirtualMemory@20
2164ZwReadVirtualMemoryEx@24
2165ZwRecoverEnlistment@8
2166ZwRecoverResourceManager@4
2167ZwRecoverTransactionManager@4
2168ZwRegisterProtocolAddressInformation@20
2169713ZwRegisterThreadTerminatePort@4
2170ZwReleaseCMFViewOwnership@0
2171ZwReleaseKeyedEvent@16
2172714ZwReleaseMutant@8
715; ZwReleaseProcessMutant@0 ; removed in Windows NT 4.0
2173716ZwReleaseSemaphore@12
2174ZwReleaseWorkerFactoryWorker@4
2175ZwRemoveIoCompletion@20
2176ZwRemoveIoCompletionEx@24
2177ZwRemoveProcessDebug@8
2178ZwRenameKey@8
2179ZwRenameTransactionManager@8
717; ZwRenameValueKey@16 ; removed in Windows NT 3.5
2180718ZwReplaceKey@12
2181ZwReplacePartitionUnit@12
2182719ZwReplyPort@8
2183720ZwReplyWaitReceivePort@16
2184ZwReplyWaitReceivePortEx@20
2185721ZwReplyWaitReplyPort@8
2186ZwRequestDeviceWakeup@4
2187722ZwRequestPort@8
2188723ZwRequestWaitReplyPort@12
2189ZwRequestWakeupLatency@4
2190724ZwResetEvent@8
2191ZwResetWriteWatch@12
2192725ZwRestoreKey@12
2193ZwResumeProcess@4
2194726ZwResumeThread@8
2195ZwRevertContainerImpersonation@0
2196ZwRollbackComplete@8
2197ZwRollbackEnlistment@8
2198ZwRollbackRegistryTransaction@8
2199ZwRollbackTransaction@8
2200ZwRollforwardTransactionManager@8
2201727ZwSaveKey@8
2202ZwSaveKeyEx@12
2203ZwSaveMergedKeys@12
2204ZwSecureConnectPort@36
2205ZwSerializeBoot@0
2206ZwSetBootEntryOrder@8
2207ZwSetBootOptions@8
2208ZwSetCachedSigningLevel2@24
2209ZwSetCachedSigningLevel@20
2210728ZwSetContextThread@8
2211ZwSetDebugFilterState@12
2212729ZwSetDefaultHardErrorPort@4
2213730ZwSetDefaultLocale@8
2214ZwSetDefaultUILanguage@4
2215ZwSetDriverEntryOrder@8
2216731ZwSetEaFile@16
2217732ZwSetEvent@8
2218ZwSetEventBoostPriority@4
2219733ZwSetHighEventPair@4
2220734ZwSetHighWaitLowEventPair@4
2221ZwSetIRTimer@8
2222ZwSetInformationDebugObject@20
2223ZwSetInformationEnlistment@16
735; ZwSetHighWaitLowThread@0 ; removed in Windows 2000
2224736ZwSetInformationFile@20
2225ZwSetInformationIoRing@16
2226ZwSetInformationJobObject@16
2227737ZwSetInformationKey@16
2228ZwSetInformationObject@16
2229738ZwSetInformationProcess@16
2230ZwSetInformationResourceManager@16
2231ZwSetInformationSymbolicLink@16
2232739ZwSetInformationThread@16
2233740ZwSetInformationToken@16
2234ZwSetInformationTransaction@16
2235ZwSetInformationTransactionManager@16
2236ZwSetInformationVirtualMemory@24
2237ZwSetInformationWorkerFactory@16
2238ZwSetIntervalProfile@8
2239ZwSetIoCompletion@20
2240ZwSetIoCompletionEx@24
741ZwSetIntervalProfile@8 ; Windows NT 3.1-3.5 has ABI "ZwSetIntervalProfile@4", Windows NT 3.51 and new has ABI "ZwSetIntervalProfile@8"
2241742ZwSetLdtEntries@24
2242743ZwSetLowEventPair@4
2243744ZwSetLowWaitHighEventPair@4
2244ZwSetQuotaInformationFile@16
745; ZwSetLowWaitHighThread@0 ; removed in Windows 2000
2245746ZwSetSecurityObject@12
2246747ZwSetSystemEnvironmentValue@8
2247ZwSetSystemEnvironmentValueEx@20
2248ZwSetSystemInformation@12
2249ZwSetSystemPowerState@12
2250748ZwSetSystemTime@8
2251ZwSetThreadExecutionState@8
2252ZwSetTimer2@16
2253ZwSetTimer@28
2254ZwSetTimerEx@16
2255ZwSetTimerResolution@12
2256ZwSetUuidSeed@4
749ZwSetTimer@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"
2257750ZwSetValueKey@24
2258751ZwSetVolumeInformationFile@20
2259ZwSetWnfProcessNotificationEvent@4
2260752ZwShutdownSystem@4
2261ZwShutdownWorkerFactory@8
2262ZwSignalAndWaitForSingleObject@16
2263ZwSinglePhaseReject@8
2264753ZwStartProfile@4
2265754ZwStopProfile@4
2266ZwSubmitIoRing@16
2267ZwSubscribeWnfStateChange@16
2268ZwSuspendProcess@4
2269755ZwSuspendThread@8
2270756ZwSystemDebugControl@24
2271ZwTerminateEnclave@8
2272ZwTerminateJobObject@8
2273757ZwTerminateProcess@8
2274758ZwTerminateThread@8
2275759ZwTestAlert@0
2276ZwThawRegistry@0
2277ZwThawTransactions@0
2278ZwTraceControl@24
2279ZwTraceEvent@16
2280ZwTranslateFilePath@16
2281ZwUmsThreadYield@4
2282760ZwUnloadDriver@4
2283ZwUnloadKey2@8
2284761ZwUnloadKey@4
2285ZwUnloadKeyEx@8
2286762ZwUnlockFile@20
2287763ZwUnlockVirtualMemory@16
2288764ZwUnmapViewOfSection@8
2289ZwUnmapViewOfSectionEx@12
2290ZwUnsubscribeWnfStateChange@4
2291ZwUpdateWnfStateData@28
2292ZwVdmControl@8
2293ZwWaitForAlertByThreadId@8
2294ZwWaitForDebugEvent@16
2295ZwWaitForKeyedEvent@16
2296ZwWaitForMultipleObjects32@20
765ZwVdmControl@8 ; Windows NT 3.1 has ABI "ZwVdmControl@16", Windows NT 3.5 and new has ABI "ZwVdmControl@8"
766; ZwVdmStartExecution@0 ; removed in Windows NT 3.5
2297767ZwWaitForMultipleObjects@20
768; ZwWaitForProcessMutant@0 ; removed in Windows NT 4.0
2298769ZwWaitForSingleObject@12
2299ZwWaitForWorkViaWorkerFactory@8
2300770ZwWaitHighEventPair@4
2301771ZwWaitLowEventPair@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
2322772ZwWriteFile@36
2323ZwWriteFileGather@36
2324773ZwWriteRequestData@24
2325774ZwWriteVirtualMemory@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
23261052ZwYieldExecution@0
2327vDbgPrintEx@16
2328vDbgPrintExWithPrefix@20
1053
1054; 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
66CursorLibLockDesc@8
77CursorLibLockStmt@8
88CursorLibTransact@12
9DllBidEntryPoint@36
10GetODBCSharedData@0
911LockHandle@12
1012MpHeapAlloc
1113MpHeapCompact
......@@ -39,6 +41,7 @@ SQLBrowseConnectA@24
3941SQLBrowseConnectW@24
4042SQLBulkOperations@8
4143SQLCancel@4
44SQLCancelHandle@8
4245SQLCloseCursor@4
4346SQLColAttribute@28
4447SQLColAttributeA@28
......@@ -52,6 +55,7 @@ SQLColumnPrivilegesW@36
5255SQLColumns@36
5356SQLColumnsA@36
5457SQLColumnsW@36
58SQLCompleteAsync@12
5559SQLConnect@28
5660SQLConnectA@28
5761SQLConnectW@28
lib/libc/mingw/lib32/oleacc.def+10-5
......@@ -1,21 +1,26 @@
11;
22; Definition file of OLEACC.dll
3; Automatic generated by gendef
3; Automatic generated by gendef 1.1
44; written by Kai Tietz 2008
5; The def file has to be processed by --kill-at (-k) option of dlltool or ld
56;
67LIBRARY "OLEACC.dll"
78EXPORTS
8DllRegisterServer@0
9DllUnregisterServer@0
9;DllRegisterServer@0
10;DllUnregisterServer@0
11AccGetRunningUtilityState@12
12AccNotifyTouchInteraction@16
13AccSetRunningUtilityState@12
1014AccessibleChildren@20
1115AccessibleObjectFromEvent@20
1216AccessibleObjectFromPoint@16
1317AccessibleObjectFromWindow@16
18AccessibleObjectFromWindowTimeout@24
1419CreateStdAccessibleObject@16
1520CreateStdAccessibleProxyA@20
1621CreateStdAccessibleProxyW@20
17DllCanUnloadNow@0
18DllGetClassObject@12
22;DllCanUnloadNow@0
23;DllGetClassObject@12
1924GetOleaccVersionInfo@8
2025GetProcessHandleFromHwnd@4
2126GetRoleTextA@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 @@
1414#define INITGUID
1515#include <basetyps.h>
1616
17#include <activscp.h>
1718#include <credentialprovider.h>
1819#include <httprequest.h>
1920#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)
152152 {
153153 /* We haven't started the search yet. */
154154 /* 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
157163 if (dirp->dd_handle == -1)
158164 {
......@@ -168,7 +174,13 @@ _treaddir (_TDIR * dirp)
168174 else
169175 {
170176 /* 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)))
172184 {
173185 /* We are off the end or otherwise error.
174186 _findnext sets errno to ENOENT if no more file
lib/libc/mingw/misc/dirname.c+4-3
......@@ -7,6 +7,7 @@
77#define WIN32_LEAN_AND_MEAN
88#endif
99#include <stdlib.h>
10#include <locale.h>
1011#include <libgen.h>
1112#include <windows.h>
1213
......@@ -91,7 +92,7 @@ do_get_path_info(struct path_info* info, char* path)
9192 int dbcs_tb, prev_dir_sep, dir_sep;
9293
9394 /* 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
9697 /* Set the structure to 'no data'. */
9798 info->prefix_end = NULL;
......@@ -112,7 +113,7 @@ do_get_path_info(struct path_info* info, char* path)
112113
113114 if(dbcs_tb)
114115 dbcs_tb = 0;
115 else if(IsDBCSLeadByteEx(cp, *pos))
116 else if(__mingw_isleadbyte_cp(*pos, cp))
116117 dbcs_tb = 1;
117118 else
118119 dir_sep = IS_DIR_SEP(*pos);
......@@ -156,7 +157,7 @@ do_get_path_info(struct path_info* info, char* path)
156157
157158 if(dbcs_tb)
158159 dbcs_tb = 0;
159 else if(IsDBCSLeadByteEx(cp, *pos))
160 else if(__mingw_isleadbyte_cp(*pos, cp))
160161 dbcs_tb = 1;
161162 else
162163 dir_sep = IS_DIR_SEP(*pos);
lib/libc/mingw/misc/dllmain.c+1-1
......@@ -1,4 +1,4 @@
1#include <oscalls.h>
1#include <windows.h>
22#define _DECL_DLLMAIN
33#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 @@
1313int fegetenv(fenv_t *env)
1414{
1515#if defined(__i386__) || (defined(__x86_64__) && !defined(__arm64ec__))
16 unsigned int x87, sse;
16 unsigned int x87, sse = 0;
1717 __mingw_control87_2(0, 0, &x87, &sse);
1818 env->_Fe_ctl = fenv_encode(x87, sse);
1919 __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);
2122 env->_Fe_stat = fenv_encode(x87, sse);
2223#else
2324 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 @@
1515int fegetexceptflag(fexcept_t *status, int excepts)
1616{
1717#if defined(__i386__) || (defined(__x86_64__) && !defined(__arm64ec__))
18 unsigned int x87, sse;
18 unsigned int x87, sse = 0;
1919 __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);
2122 *status = fenv_encode(x87 & excepts, sse & excepts);
2223#else
2324 *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,
319319{
320320 char *oli; /* option letter list index */
321321 int optchar, short_too;
322 size_t var_size;
322323 static int posixly_correct = -1;
323324
324325 if (options == NULL)
......@@ -339,7 +340,7 @@ getopt_internal(int nargc, char * const *nargv, const char *options,
339340 * optreset != 0 for GNU compatibility.
340341 */
341342 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);
343344 if (*options == '-')
344345 flags |= FLAG_ALLARGS;
345346 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 @@
77#include "internal.h"
88
99#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 */
1118int __mingw_control87_2( unsigned int newval, unsigned int mask,
1219 unsigned int *x86_cw, unsigned int *sse2_cw )
1320{
......@@ -30,7 +37,20 @@ int __mingw_control87_2( unsigned int newval, unsigned int mask,
3037}
3138#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 */
3454unsigned int __mingw_controlfp(unsigned int newval, unsigned int mask)
3555{
3656 unsigned int flags = 0;
lib/libc/mingw/misc/mingw_mbwc_convert.c+63-6
......@@ -1,22 +1,51 @@
11#include <stdlib.h>
22#include <stdio.h>
33#include <wchar.h>
4#include <errno.h>
45#include <windows.h>
56#include <winnls.h>
67
78int __cdecl __mingw_str_wide_utf8(const wchar_t * const wptr, char **mbptr, size_t *buflen)
89{
9 size_t len;
10 int len;
1011 char *buf;
1112 int ret = 0;
1213
1314 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 }
1434 buf = calloc(len + 1, sizeof (char)); /* Can we assume sizeof char always = 1? */
1535
1636 if(!buf) len = 0;
1737 else {
18 if (len != 0) ret = WideCharToMultiByte(CP_UTF8, 0, wptr, -1, buf, len, NULL, NULL); /*Do actual conversion*/
19 buf[len] = '0'; /* Must terminate */
38 if (len != 0) {
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 */
2049 }
2150 *mbptr = buf; /* Set string pointer to allocated buffer */
2251 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
2554
2655int __cdecl __mingw_str_utf8_wide(const char *const mbptr, wchar_t **wptr, size_t *buflen)
2756{
28 size_t len;
57 int len;
2958 wchar_t *buf;
3059 int ret = 0;
3160
3261 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 }
3381 buf = calloc(len + 1, sizeof (wchar_t)); /* Allocate memory accordingly */
3482
3583 if(!buf) len = 0;
3684 else {
37 if (len != 0) ret = MultiByteToWideChar (CP_UTF8, MB_ERR_INVALID_CHARS, mbptr, -1, buf, len); /* Do conversion */
38 buf[len] = L'0'; /* Must terminate */
85 if (len != 0) {
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 */
3996 }
4097 *wptr = buf; /* Set string pointer to allocated buffer */
4198 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,
118118#if defined(__arm64ec__)
119119 __mingw_setfp_sse(cw, cw_mask, sw, sw_mask);
120120#elif defined(__i386__) || defined(__x86_64__)
121 unsigned long oldcw = 0, newcw = 0;
122 unsigned long oldsw = 0, newsw = 0;
121 unsigned long newcw = 0, newsw = 0;
123122 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
125139 cw_mask &= _MCW_EM | _MCW_IC | _MCW_RC | _MCW_PC;
126140 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
129153 {
130 __asm__ __volatile__( "fstsw %0" : "=m" (newsw) );
131 oldsw = newsw;
154 /* Slow path: when we are going to change sw/cw or we do not know yet then
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 {
133167 flags = 0;
134168 if (newsw & 0x1) flags |= _SW_INVALID;
135169 if (newsw & 0x2) flags |= _SW_DENORMAL;
......@@ -151,9 +185,6 @@ void __mingw_setfp( unsigned int *cw, unsigned int cw_mask,
151185
152186 if (cw)
153187 {
154 __asm__ __volatile__( "fstcw %0" : "=m" (newcw) );
155 oldcw = newcw;
156
157188 flags = 0;
158189 if (newcw & 0x1) flags |= _EM_INVALID;
159190 if (newcw & 0x2) flags |= _EM_DENORMAL;
......@@ -198,35 +229,18 @@ void __mingw_setfp( unsigned int *cw, unsigned int cw_mask,
198229 if (*cw & _IC_AFFINE) newcw |= 0x1000;
199230 }
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)
202238 {
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) );
219239 fenv.control_word = newcw;
220240 fenv.status_word = newsw;
221241 __asm__ __volatile__( "fldenv %0" : : "m" (fenv) : "st", "st(1)",
222242 "st(2)", "st(3)", "st(4)", "st(5)", "st(6)", "st(7)" );
223 return;
224243 }
225
226 if (oldsw != newsw)
227 __asm__ __volatile__( "fnclex" );
228 if (oldcw != newcw)
229 __asm__ __volatile__( "fldcw %0" : : "m" (newcw) );
230244#elif defined(__aarch64__)
231245 ULONG_PTR old_fpsr = 0, fpsr = 0, old_fpcr = 0, fpcr = 0;
232246 unsigned int flags;
lib/libc/mingw/misc/mingw_wcstold.c-2
......@@ -23,8 +23,6 @@
2323#include <string.h>
2424#include <mbstring.h>
2525
26#include "mb_wc_common.h"
27
2826long double __mingw_wcstold (const wchar_t * __restrict__ wcs, wchar_t ** __restrict__ wcse)
2927{
3028 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 @@
44#include <string.h>
55#include <io.h>
66#include <errno.h>
7#include <time.h>
78#include <share.h>
89#include <fcntl.h>
910#include <sys/stat.h>
......@@ -46,7 +47,7 @@ int __cdecl mkstemp (char *template_name)
4647 for (i = 0; i <= INT_MAX; i++) {
4748 for(j = index; j < len; j++) {
4849 if (rand_s(&r))
49 r = rand();
50 r = rand() ^ _time32(NULL);
5051 template_name[j] = letters[r % 62];
5152 }
5253 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 @@
44 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
55 */
66
7#ifndef WIN32_LEAN_AND_MEAN
8#define WIN32_LEAN_AND_MEAN
9#endif
710#include <sys/stat.h>
811#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
1023/**
1124 * Returns _path without trailing slash if any
......@@ -17,10 +30,10 @@
1730 * to free it.
1831 */
1932
20char* __mingw_fix_stat_path (const char* _path);
2133char* __mingw_fix_stat_path (const char* _path)
2234{
23 int len;
35 const unsigned int cp = __mingw_filename_cp ();
36 size_t len;
2437 char *p;
2538
2639 p = (char*)_path;
......@@ -28,24 +41,27 @@ char* __mingw_fix_stat_path (const char* _path)
2841 if (_path && *_path) {
2942 len = strlen (_path);
3043
31 /* Ignore X:\ */
32
44 /* Ignore X:\
45 * 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.) */
3347 if (len <= 1 || ((len == 2 || len == 3) && _path[1] == ':'))
3448 return p;
3549
50 const char *r = _path;
51
3652 /* Check UNC \\abc\<name>\ */
3753 if ((_path[0] == '\\' || _path[0] == '/')
3854 && (_path[1] == '\\' || _path[1] == '/'))
3955 {
40 const char *r = &_path[2];
56 r = &_path[2];
4157 while (*r != 0 && *r != '\\' && *r != '/')
42 ++r;
58 r = next_char (cp, r);
4359 if (*r != 0)
4460 ++r;
4561 if (*r == 0)
4662 return p;
4763 while (*r != 0 && *r != '\\' && *r != '/')
48 ++r;
64 r = next_char (cp, r);
4965 if (*r != 0)
5066 ++r;
5167 if (*r == 0)
......@@ -54,7 +70,19 @@ char* __mingw_fix_stat_path (const char* _path)
5470
5571 if (_path[len - 1] == '/' || _path[len - 1] == '\\')
5672 {
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
5783 p = (char*)malloc (len);
84 if (p == NULL)
85 return NULL; /* malloc has set errno. */
5886 memcpy (p, _path, len - 1);
5987 p[len - 1] = '\0';
6088 }
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 @@
66
77#include <sys/stat.h>
88#include <stdlib.h>
9#include "__mingw_fix_stat.h"
910
1011/**
1112 * Returns _path without trailing slash if any
......@@ -17,10 +18,9 @@
1718 * to free it.
1819 */
1920
20wchar_t* __mingw_fix_wstat_path (const wchar_t* _path);
2121wchar_t* __mingw_fix_wstat_path (const wchar_t* _path)
2222{
23 int len;
23 size_t len;
2424 wchar_t *p;
2525
2626 p = (wchar_t*)_path;
......@@ -55,6 +55,8 @@ wchar_t* __mingw_fix_wstat_path (const wchar_t* _path)
5555 if (_path[len - 1] == L'/' || _path[len - 1] == L'\\')
5656 {
5757 p = (wchar_t*)malloc (len * sizeof(wchar_t));
58 if (p == NULL)
59 return NULL; /* malloc has set errno. */
5860 memcpy (p, _path, (len - 1) * sizeof(wchar_t));
5961 p[len - 1] = L'\0';
6062 }
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 @@
6666#include <limits.h>
6767#include <locale.h>
6868#include <wchar.h>
69#include <winternl.h>
6970
7071#ifdef __ENABLE_DFP
7172#ifndef __STDC_WANT_DEC_FP__
......@@ -163,6 +164,12 @@ typedef union ATTRIB_GCC_STRUCT __uI128 {
163164#define PFORMAT_XMASK 0x0000000F
164165#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
166173/* The radix point character, used in floating point formats, is
167174 * localised on the basis of the active LC_NUMERIC locale category.
168175 * 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 *
361368 buff[bufflen - 1] = '\0';
362369}
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
364388/* LSB first, octet version */
365389static
366390void __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 *
377401 pos--;
378402 }
379403 }
380 if(pos < bufflen - 1)
381 memset(buff,'0', pos + 1);
404 /* Fill any remaining leading positions with zeros */
405 memset(buff, '0', pos + 1);
382406 buff[bufflen - 1] = '\0';
383407}
384408#endif /* defined(__ENABLE_PRINTF128) */
......@@ -569,8 +593,8 @@ void __pformat_wputchars( const wchar_t *s, int count, __pformat_t *stream )
569593 * output quota is honoured.
570594 */
571595 char buf[16];
572 mbstate_t state;
573 int len = wcrtomb(buf, L'\0', &state);
596 mbstate_t state = {0};
597 int len;
574598
575599 if( (stream->precision >= 0) && (count > stream->precision) )
576600 /*
......@@ -657,7 +681,7 @@ void __pformat_wputchars( const wchar_t *s, int count, __pformat_t *stream )
657681 __pformat_putc( '\x20', stream );
658682
659683 len = count;
660 while(len-- > 0 && *s != 0)
684 while(len-- > 0)
661685 {
662686 __pformat_putc(*s++, stream);
663687 }
......@@ -752,12 +776,12 @@ void __pformat_int( __pformat_intarg_t value, __pformat_t *stream )
752776 */
753777 __bigint_to_string(value.__pformat_u128_t.t128_2.digits32,
754778 4, tmp_buff, bufflen);
755 __bigint_trim_leading_zeroes(tmp_buff,1);
779 __bigint_trim_leading_zeroes(tmp_buff, 0);
756780
757781 memset(p,0,bufflen);
758782 for(int32_t i = strlen(tmp_buff) - 1; i >= 0; i--){
759 if ( i && (stream->flags & PFORMAT_GROUPED) != 0 && stream->thousands_chr != 0
760 && (i % 4) == 3)
783 if (p != buf && (stream->flags & PFORMAT_GROUPED) != 0 && stream->thousands_chr != 0
784 && ((p - buf) % 4) == 3)
761785 {
762786 *p++ = ',';
763787 }
......@@ -883,7 +907,7 @@ while( value.__pformat_ullong_t )
883907static
884908void __pformat_xint( int fmt, __pformat_intarg_t value, __pformat_t *stream )
885909{
886 /* Handler for `%o', `%p', `%x' and `%X' conversions.
910 /* Handler for `%o', `%p', `%x', `%X', `%b' and `%B' conversions.
887911 *
888912 * These can be implemented using a simple `mask and shift' strategy;
889913 * 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 )
891915 * digits of the formatted value, in preparation for output.
892916 */
893917 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;
895920 int bufflen = __pformat_int_bufsiz(2, shift, stream);
896921 char *buf = NULL;
897922#ifdef __ENABLE_PRINTF128
......@@ -904,16 +929,19 @@ void __pformat_xint( int fmt, __pformat_intarg_t value, __pformat_t *stream )
904929 tmp_buf = alloca(bufflen);
905930 if(fmt == 'o'){
906931 __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);
907934 } else {
908935 __bigint_to_stringx(value.__pformat_u128_t.t128_2.digits32,4,tmp_buf,bufflen, !(fmt & PFORMAT_XCASE));
909936 }
910937 __bigint_trim_leading_zeroes(tmp_buf,0);
911938
912939 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--)
914941 *p++ = tmp_buf[i];
915942#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;
917945 while( value.__pformat_ullong_t )
918946 {
919947 /* 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 )
9751003 if( ((width = stream->width) > 0)
9761004 && (fmt != 'o') && (stream->flags & PFORMAT_HASHED) )
9771005 /*
978 * For `%#x' or `%#X' formats, (which have the `#' flag set),
1006 * For `%#x', `%#X', `%#b' or `%#B' formats, (which have the `#' flag set),
9791007 * further reduce the padding width to accommodate the radix
9801008 * indicating prefix.
9811009 */
......@@ -1468,7 +1496,10 @@ void __pformat_emit_efloat( int sign, char *value, int e, __pformat_t *stream )
14681496 * include the following exponent).
14691497 */
14701498 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
14731504 /* Determine how many digit positions are required for the exponent.
14741505 */
......@@ -1881,14 +1912,15 @@ void __pformat_gfloat( long double x, __pformat_t *stream )
18811912 * precede the radix point, but we truncate any balance following
18821913 * it, to suppress output of non-significant trailing zeros...
18831914 */
1884 if( ((stream->precision = strlen( value ) - intlen) < 0)
1885 /*
1886 * This may require a compensating adjustment to the field
1887 * width, to accommodate significant trailing zeros, which
1888 * precede the radix point...
1889 */
1890 && (stream->width > 0) )
1891 stream->width += stream->precision;
1915 stream->precision = strlen( value ) - intlen;
1916
1917 /* When the mantissa is shorter than the number of integer digits
1918 * (e.g., 100000 has mantissa "1" but requires 6 digit positions),
1919 * precision becomes negative. Clamp to zero to represent no
1920 * fractional digits.
1921 */
1922 if( stream->precision < 0 )
1923 stream->precision = 0;
18921924
18931925 /* Now, we format the result as any other fixed point value.
18941926 */
......@@ -1945,7 +1977,7 @@ void __pformat_emit_xfloat( __pformat_fpreg_t value, __pformat_t *stream )
19451977 * representation of the argument value.
19461978 */
19471979 char buf[18 + 6], *p = buf;
1948 __pformat_intarg_t exponent; short exp_width = 2;
1980 short exp_width = 2;
19491981
19501982 if (value.__pformat_fpreg_mantissa != 0 ||
19511983 value.__pformat_fpreg_exponent != 0)
......@@ -2197,6 +2229,7 @@ void __pformat_emit_xfloat( __pformat_fpreg_t value, __pformat_t *stream )
21972229 stream->width += exp_width;
21982230 stream->flags |= PFORMAT_SIGNED;
21992231 /* sign extend */
2232 __pformat_intarg_t exponent;
22002233 exponent.__pformat_u128_t.t128.digits[1] = (value.__pformat_fpreg_exponent < 0) ? -1 : 0;
22012234 exponent.__pformat_u128_t.t128.digits[0] = value.__pformat_fpreg_exponent;
22022235 __pformat_int( exponent, stream );
......@@ -2506,6 +2539,64 @@ __pformat (int flags, void *dest, int max, const APICHAR *fmt, va_list argv)
25062539 */
25072540 __pformat_puts( va_arg( argv, char * ), &stream );
25082541 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
25092600 case 'm': /* strerror (errno) */
25102601 __pformat_puts (strerror (saved_errno), &stream);
25112602 goto format_scan;
......@@ -2514,8 +2605,10 @@ __pformat (int flags, void *dest, int max, const APICHAR *fmt, va_list argv)
25142605 case 'u':
25152606 case 'x':
25162607 case 'X':
2608 case 'b':
2609 case 'B':
25172610 /*
2518 * Unsigned integer values; octal, decimal or hexadecimal format...
2611 * Unsigned integer values; octal, decimal, hexadecimal or binary format...
25192612 */
25202613 stream.flags &= ~PFORMAT_POSITIVE;
25212614#if __ENABLE_PRINTF128
......@@ -2977,6 +3070,16 @@ __pformat (int flags, void *dest, int max, const APICHAR *fmt, va_list argv)
29773070 state = PFORMAT_END;
29783071 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
29803083 case 'L':
29813084 /*
29823085 * 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)
927927 case 'o': case 'p':
928928 case 'u':
929929 case 'x': case 'X':
930 case 'b': case 'B':
930931 switch (fc)
931932 {
932933 case 'd':
......@@ -954,6 +955,9 @@ __mingw_sformat (_IFP *s, const char *format, va_list argp)
954955 case 'x': case 'X':
955956 base = 16;
956957 break;
958 case 'b': case 'B':
959 base = 2;
960 break;
957961 }
958962
959963 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
5757 buf[retval < (int) length ? retval : (int)length] = '\0';
5858
5959#if defined(__BUILD_WIDEAPI) && defined(__BUILD_WIDEAPI_ISO)
60 /* For wide api ISO C95+ vswprintf() when requested length
61 * is equal or larger than buffer length, returns negative
62 * value as required by ISO C95+.
60 /* ISO C95+ fails when n or more data wide chars are needed. length was
61 * already decremented once for the terminator, so use > not >= here.
6362 */
64 if( retval >= (int) length )
63 if( retval > (int) length )
6564 retval = -1;
6665#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){
1212 errno = err;
1313 return ret;
1414}
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 @@
1010
1111static 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) {
1414 return &options;
1515}
lib/libc/mingw/stdio/ucrt___local_stdio_scanf_options.c+1-1
......@@ -10,6 +10,6 @@
1010
1111static 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) {
1414 return &options;
1515}
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 @@
1010#include <stdarg.h>
1111#include <stdio.h>
1212
13int __cdecl _snwprintf(wchar_t * restrict _Dest, size_t _Count, const wchar_t * restrict _Format, ...);
14
1513int __cdecl _snwprintf(wchar_t * restrict _Dest, size_t _Count, const wchar_t * restrict _Format, ...)
1614{
1715 va_list ap;
......@@ -21,3 +19,4 @@ int __cdecl _snwprintf(wchar_t * restrict _Dest, size_t _Count, const wchar_t *
2119 va_end(ap);
2220 return ret;
2321}
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
1212{
1313 return __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION, _Dest, _Count, _Format, NULL, _Args);
1414}
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 @@
3535void (WINAPI *_pthread_get_system_time_best_as_file_time) (LPFILETIME) = NULL;
3636static ULONGLONG (WINAPI *_pthread_get_tick_count_64) (VOID);
3737HRESULT (WINAPI *_pthread_set_thread_description) (HANDLE, PCWSTR) = NULL;
38BOOL (WINAPI *_pthread_get_handle_information) (HANDLE, LPDWORD) = NULL;
3839
3940#if defined(__GNUC__) || defined(__clang__)
41#if __GNUC__ >= 9 && !defined(__clang__)
4042#pragma GCC diagnostic push
4143#pragma GCC diagnostic ignored "-Wprio-ctor-dtor"
44#endif
4245__attribute__((constructor(0)))
4346#endif
4447static void winpthreads_init(void)
......@@ -46,9 +49,15 @@ static void winpthreads_init(void)
4649 HMODULE mod = GetModuleHandleA("kernel32.dll");
4750 if (mod)
4851 {
52 _pthread_get_handle_information =
53 (BOOL (WINAPI *)(HANDLE, LPDWORD))(void*) GetProcAddress(mod, "GetHandleInformation");
54
4955 _pthread_get_tick_count_64 =
5056 (ULONGLONG (WINAPI *)(VOID))(void*) GetProcAddress(mod, "GetTickCount64");
5157
58 _pthread_set_thread_description =
59 (HRESULT (WINAPI *)(HANDLE, PCWSTR))(void*) GetProcAddress(mod, "SetThreadDescription");
60
5261 /* <1us precision on Windows 10 */
5362 _pthread_get_system_time_best_as_file_time =
5463 (void (WINAPI *)(LPFILETIME))(void*) GetProcAddress(mod, "GetSystemTimePreciseAsFileTime");
......@@ -58,14 +67,21 @@ static void winpthreads_init(void)
5867 /* >15ms precision on Windows 10 */
5968 _pthread_get_system_time_best_as_file_time = GetSystemTimeAsFileTime;
6069
61 mod = GetModuleHandleA("kernelbase.dll");
62 if (mod)
70 /* Although SetThreadDescription lives in kernel32.dll, on Windows Server 2016,
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)
6375 {
64 _pthread_set_thread_description =
65 (HRESULT (WINAPI *)(HANDLE, PCWSTR))(void*) GetProcAddress(mod, "SetThreadDescription");
76 mod = GetModuleHandleA("kernelbase.dll");
77 if (mod)
78 {
79 _pthread_set_thread_description =
80 (HRESULT (WINAPI *)(HANDLE, PCWSTR))(void*) GetProcAddress(mod, "SetThreadDescription");
81 }
6682 }
6783}
68#if defined(__GNUC__) || defined(__clang__)
84#if defined(__GNUC__) && __GNUC__ >= 9 && !defined(__clang__)
6985#pragma GCC diagnostic pop
7086#endif
7187
lib/libc/mingw/winpthreads/misc.h+22-10
......@@ -35,18 +35,32 @@ typedef long long LONGBAG;
3535typedef long LONGBAG;
3636#endif
3737
38#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
39#undef GetHandleInformation
40#define GetHandleInformation(h,f) (1)
38extern BOOL (WINAPI *_pthread_get_handle_information) (HANDLE, LPDWORD);
39
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;
4147#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) \
4457 do { \
45 DWORD dwFlags; \
46 if (!(h) || ((h) == INVALID_HANDLE_VALUE) || !GetHandleInformation((h), &dwFlags)) \
47 return EINVAL; \
58 if (!TEST_HANDLE(h)) \
59 return e; \
4860 } while (0)
4961
62#define CHECK_HANDLE(h) CHECK_HANDLE2(h, EINVAL)
63
5064#define CHECK_PTR(p) do { if (!(p)) return EINVAL; } while (0)
5165
5266#define UPD_RESULT(x,r) do { int _r = (x); (r) = (r) ? (r) : _r; } while (0)
......@@ -59,10 +73,8 @@ typedef long LONGBAG;
5973
6074#define CHECK_OBJECT(o, e) \
6175 do { \
62 DWORD dwFlags; \
6376 if (!(o)) return e; \
64 if (!((o)->h) || (((o)->h) == INVALID_HANDLE_VALUE) || !GetHandleInformation(((o)->h), &dwFlags)) \
65 return e; \
77 CHECK_HANDLE2((o)->h, e); \
6678 } while (0)
6779
6880#define VALID(x) if (!(p)) return EINVAL;
lib/libc/mingw/winpthreads/mutex.c+5-6
......@@ -26,7 +26,6 @@
2626#endif
2727
2828#include <malloc.h>
29#include <stdbool.h>
3029#include <stdio.h>
3130
3231#define WIN32_LEAN_AND_MEAN
......@@ -64,7 +63,7 @@ typedef struct {
6463
6564/* Whether a mutex is still a static initializer (not a pointer to
6665 a mutex_impl_t). */
67static bool
66static BOOL
6867is_static_initializer(pthread_mutex_t m)
6968{
7069 /* 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)
101100
102101/* Return the implementation part of a mutex, creating it if necessary.
103102 Return NULL on out-of-memory error. */
104static inline mutex_impl_t *
103static WINPTHREADS_INLINE mutex_impl_t *
105104mutex_impl(pthread_mutex_t *m)
106105{
107106 mutex_impl_t *mi = (mutex_impl_t *)*m;
......@@ -117,7 +116,7 @@ mutex_impl(pthread_mutex_t *m)
117116
118117/* Lock a mutex. Give up after 'timeout' ms (with ETIMEDOUT),
119118 or never if timeout=INFINITE. */
120static inline int
119static WINPTHREADS_INLINE int
121120pthread_mutex_lock_intern (pthread_mutex_t *m, DWORD timeout)
122121{
123122 mutex_impl_t *mi = mutex_impl(m);
......@@ -148,7 +147,7 @@ pthread_mutex_lock_intern (pthread_mutex_t *m, DWORD timeout)
148147 /* Make sure there is an event object on which to wait. */
149148 if (mi->event == NULL) {
150149 /* Make an auto-reset event object. */
151 HANDLE ev = CreateEvent(NULL, false, false, NULL);
150 HANDLE ev = CreateEvent(NULL, FALSE, FALSE, NULL);
152151 if (ev == NULL) {
153152 switch (GetLastError()) {
154153 case ERROR_ACCESS_DENIED:
......@@ -232,7 +231,7 @@ int pthread_mutex_unlock(pthread_mutex_t *m)
232231
233232 if (unlikely(mi->type != Normal)) {
234233 if (mi->state == Unlocked)
235 return EINVAL;
234 return EPERM;
236235 if (mi->owner != GetCurrentThreadId())
237236 return EPERM;
238237 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)
267267
268268int sem_timedwait32(sem_t *sem, const struct _timespec32 *t)
269269{
270 struct _timespec64 t64 = {.tv_sec = t->tv_sec, .tv_nsec = t->tv_nsec};
271 return __sem_timedwait (sem, &t64);
270 struct _timespec64 t64 = {0};
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);
272279}
273280
274281int
lib/libc/mingw/winpthreads/thread.c+76-94
......@@ -20,6 +20,16 @@
2020 DEALINGS IN THE SOFTWARE.
2121*/
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
2333#ifdef HAVE_CONFIG_H
2434#include "config.h"
2535#endif
......@@ -32,7 +42,6 @@
3242
3343#define WIN32_LEAN_AND_MEAN
3444#include <windows.h>
35#include <strsafe.h>
3645
3746#define WINPTHREAD_THREAD_DECL WINPTHREAD_API
3847
......@@ -65,38 +74,29 @@ static size_t idListCnt = 0;
6574static size_t idListMax = 0;
6675static pthread_t idListNextId = 0;
6776
68#if !defined(_MSC_VER)
69#define USE_VEH_FOR_MSC_SETTHREADNAME
77#if defined(__SEH__) && (!defined(__clang__) || __clang_major__ >= 7)
78#define SEH_INLINE_ASM
79#ifdef __arm__
80#define ASM_EXCEPT "%%except"
81#else
82#define ASM_EXCEPT "@except"
7083#endif
71#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
72/* forbidden RemoveVectoredExceptionHandler/AddVectoredExceptionHandler APIs */
73#undef USE_VEH_FOR_MSC_SETTHREADNAME
7484#endif
7585
76#if defined(USE_VEH_FOR_MSC_SETTHREADNAME)
77static void *SetThreadName_VEH_handle = NULL;
78
79static LONG __stdcall
80SetThreadName_VEH (PEXCEPTION_POINTERS ExceptionInfo)
86#if !defined(_MSC_VER) && (defined(__i386__) || defined(SEH_INLINE_ASM))
87static EXCEPTION_DISPOSITION __cdecl
88SetThreadName_SEH (EXCEPTION_RECORD *ExceptionRecord, PVOID EstablisherFrame, CONTEXT *ContextRecord, PVOID DispatcherContext)
8189{
82 if (ExceptionInfo->ExceptionRecord != NULL &&
83 ExceptionInfo->ExceptionRecord->ExceptionCode == EXCEPTION_SET_THREAD_NAME)
84 return EXCEPTION_CONTINUE_EXECUTION;
85
86 return EXCEPTION_CONTINUE_SEARCH;
87}
90 /* Do not be confused with VEH handlers and CRT except filters which returns LONG value with UPPER_CASE constants.
91 * SEH handlers like this one return value from EXCEPTION_DISPOSITION enum which has CamelCase constants.
92 * UPPER_CASE EXCEPTION_CONTINUE_SEARCH and CamelCase ExceptionContinueSearch are different constants.
93 */
94 if (!(ExceptionRecord->ExceptionFlags & EXCEPTION_UNWINDING) &&
95 !(ExceptionRecord->ExceptionFlags & EXCEPTION_NONCONTINUABLE) &&
96 ExceptionRecord->ExceptionCode == EXCEPTION_SET_THREAD_NAME)
97 return ExceptionContinueExecution;
8898
89static PVOID (WINAPI *AddVectoredExceptionHandlerFuncPtr) (ULONG, PVECTORED_EXCEPTION_HANDLER);
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 }
99 return ExceptionContinueSearch;
100100}
101101#endif
102102
......@@ -108,6 +108,9 @@ typedef struct _THREADNAME_INFO
108108 DWORD dwFlags; /* reserved for future use, must be zero */
109109} 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
111114static void
112115SetThreadName (DWORD dwThreadID, LPCSTR szThreadName)
113116{
......@@ -121,7 +124,10 @@ SetThreadName (DWORD dwThreadID, LPCSTR szThreadName)
121124
122125 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 */
125131 __try
126132 {
127133 RaiseException (EXCEPTION_SET_THREAD_NAME, 0, infosize, (ULONG_PTR *)&info);
......@@ -130,17 +136,31 @@ SetThreadName (DWORD dwThreadID, LPCSTR szThreadName)
130136 {
131137 }
132138#else
133 /* Without a debugger we *must* have an exception handler,
134 * otherwise raising an exception will crash the process.
139 /* gcc does not support __try / __except syntax, so manually register SEH handler */
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.
135158 */
136#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
137 if ((!IsDebuggerPresent ()) && (SetThreadName_VEH_handle == NULL))
159 asm volatile (".seh_handler %c0, " ASM_EXCEPT :: "i" (SetThreadName_SEH));
160 RaiseException (EXCEPTION_SET_THREAD_NAME, 0, infosize, (ULONG_PTR *) &info);
138161#else
139 if (!IsDebuggerPresent ())
162 /* Other compilers / platforms do not provide SEH support */
140163#endif
141 return;
142
143 RaiseException (EXCEPTION_SET_THREAD_NAME, 0, infosize, (ULONG_PTR *) &info);
144164#endif
145165}
146166
......@@ -443,25 +463,10 @@ __dyn_tls_pthread (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
443463
444464 if (dwReason == DLL_PROCESS_DETACH)
445465 {
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
454466 free_pthread_mem ();
455467 }
456468 else if (dwReason == DLL_PROCESS_ATTACH)
457469 {
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
465470 }
466471 else if (dwReason == DLL_THREAD_DETACH)
467472 {
......@@ -520,13 +525,15 @@ __dyn_tls_pthread (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
520525
521526/* TLS-runtime section variable. */
522527
523#if defined(_MSC_VER)
524528/* Force a reference to _tls_used to make the linker create the TLS
525529 * directory if it's not already there. (e.g. if __declspec(thread)
526530 * is not used).
527531 * Force a reference to __xl_f to prevent whole program optimization
528532 * from discarding the variable. */
529
533#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)
530537/* On x86, symbols are prefixed with an underscore. */
531538# if defined(_M_IX86)
532539# pragma comment(linker, "/include:__tls_used")
......@@ -544,8 +551,10 @@ __dyn_tls_pthread (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
544551# pragma section(".CRT$XLF", long, read)
545552#endif
546553
554#if defined(__GNUC__)
555static __attribute__((used))
556#endif
547557WINPTHREADS_ATTRIBUTE((WINPTHREADS_SECTION(".CRT$XLF")))
548extern const PIMAGE_TLS_CALLBACK __xl_f;
549558const PIMAGE_TLS_CALLBACK __xl_f = __dyn_tls_pthread;
550559
551560/* Internal collect-once structure. */
......@@ -1277,9 +1286,7 @@ pthread_cancel (pthread_t t)
12771286#else
12781287#error Unsupported architecture
12791288#endif
1280#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
12811289 SetThreadContext (tv->h, &ctxt);
1282#endif
12831290
12841291 /* Also try deferred Cancelling */
12851292 tv->cancelled = 1;
......@@ -1516,9 +1523,7 @@ void _fpreset (void);
15161523
15171524#if defined(__i386__)
15181525/* Align ESP on 16-byte boundaries. */
1519# if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2))
15201526__attribute__((force_align_arg_pointer))
1521# endif
15221527#endif
15231528unsigned __stdcall
15241529pthread_create_wrapper (void *args)
......@@ -1539,16 +1544,10 @@ pthread_create_wrapper (void *args)
15391544 if (!setjmp(tv->jb))
15401545 {
15411546 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 */
15461547 pthread_mutex_unlock (&mtx_pthr_locked);
1548 /* Call function and save return value */
15471549 if (tv->func)
15481550 trslt = (intptr_t) tv->func(tv->ret_arg);
1549 #ifdef __SEH__
1550 asm ("\tnop\n\t.tl_end: nop\n");
1551 #endif
15521551 pthread_mutex_lock (&mtx_pthr_locked);
15531552 tv->ret_arg = (void*) trslt;
15541553 /* Clean up destructors */
......@@ -1585,19 +1584,6 @@ pthread_create_wrapper (void *args)
15851584 Sleep (0);
15861585 _endthreadex (rslt);
15871586 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
16011587}
16021588
16031589int
......@@ -1608,6 +1594,7 @@ pthread_create (pthread_t *th, const pthread_attr_t *attr, void *(* func)(void *
16081594 struct _pthread_v *tv;
16091595 unsigned int ssize = 0;
16101596 pthread_spinlock_t new_spin_keys = PTHREAD_SPINLOCK_INITIALIZER;
1597 unsigned thrAddr; /* Dummy variable to pass a valid location to _beginthreadex (Win98). */
16111598
16121599 if (attr && attr->s_size > UINT_MAX)
16131600 return EINVAL;
......@@ -1664,7 +1651,7 @@ pthread_create (pthread_t *th, const pthread_attr_t *attr, void *(* func)(void *
16641651 /* Make sure tv->h has value of INVALID_HANDLE_VALUE */
16651652 _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);
16681655 if (thrd == INVALID_HANDLE_VALUE)
16691656 thrd = 0;
16701657 /* Failed */
......@@ -1713,12 +1700,11 @@ pthread_create (pthread_t *th, const pthread_attr_t *attr, void *(* func)(void *
17131700int
17141701pthread_join (pthread_t t, void **res)
17151702{
1716 DWORD dwFlags;
17171703 struct _pthread_v *tv = __pth_gpointer_locked (t);
17181704 pthread_spinlock_t new_spin_keys = PTHREAD_SPINLOCK_INITIALIZER;
17191705
1720 if (!tv || tv->h == NULL || !GetHandleInformation(tv->h, &dwFlags))
1721 return ESRCH;
1706 CHECK_OBJECT(tv, ESRCH);
1707
17221708 if ((tv->p_state & PTHREAD_CREATE_DETACHED) != 0)
17231709 return EINVAL;
17241710 if (pthread_equal(pthread_self(), t))
......@@ -1744,14 +1730,13 @@ pthread_join (pthread_t t, void **res)
17441730int
17451731_pthread_tryjoin (pthread_t t, void **res)
17461732{
1747 DWORD dwFlags;
17481733 struct _pthread_v *tv;
17491734 pthread_spinlock_t new_spin_keys = PTHREAD_SPINLOCK_INITIALIZER;
17501735
17511736 pthread_mutex_lock (&mtx_pthr_locked);
17521737 tv = __pthread_get_pointer (t);
17531738
1754 if (!tv || tv->h == NULL || !GetHandleInformation(tv->h, &dwFlags))
1739 if (!tv || !TEST_HANDLE(tv->h))
17551740 {
17561741 pthread_mutex_unlock (&mtx_pthr_locked);
17571742 return ESRCH;
......@@ -1798,13 +1783,12 @@ int
17981783pthread_detach (pthread_t t)
17991784{
18001785 int r = 0;
1801 DWORD dwFlags;
18021786 struct _pthread_v *tv = __pth_gpointer_locked (t);
18031787 HANDLE dw;
18041788 pthread_spinlock_t new_spin_keys = PTHREAD_SPINLOCK_INITIALIZER;
18051789
18061790 pthread_mutex_lock (&mtx_pthr_locked);
1807 if (!tv || tv->h == NULL || !GetHandleInformation(tv->h, &dwFlags))
1791 if (!tv || !TEST_HANDLE(tv->h))
18081792 {
18091793 pthread_mutex_unlock (&mtx_pthr_locked);
18101794 return ESRCH;
......@@ -1897,8 +1881,8 @@ pthread_setname_np (pthread_t thread, const char *name)
18971881int
18981882pthread_getname_np (pthread_t thread, char *name, size_t len)
18991883{
1900 HRESULT result;
19011884 struct _pthread_v *tv;
1885 size_t thread_name_len;
19021886
19031887 if (name == NULL)
19041888 return EINVAL;
......@@ -1917,12 +1901,10 @@ pthread_getname_np (pthread_t thread, char *name, size_t len)
19171901 return 0;
19181902 }
19191903
1920 if (strlen (tv->thread_name) >= len)
1904 thread_name_len = strlen (tv->thread_name);
1905 if (thread_name_len >= len)
19211906 return ERANGE;
19221907
1923 result = StringCchCopyNA (name, len, tv->thread_name, len - 1);
1924 if (SUCCEEDED (result))
1925 return 0;
1926
1927 return ERANGE;
1908 memcpy (name, tv->thread_name, thread_name_len + 1);
1909 return 0;
19281910}
lib/libc/mingw/winpthreads/wpth_ver.h+2-1
......@@ -24,6 +24,7 @@
2424#define __WPTHREADS_VERSION__
2525
2626#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
2930#endif
src/libs/mingw.zig+50-9
......@@ -519,7 +519,22 @@ const mingw32_generic_src = [_][]const u8{
519519 "gdtoa" ++ path.sep_str ++ "strtopx.c",
520520 "gdtoa" ++ path.sep_str ++ "sum.c",
521521 "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",
522534 "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",
523538 "math" ++ path.sep_str ++ "fpclassify.c",
524539 "math" ++ path.sep_str ++ "fpclassifyf.c",
525540 "math" ++ path.sep_str ++ "fpclassifyl.c",
......@@ -535,8 +550,18 @@ const mingw32_generic_src = [_][]const u8{
535550 "math" ++ path.sep_str ++ "signbitl.c",
536551 "math" ++ path.sep_str ++ "signgam.c",
537552 "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",
538556 "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",
539563 "misc" ++ path.sep_str ++ "alarm.c",
564 "misc" ++ path.sep_str ++ "btowc.c",
540565 "misc" ++ path.sep_str ++ "delay-f.c",
541566 "misc" ++ path.sep_str ++ "delay-n.c",
542567 "misc" ++ path.sep_str ++ "delayimp.c",
......@@ -544,7 +569,10 @@ const mingw32_generic_src = [_][]const u8{
544569 "misc" ++ path.sep_str ++ "dirname.c",
545570 "misc" ++ path.sep_str ++ "dllmain.c",
546571 "misc" ++ path.sep_str ++ "feclearexcept.c",
572 "misc" ++ path.sep_str ++ "fedisableexcept.c",
573 "misc" ++ path.sep_str ++ "feenableexcept.c",
547574 "misc" ++ path.sep_str ++ "fegetenv.c",
575 "misc" ++ path.sep_str ++ "fegetexcept.c",
548576 "misc" ++ path.sep_str ++ "fegetexceptflag.c",
549577 "misc" ++ path.sep_str ++ "fegetround.c",
550578 "misc" ++ path.sep_str ++ "feholdexcept.c",
......@@ -556,7 +584,8 @@ const mingw32_generic_src = [_][]const u8{
556584 "misc" ++ path.sep_str ++ "mingw_controlfp.c",
557585 "misc" ++ path.sep_str ++ "mingw_setfp.c",
558586 "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",
560589 "misc" ++ path.sep_str ++ "ftw32.c",
561590 "misc" ++ path.sep_str ++ "ftw32i64.c",
562591 "misc" ++ path.sep_str ++ "ftw64.c",
......@@ -565,6 +594,8 @@ const mingw32_generic_src = [_][]const u8{
565594 "misc" ++ path.sep_str ++ "getlogin.c",
566595 "misc" ++ path.sep_str ++ "getopt.c",
567596 "misc" ++ path.sep_str ++ "gettimeofday.c",
597 "misc" ++ path.sep_str ++ "memalignment.c",
598 "misc" ++ path.sep_str ++ "memset_explicit.c",
568599 "misc" ++ path.sep_str ++ "mingw-access.c",
569600 "misc" ++ path.sep_str ++ "mingw-aligned-malloc.c",
570601 "misc" ++ path.sep_str ++ "mingw_getsp.S",
......@@ -575,6 +606,7 @@ const mingw32_generic_src = [_][]const u8{
575606 "misc" ++ path.sep_str ++ "mingw_wcstod.c",
576607 "misc" ++ path.sep_str ++ "mingw_wcstof.c",
577608 "misc" ++ path.sep_str ++ "mingw_wcstold.c",
609 "misc" ++ path.sep_str ++ "mkdtemp.c",
578610 "misc" ++ path.sep_str ++ "mkstemp.c",
579611 "misc" ++ path.sep_str ++ "sleep.c",
580612 "misc" ++ path.sep_str ++ "strsafe.c",
......@@ -583,23 +615,22 @@ const mingw32_generic_src = [_][]const u8{
583615 "misc" ++ path.sep_str ++ "tfind.c",
584616 "misc" ++ path.sep_str ++ "tsearch.c",
585617 "misc" ++ path.sep_str ++ "twalk.c",
618 "misc" ++ path.sep_str ++ "wctob.c",
586619 "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",
587623 "stdio" ++ path.sep_str ++ "__mingw_fix_stat_path.c",
624 "stdio" ++ path.sep_str ++ "__mingw_fix_wstat_fallback_fd.c",
588625 "stdio" ++ path.sep_str ++ "__mingw_fix_wstat_path.c",
589626 "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",
596627 "stdio" ++ path.sep_str ++ "lltoa.c",
597628 "stdio" ++ path.sep_str ++ "lltow.c",
598 "stdio" ++ path.sep_str ++ "lseek64.c",
599629 "stdio" ++ path.sep_str ++ "mingw_asprintf.c",
600630 "stdio" ++ path.sep_str ++ "mingw_fprintf.c",
601631 "stdio" ++ path.sep_str ++ "mingw_fwprintf.c",
602632 "stdio" ++ path.sep_str ++ "mingw_fscanf.c",
633 "stdio" ++ path.sep_str ++ "mingw_ftruncate64.c",
603634 "stdio" ++ path.sep_str ++ "mingw_fwscanf.c",
604635 "stdio" ++ path.sep_str ++ "mingw_pformat.c",
605636 "stdio" ++ path.sep_str ++ "mingw_sformat.c",
......@@ -631,6 +662,7 @@ const mingw32_generic_src = [_][]const u8{
631662 "stdio" ++ path.sep_str ++ "snprintf.c",
632663 "stdio" ++ path.sep_str ++ "snwprintf.c",
633664 "stdio" ++ path.sep_str ++ "truncate.c",
665 "stdio" ++ path.sep_str ++ "truncate64.c",
634666 "stdio" ++ path.sep_str ++ "ulltoa.c",
635667 "stdio" ++ path.sep_str ++ "ulltow.c",
636668 "stdio" ++ path.sep_str ++ "vasprintf.c",
......@@ -640,6 +672,10 @@ const mingw32_generic_src = [_][]const u8{
640672 // mingwthrd
641673 "libsrc" ++ path.sep_str ++ "mingwthrd_mt.c",
642674 // 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",
643679 "math" ++ path.sep_str ++ "_huge.c",
644680 "misc" ++ path.sep_str ++ "__initenv.c",
645681 "misc" ++ path.sep_str ++ "__winitenv.c",
......@@ -651,14 +687,20 @@ const mingw32_generic_src = [_][]const u8{
651687 "misc" ++ path.sep_str ++ "ucrt__wgetmainargs.c",
652688 "misc" ++ path.sep_str ++ "ucrt_amsg_exit.c",
653689 "misc" ++ path.sep_str ++ "ucrt_at_quick_exit.c",
690 "misc" ++ path.sep_str ++ "ucrt_mbsinit.c",
654691 "misc" ++ path.sep_str ++ "ucrt_tzset.c",
692 "stdio" ++ path.sep_str ++ "msvcr80plus_ftruncate64.c",
655693 "stdio" ++ path.sep_str ++ "ucrt__scprintf.c",
694 "stdio" ++ path.sep_str ++ "ucrt__scwprintf.c",
656695 "stdio" ++ path.sep_str ++ "ucrt__snprintf.c",
657696 "stdio" ++ path.sep_str ++ "ucrt__snscanf.c",
658697 "stdio" ++ path.sep_str ++ "ucrt__snwprintf.c",
698 "stdio" ++ path.sep_str ++ "ucrt__swprintf.c",
659699 "stdio" ++ path.sep_str ++ "ucrt__vscprintf.c",
700 "stdio" ++ path.sep_str ++ "ucrt__vscwprintf.c",
660701 "stdio" ++ path.sep_str ++ "ucrt__vsnprintf.c",
661702 "stdio" ++ path.sep_str ++ "ucrt__vsnwprintf.c",
703 "stdio" ++ path.sep_str ++ "ucrt__vswprintf.c",
662704 "stdio" ++ path.sep_str ++ "ucrt___local_stdio_printf_options.c",
663705 "stdio" ++ path.sep_str ++ "ucrt___local_stdio_scanf_options.c",
664706 "stdio" ++ path.sep_str ++ "ucrt_fprintf.c",
......@@ -691,7 +733,6 @@ const mingw32_generic_src = [_][]const u8{
691733 "stdio" ++ path.sep_str ++ "ucrt_wprintf.c",
692734 "string" ++ path.sep_str ++ "ucrt__wcstok.c",
693735 // uuid
694 "libsrc" ++ path.sep_str ++ "ativscp-uuid.c",
695736 "libsrc" ++ path.sep_str ++ "atsmedia-uuid.c",
696737 "libsrc" ++ path.sep_str ++ "bth-uuid.c",
697738 "libsrc" ++ path.sep_str ++ "cguid-uuid.c",