991 Commits
Author SHA1 Message Date
Timo Kreuzer 652403caf2 [RTL/x64][NTOS:KE/x64] Fix RtlInitializeContext
- In RtlInitializeContext only set the registers required, don't offset RSP
- In KiInitializeContextThread force control segments, which are not set by RtlInitializeContext
- Allocate the stack home space in KiInitializeContextThread
- Fix BaseInitializeContext to work with the changed stack adjustments
2026-08-01 11:05:47 +00:00
Ahmed Arif 4c3d15abe6 [CLANG][SDK] Add the llvm-compat runtime shim library (#9094)
llvm-mingw's static runtime (libc++, libmingwex, libc++abi, libunwind)
references symbols the NT 5.2 export surface does not provide. Add a
static library, linked into the Clang runtime chain below
DLL_EXPORT_VERSION 0x601, providing:

- C99 vsnprintf/snprintf on top of _vsnprintf/_vscprintf.
- __imp_* aliases binding dllimport references to the static CRT
  definitions instead of ucrtbase import thunks, which collide with
  them (lld: "<sym> was replaced").
- K32EnumProcessModules, forwarded to psapi's EnumProcessModules.
- The Win7 SRW lock and Vista condition variable surface, bound to the
  RTL implementation linked statically from rtl_vista. Modules get one
  self-contained, consistent synchronization implementation (ReactOS'
  lock layout is not Windows-compatible), no kernel32_vista.dll
  dependency, and stay runnable on any Windows version. Static SRW
  linking suggested by Timo Kreuzer.

Address review feedback on the llvm-compat shims:

sync_static.c now uses the proper SDK/NDK headers with WINAPI/NTAPI, imp_alias.h
moved to sdk/include/reactos and fixes the msvcrtex slot decorations too, and a
new InitOnceExecuteOnce shim lets us drop libkernel32_vista from the interface.
2026-07-29 11:27:59 +00:00
Amine Khaldi b6cb53569d [MSVCRTEX] Add recalloc. CORE-20596 2026-07-25 17:41:41 +01:00
Timo Kreuzer 91b613f158 [NDK][RTL] Fix signature of RtlInitializeContext 2026-07-25 16:15:37 +00:00
Carl J. Bialorucki d2b688a5ca [RTL] Add RtlIsNameInExpression to RTL 2026-07-22 19:53:20 -05:00
Timo Kreuzer ccc242ed6f [ARBITERS][NDIS] Try to fix the repository 2026-07-21 08:52:34 +00:00
Justin Miller 9ffc373bf6 [NTOS:IO][SDK:DRIVERS][FORMATTING] Start SDK:Arbiter from scratch (#9270)
Same idea as
094b7d9
and
Final step that doesn't require rtlrange improvements
2026-07-19 10:29:04 -07:00
Timo Kreuzer 379e6bb05f [RTL][NTDLL_VISTA] Implement RtlWow64GetProcessMachines 2026-07-19 10:33:38 +00:00
Timo Kreuzer ed51a5d1e2 [RTL][NTDLL] Implement processor related NT6+ functions
Implements RtlGetCurrentProcessorNumberEx, RtlIsProcessorFeaturePresent
2026-07-01 21:45:34 +00:00
Katayama Hirofumi MZ 0572d36024 [CRT][UCRT][MSVCRT] intrinsic functions: Follow-up of #9157 (#9226)
JIRA issue: CORE-20617
@learn-more found #9157 breaks the build as follows:
> error C2220: the following warning is treated as an error
> warning C4163: 'strncmp': not available as an intrinsic function
> warning C4163: 'strncpy': not available as an intrinsic function
_MSC_VER=1932 was not the version that the intrinsic functions
(strncmp, strncpy, wcsncmp, wcsncpy) added.
Using Compiler Explorer could detect the correct version:
_MSC_VER=1950.
2026-06-29 13:48:51 +09:00
Hermès Bélusca-Maïto 9de4cd4cf2 [EVTLIB] Fix EVTLTRACE(1) macro expansion in MSVC builds 2026-06-28 21:50:21 +02:00
Ahmed Arif 24e904e095 [EVTLIB] Do not preallocate event logs to MaxSize (#9071)
Keep the configured event log `MaxSize` as a capacity limit and track the
physical file size separately.

New logs now start at the Windows 64 KiB file-size granularity, instead of
growing immediately to the full configured maximum. They are then grown in
64 KiB chunks as records are written, while preserving the logical used area
in the header offsets and EOF record.
2026-06-28 20:14:56 +02:00
Timo Kreuzer d0b292cda6 [VCSTARTUP] Separate the library from vcruntime
Previously this was mixed with vcruntime, with some objects being shared. But this is messy. Instead use a separate library and link ucrtbase to this as well. This also matches more closely how native libraries are organized, where vcstartup is merged into the CRT import libraries, while vcruntime is merged into the static CRT libraries.
2026-06-21 12:30:32 +00:00
Timo Kreuzer 991830a0e8 [CRTHEAP] Add static library for crt heap functions
The purpose is to link to this library for wine modules that use only malloc/free/calloc/_recalloc, so they don't require to be linked to msvcrt.
2026-06-18 23:27:41 +00:00
Katayama Hirofumi MZ 300e1d525d [MSVCRT][CRT][UCRT] Disable intrinsic string functions on MSVC (#9157)
VS2022 version 17.2 and later (`_MSC_VER >= 1932`) added new intrinsic
functions (`strncmp`, `strncpy`, `wcsncmp`, and `wcsncpy`).
As we implement these ourselves, we have to avoid compiler error C2169.

This problem surfaced with a recent GitHub Actions update:
https://github.com/actions/runner-images/issues/14017

Use `#pragma function(...)` to disable new intrinsic functions.
2026-06-13 18:10:15 +03:00
Timo Kreuzer 4ba2db3c6e [KERNELBASE][PATHCCH] Unhack path.c 2026-06-09 17:40:07 +00:00
Timo Kreuzer c806131675 [RTL][NTDLL] Implement RtlInterlockedPushListSListEx
It is the same function as RtlInterlockedPushListSList, but with stdcall calling convention instead of fastcall.
On x86 this is a wrapper, on all other architectures it is simply a forwarder.
2026-06-02 18:58:04 +00:00
Timo Kreuzer 156d29ae80 [RTL] Fix a 64 bit MSVC warning 2026-05-29 18:21:33 +00:00
Jiahe Wang 5b2f79fe07 [RTL] Fix RtlVirtualUnwind for UWOP_*_FAR, UWOP_EPILOG and UWOP_SPARE_CODE 2026-05-29 13:37:18 +00:00
Timo Kreuzer d119feb2c7 [RTL][NTDLL] Implement RtlExpandEnvironmentStrings 2026-05-21 12:07:24 +00:00
Timo Kreuzer ef70bdf990 [RTL][NTDLL] Implement RtlQueryEnvironmentVariable
Make RtlQueryEnvironmentVariable_U a wrapper around RtlQueryEnvironmentVariable.
2026-05-21 12:07:24 +00:00
Timo Kreuzer 07537ae6a1 [RTL] Fix formatting of env.c
- Fix indentation
- Apply SAL2  annotations
2026-05-21 12:07:24 +00:00
Timo Kreuzer 9989b9ec1d [RTL] Improve RtlCreateProcessParameters
- Use the NT6 structure of _RTL_USER_PROCESS_PARAMETERS
- Fix string alignment to match Vista+
- Use ImageName as fallback for the CommandLine
- Use NULL-string as fallback fo RuntimeData
- Copy the environment instead of just copying the pointer
- Fixes a number of ntdll_winetest:env tests
2026-05-21 12:07:24 +00:00
Timo Kreuzer e9a67ff1bd [RTL] Fix an NTSTATUS to dos error translation
Fixes remaining test failure in ntdll_winetest error
2026-05-21 12:07:24 +00:00
Timo Kreuzer 33a19d05f4 [RTL] Fix atom table signature
Fixes a wine test.
2026-05-21 12:07:24 +00:00
Timo Kreuzer 40a0840834 [RTL] Fix ROUND_DOWN macro for 64 bit 2026-05-21 12:07:24 +00:00
Timo Kreuzer 15fa25299f [RTL][NTDLL][KERNEL32] Implement (Rtl)GetProductInfo 2026-05-19 14:40:01 +00:00
Ahmed Arif 0e64048812 [NDK][RTL] Fix packing leak and ARM64 heap layouts (#9020)
Stop `PS_JOB_TOKEN_FILTER`'s pack(1) scope from leaking into `EJOB`, which misaligns kernel fields on ARM64.

Use the Win64 heap entry layout on ARM64 and assert the heap metadata offsets verified against NT ARM64 symbols.

Keep heap alignment masks pointer-sized and size `STACK_TRACE_DATABASE` `ERESOURCE` padding for all Win64 targets.

CORE-18200
2026-05-18 23:48:41 +02:00
Ahmed ARIF 99ec6cbf07 [CMLIB] Fix hive validation loop for missing bins 2026-05-14 11:37:59 +02:00
Timo Kreuzer fa433604cf [COMSUPP] Define WIN32_LEAN_AND_MEAN
This is needed to prevent compile errors, when _INC_WINDOWS is defined.
So far WIN32_LEAN_AND_MEAN is wrongly defined by some idl generated headers.
In VS with native headers similar issues exist.
2026-05-11 18:21:34 +00:00
Timo Kreuzer 101f7652df [UUID] Don't use a precompiled header
We cannot use a precompiled header, because it would include headers before including initguid.h, preventing GUIDs to be defined.
2026-05-11 18:21:34 +00:00
Timo Kreuzer e7216ce67f [RTL/x64] Improve RtlCaptureContext/RtlRestoreContext
In user mode use fxsave64/fxrstor64, which handle legacy FP, MMX and XMM and MXCSR, in kernel mode save/restore XMM registers and MXCSR manually.
2026-05-08 19:04:31 +00:00
Timo Kreuzer da64ad34ef [CRT] Stop implementing non-conforming swprintf / vswprintf
- Don't compile the non-conformng swprintf (it is identical to _swprinf)
- Rename swprintf to _swprintf
- Forward non-conforming exports to the underscored versions in CRT dlls
2026-05-07 06:27:58 +00:00
Timo Kreuzer 1cf31524d5 [REACTOS] Stop using non-conforming swprintf / vswprintf
Use the underscored versions instead.
2026-05-07 06:27:58 +00:00
Timo Kreuzer f2c094caf3 [LIBWINE] Fix debug output synchronization
Previously the debug macros printed file/line, class and message separately, which resulted in possible intermingling with other debug messages, e.g. from rosautotest. This caused random parse errors for testman.
This is fixed by using a temp buffer for the prefix in rosfmt_default_dbg_vlog and then calling vDbgPrintExWithPrefix. Also make the __WINE_DPRINTF macro identical between GCC and MSVC.

See ROSTESTS-178
2026-05-06 08:34:12 +00:00
Timo Kreuzer 081a6366df [KSECDD][NTOS][RTL] Change license of some of my code to MIT 2026-04-23 12:39:01 +00:00
Eric Kohl 8dc9e50c09 [NETCFGX][REACTOS][UUID] Uncover one of many secrets of netcfgx.dll
The second parameter of the first function of the INetCfgComponentPrivate interface seems to be a REFIID.
Netsh calls this function with an undocumented GUID called ITcpipProperties (see https://github.com/nihilus/GUID-Finder/blob/master/GUID-Finder/Interfaces.txt).
2026-04-21 22:23:18 +02:00
Timo Kreuzer c7a4ea9d48 [CRT] Remove _mbstrlen 2026-04-21 13:13:33 +00:00
Doug Lyons 7ee14831a1 [CHKDSK][VFATLIB] Chkdsk improve code (#8857)
CORE-20546

Avoid second "lseek" if we do not have "use_read" and do not need to do read alignment.
2026-04-14 16:02:19 -05:00
Doug LyonsandHermès BÉLUSCA - MAÏTO 5a4823b5f7 [CHKDSK][VFATLIB] Fix assert when in read-only mode alternate method (#8842)
CORE-20539

Move an "assert" added by Pierre Schweitzer in [b0b7df](https://github.com/reactos/reactos/commit/b0bf7df).
Relocate his added "assert" inside an "if (FsCheckFlags & FSCHECK_IMMEDIATE_WRITE)".
This avoids some asserts when running in read-only mode.

Co-authored-by: Hermès BÉLUSCA - MAÏTO <[email protected]>
2026-04-14 15:51:23 -05:00
Eric Kohl b481fb5674 [PSDK][UUID] Add the INetCfgSysPrep, INetCfgComponentSysPrep and INetCfgComponentUpperEdge interfaces 2026-04-05 18:23:19 +02:00
Doug LyonsandHermès BÉLUSCA - MAÏTO 2a2aaf98d4 [CHKDSK][VFATLIB] Chkdsk should not write unless using "-F" switch. (#8826)
CORE-20539

Before calling "fs_write" test if we are in a read-write mode by checking "rw".
I intend to re-evaluate this to try and reduce the difference to dosfschk in the future.

Co-authored-by: Hermès BÉLUSCA - MAÏTO <[email protected]>
2026-04-04 23:01:35 -05:00
Doug Lyons 57664f1c1e [CHKDSK][VFATLIB] Chkdsk, fix writes to wrong disk offsets (#8840)
CORE-20546

When an alignment is needed and a new read is required,
 make sure we seek back to the read position for our write.
2026-04-04 18:30:52 -05:00
Doug Lyons 22ce5b1bc8 [CHKDSK][VFATLIB] Make ReactOS chkdsk output match MS for last 3 lines (#8839)
Added line for "bytes per cluster".
Improved formatting of output to align text for last 4 lines.
2026-04-03 12:32:14 -05:00
Doug LyonsandCarl J. Bialorucki c2f56643b6 [VFATLIB][FMIFS][CHKDSK] Chkdsk fixes and improvements (#8810)
CORE-18432

Co-authored-by: Carl J. Bialorucki <[email protected]>
2026-03-31 13:13:31 -05:00
Justin Miller 752f99ee3d [ANSI-SYNC-HACKS][NFSD] Small library to sync ANSI code (#8800)
The point of kernel32_vista was to provide a dll that can be used for winesyncs to still have NT6 APIs.
We're now switching to an architecture where we'll have kernelbase OR a kernel32_win7 depending on NT target compile
but this means that for an ANSI exe such as this, we need an alternative solution.
Thankfully it's pretty much only for this but just in case i made it a library.
2026-03-29 02:48:46 +00:00
Mikhail Tyukin 22ca1e736a [KERNEL32_VISTA][NTDLL_VISTA] add required functions for winhttp 2026-03-28 11:35:17 -07:00
Hermès Bélusca-Maïto 2d07d8a7cd [CONUTILS] Improve library build interface; avoid using winuser.h; fix x64 build warnings
conutils\pager.c(658):
  warning C4267: '=': conversion from 'size_t' to 'DWORD', possible loss of data
conutils\outstream.c(179),(263):
  warning C4267: '=': conversion from 'size_t' to 'DWORD', possible loss of data
conutils\outstream.c(433):
  warning C4267: '=': conversion from 'size_t' to 'INT', possible loss of data
2026-03-28 14:11:23 +01:00
Hermès Bélusca-Maïto 3ac86990e3 [SDK:DELAYIMP] Simplify code following commit 5840b212a8 (#7784)
CORE-10935

Addendum to commit 5840b212a8, as well as to
commits 91d86a9a91 (r71190) and e5904542d6 (PR #377).
2026-03-22 17:56:48 +01:00
Eric Kohl c364fe7fb1 [SDK][UUID] Add notification object interfaces
Add INetCfgComponentNotifyBinding, INetCfgComponentNotifyGlobal and INetCfgComponentSetup.
2026-03-22 15:04:48 +01:00