Commit graph

3255 commits

Author SHA1 Message Date
Timo Kreuzer
92d479a54b [VCRUNTIME] Add initialization / cleanup of wine code 2025-02-06 09:17:37 +02:00
Timo Kreuzer
32c349d30e [VCRUNTIME] Add TLS callback support 2025-02-06 09:17:37 +02:00
Timo Kreuzer
7f050e0a6d [VCRUNTIME] Improve includes in internal_shared.h 2025-02-06 09:17:37 +02:00
Timo Kreuzer
a978879ddb [VCSTARTUP] Implement (w)mainCRTStartup
__acrt_initialize is here as a stub to later support linking ucrt statically. When it is statically linked the real function should be called, but when the executable links to ucrtdll, the initialization happens when the DLL is loaded, so we call a stub here.
2025-02-06 09:17:37 +02:00
Timo Kreuzer
d243b6cdf3 [VCRUNTIME] Implement __std_terminate() 2025-02-06 09:17:37 +02:00
Timo Kreuzer
9186b861a6 [VCRUNTIME][VCSTARTUP] Add separate vcruntime and vcstartup lib
vcruntime contains the code that is linked into ucrtbase (in VS it is also provided as vcruntime140.dll)
vcstartup contains the code that is statically linked into executables that link to ucrtbase.dll. In Visual Studio this is part of msvcrt.lib (the import library for msvcrt), similar to our current msvcrtex, and it gets linked when you link to ucrtbase as well. The name is based on the folder name in the library.
Both libraries share some code, but each file is only compiled once.
2025-02-06 09:17:37 +02:00
Max Korostil
2b2bdabe72
[RTL][NTDLL_APITEST] Fix buffer overflow in RtlDosSearchPath_Ustr (#7698)
In addition:
- `IS_PATH_SEPARATOR(*--End)` -> `--End; IS_PATH_SEPARATOR(*End)` fix,
- Use SIZE_T type for `WorstCaseLength` and `NamePlusExtLength`.
2025-02-05 21:17:11 +01:00
Timo Kreuzer
aa46e0f0a7 [RTL/x64] Fix a bug in RtlpUnwindInternal
Check if the stack pointer is out of bounds, before trying to unwind a frame. This will not fix any crashes, but it prevents simple crashes from going into a recursive exception.
2025-02-04 09:00:35 +02:00
Hermès Bélusca-Maïto
97ea95c80c
[SDK:BUGCODES] Remove inaccurate description of CREATE_DELETE_LOCK_NOT_LOCKED
The description had nothing to do with CREATE_DELETE_LOCK_NOT_LOCKED,
but instead was for EMPTY_THREAD_REAPER_LIST. And even so, descriptions
for both of these BSOD codes have been removed in official MS Windows
2000 and beyond.

Regarding the Thread Ripper:
https://devblogs.microsoft.com/oldnewthing/20231031-00/?p=108944
2025-02-03 17:04:10 +01:00
Timo Kreuzer
be3dde7698 [NTOS] Make KeFeatureBits 64 bit 2025-02-01 19:45:21 +02:00
Katayama Hirofumi MZ
ee19792605
[SHDOCVW][EXPLORER][RSHELL][SDK] Populate WinList_* stubs (#7691)
Implementing missing features...
JIRA issue: CORE-9368
- Modify shdocvw.spec.
- Add dll/win32/shdocvw/winlist.cpp.
- Add stubs of WinList_* functions.
- Add WinList_* function prototypes
  to <shdocvw_undoc.h>.
- Adapt explorer and rshell to new
  WinList_Init prototype.
2025-02-01 07:14:36 +09:00
Katayama Hirofumi MZ
909468c4dc
[SDK][SHELL32][SHLWAPI][SHLWAPI_APITEST] Split IShellFolder helpers hack (#7685)
Splitting the hack will improve our code quality.
JIRA issue: N/A
- Add sdk/include/reactos/ishellfolder_helpers.h
  header file.
- Split conflicting code.
2025-01-31 08:15:36 +09:00
Katayama Hirofumi MZ
7e52f64044
[SDK] Define IAssociationElement, IAssociationArray etc. (#7678)
Defining missing interfaces for
file association...
JIRA issue: CORE-19278
- Define IID_IAssociationElementOld,
  and IID_IAssociationElement
  interface IDs in <shlguid_undoc.h>.
- Define ASSOCQUERY, and
  IAssociationElementOld in
  <shlwapi_undoc.h>.
- Define IAssociationElement,
  IEnumAssociationElements,
  IAssociationArrayOld, and
  IAssociationArray interfaces in
  <shlobj_undoc.h>.
- Simplify <shlwapi_undoc.h>
  and <shlobj_undoc.h>.
2025-01-30 22:16:46 +09:00
Timo Kreuzer
de3a6706e7 [UCRT] fenv.h: Fix GCC build of _Fenv1 2025-01-30 11:30:32 +02:00
Timo Kreuzer
a438d7c3b8 [UCRT] Add GCC compatible definition of _CRT_STDIO_INLINE
In C99 mode GCC emits global symbols for inline functions, as soon as the compilation unit contains a declaration that marks the function as "extern". A number of functions like printf are implicitly declared as extern by GCC, which seemingly cannot be disabled. This would lead to the inline function being emitted as a global symbol in every compilation unit. Using static inline prevents duplicate symbol errors.
2025-01-30 11:30:32 +02:00
Timo Kreuzer
4ca68ffb1c [UCRT] Make __local_stdio_printf/scanf_options GCC compatible 2025-01-30 11:30:32 +02:00
Timo Kreuzer
bb9392e4e1 [CMAKE] Define _CRT_SUPPRESS_RESTRICT on GCC builds
This prevents the use of __declspec(restrict) in UCRT headers.
2025-01-30 11:30:32 +02:00
Hermès Bélusca-Maïto
317f1e8391
[NDK][NTOS:EX:KD64] Add SAL annotations to Kd/Nt/ZwSystemDebugControl. 2025-01-28 22:00:35 +01:00
Hermès Bélusca-Maïto
2c59b5b8cf
[NDK] SYSDBG: Add SysDbgKdPullRemoteFile enum value and structure (Win10 19041+)
From https://github.com/processhacker/phnt/
2025-01-28 22:00:28 +01:00
Hermès Bélusca-Maïto
4d37135884
[NDK] SYSDBG: Add SysDbgGetLiveKernelDump enum value and structures for kernel live dump.
For more information, see:
https://crashdmp.wordpress.com/2014/08/04/livedump-1-0-is-available/
https://github.com/lilhoser/livedump
https://gary-nebbett.blogspot.com/2016/04/examining-windows-kernel-mode-stacks.html
https://github.com/processhacker/phnt
2025-01-28 22:00:28 +01:00
Hermès Bélusca-Maïto
b5007e09b1
[NDK] SYSDBG: Add versioning info for Vista+ commands. 2025-01-28 22:00:27 +01:00
Timo Kreuzer
ae0fa8ba49 [UCRTSUPPORT] Add wine c++ exception code 2025-01-28 22:50:04 +02:00
Timo Kreuzer
e2d69ad98c [CRT] Split MSVC C++ aliases from cpp.s to cpp_alias.s 2025-01-28 22:50:04 +02:00
Katayama Hirofumi MZ
84df40a128
[SHELL32][SHELL32_APITEST][SDK] SHGetComputerDisplayNameW (#7670)
Implementing missing features...
JIRA issue: CORE-19278
- Modify shell32.spec.
- Move function definition from
  stubs.cpp to utils.cpp.
- Implement
  SHGetComputerDisplayNameW
  function.
- Add prototype to <undocshell.h>.
2025-01-28 23:23:54 +09:00
Katayama Hirofumi MZ
1b5f6c2dc0
[UXTHEME][UXTHEME_APITEST][SDK] GetThemeParseErrorInfo (#7662)
Implementing missing features...
JIRA issue: CORE-12805
- Add dll/win32/uxtheme/errinfo.c.
- Implement GetThemeParseErrorInfo
  function in errinfo.c.
- Modify uxtheme.spec.
- Add GetThemeParseErrorInfo
  prototype to <uxundoc.h>.
- Adapt <uxundoc.h> to C++.
- Add global variable
  gdwErrorInfoTlsIndex.
- Add UXTHEME_UnInitSystem
  function.
2025-01-28 21:05:40 +09:00
Katayama Hirofumi MZ
fe11f7a2e5
[REACTOS] Refresh old URLs (#7632)
URLs are getting old. We have to
update URLs for documentation
purpose.
JIRA issue: CORE-19963
- Refresh old URLs.
- Add " (DEAD_LINK)" labels
  to dead links.
- Use MS Learn links rather
  than MSDN ones.
- Some dead links revived by
  Web Archive.
- Don't change Wine Tests
  and Wine Sync.
- Don't change 3rd party libraries.
- Don't append "redirected" labels.
2025-01-28 13:36:45 +09:00
Justin Miller
0bf42067d2 [KERNEL32][ROSTESTS][SDK] Enable threadpooling
[NTDLL] Init KeyedEvents even on NT5.2 dll_export
[MEDIA] Update winesync.txt accordingly
[SDK][DLL] Initialize crtical sections at runtime
2025-01-26 23:30:59 -08:00
Denis Malikov
405ed2b4ce [KERNEL32_VISTA][SDK] Import Threadpool.c from wine-9.7 2025-01-26 23:30:59 -08:00
Timo Kreuzer
d92f02e2e5 [CMAKE] Build host tools as Debug by default
This is to fix kmtests on Test WHS. Seemingly something is broken with release builds of host tools, at least on GCC x86.
2025-01-26 23:52:45 +02:00
Timo Kreuzer
efdda7f7d9 [APISETS] Use ucrtbase as the lord intended instead of msvcrt 2025-01-26 18:08:55 +02:00
Timo Kreuzer
41ffe7f3c6 [UCRTBASE] Add ucrtbase.dll to build 2025-01-26 18:08:55 +02:00
Timo Kreuzer
9f15d9ee57 [UCRT:MATH] Implement _dtest, _fdtest 2025-01-26 18:08:55 +02:00
Timo Kreuzer
59c55e003e [UCRT:MATH] Implement _dclass, _fdclass 2025-01-26 18:08:55 +02:00
Timo Kreuzer
0133dba0c6 [CMAKE] Disable GCC builtin math functions 2025-01-26 18:08:55 +02:00
Timo Kreuzer
efe84ec41a [UCRT] Add "aliases" for some hacked clang builtins 2025-01-26 18:08:55 +02:00
Timo Kreuzer
d74ab36324 [UCRTSUPPORT] Add ucrtsupport library
This library is compiled from our old CRT sources to supplement missing UCRT code.
2025-01-26 18:08:55 +02:00
Timo Kreuzer
82ef7b5df1 [CMAKE] Do not implicitly link libgcc/stdc++compat to msvcrt
This allows ucrtbase and modules linked to it to be linked to those helper libraries.
2025-01-26 18:08:55 +02:00
Timo Kreuzer
b09b5584e0 [UCRT:MATH] Implement math error support functions 2025-01-26 18:08:55 +02:00
Timo Kreuzer
8aab548ecd [UCRT:VCRUNTIME] Implement __isa_available_init() 2025-01-26 18:08:55 +02:00
Timo Kreuzer
9c887efa0e [UCRT:VCRUNTIME] Add initializer sections
Use #pragma section only for MSVC (and Clang-cl), because Clang doesn't like allocating non-const variables in a read-only section, while GCC doesn't understand these pragmas and ignores them.
2025-01-26 18:08:55 +02:00
Timo Kreuzer
4198ceb83a [UCRT:VCRUNTIME] Implement vcruntime init stubs 2025-01-26 18:08:55 +02:00
Timo Kreuzer
4d80956566 [UCRT:VCRUNTIME] Implement __report_rangecheckfailure() 2025-01-26 18:08:55 +02:00
Timo Kreuzer
b0f3e623b7 [UCRT:VCRUNTIME] Implement __report_gsfailure() 2025-01-26 18:08:55 +02:00
Timo Kreuzer
5dcd1d1714 [UCRT:VCRUNTIME] Implement __security_init_cookie and __security_check_cookie 2025-01-26 18:08:55 +02:00
Timo Kreuzer
055875fbd8 [UCRT:FLOAT] Add _fltused 2025-01-26 18:08:55 +02:00
Timo Kreuzer
4462342076 [UCRT:STARTUP] Implement __scrt_uninitialize_crt stub 2025-01-26 18:08:55 +02:00
Timo Kreuzer
d21fd37650 [UCRT:LOCALE] Implement __acrt_WideCharToMultiByte 2025-01-26 18:08:55 +02:00
Timo Kreuzer
bd3c7654ec [UCRT:LOCALE] Implement __acrt_MultiByteToWideChar 2025-01-26 18:08:55 +02:00
Timo Kreuzer
4ea1841f31 [UCRT:LOCALE] Implement __acrt_GetStringTypeW 2025-01-26 18:08:55 +02:00
Katayama Hirofumi MZ
a58bf95914
[SHELL32][SHELL32_APITEST][SDK] SHIsBadInterfacePtr (#7664)
Implementing missing features...
JIRA issue: CORE-19278
- Move function definition from
  stubs.cpp to utils.cpp.
- Implement SHIsBadInterfacePtr
  function in utils.cpp.
- Add prototype to <undocshell.h>.
2025-01-26 19:24:24 +09:00