Commit Graph
88411 Commits
Author SHA1 Message Date
Timo Kreuzer cf6dbef20a [CMAKE] gcc.cmake: Move all warning options into the same place 2026-03-18 17:29:12 +02:00
Timo Kreuzer 1453bd8946 [CMAKE] Remove Clang specific option from GCC command line
-Wno-unknown-warning-option is Clang specific and causes extra warnings on later GCC versions, when at least one warning is shown.
2026-03-18 17:29:12 +02:00
Timo Kreuzer deb89436bc [STDC++COMPAT] Add rand_s for GCC 13 and pre-NT6 builds
GCC 13 STL requires this.
2026-03-18 17:29:12 +02:00
Ahmed Arif ff6bd79221 [PSEH] Fix x64 ABI compliance and register clobbering in exception filters (#8700)
pseh2_64 relied on inline-asm clobbers across a C/asm funclet jump, which is not a reliable ABI boundary.
On AMD64 gcc path, this can corrupt non-volatile state during exception filtering/unwind.

This change makes the trampoline ABI-safe by explicitly preserving and restoring non-volatile registers and keeping unwind metadata/prologue consistent.

Changes:
- Save/restore rbx, rdi, rsi, r12-r15 in `__seh2_global_filter_func`.
- Adjust stack allocation/unwind annotation to match the new prologue/epilogue.
- Keep filter return in eax and jump back through `__seh2_global_filter_func_exit`.

Note: This is exception-only path: extra stack usage is acceptable for correctness.

How to test: Build and run ReactOS with gcc 13/15; you should no longer see stack exhaustion.
2026-03-17 22:42:37 +01:00
Václav Zouzalík 0f021bf73a [PING] Update Czech (cs-CZ) translation (#8729) 2026-03-17 17:32:12 +01:00
Daniel Victor b0bd092c0d [FREELDR] Make ASSERT bugcheck on failure (#8730)
Show a bugcheck with message showing where and why the ASSERT failed.
2026-03-17 16:24:14 +01:00
Stefan Schramm b3ff1ff98f [RAPPS] Fix loading of default settings (#8715)
Fixes a bug that causes the duplication of items in the general settings list when clicking the "Default" button.
2026-03-17 10:13:49 -05:00
Hermès Bélusca-Maïto f63df20bd4 [FREELDR:NTLDR] Fix GCC build
Addendum to commit ea93b886df.
2026-03-16 20:25:44 +01:00
Hermès Bélusca-Maïto ea93b886df [FREELDR:NTLDR] Compile EMS support on all platforms
EMS support isn't platform-specific, so we can compile it everywhere
(as this is already done for the kernel and the SAC driver).

The only platform-specific code currently existing is the retrieval of
the system GUID, which is done on BIOS-based PC by reading the SMBIOS
table in the low-MB ROM region, but should be done differently on other
platforms. Add a compile-time warning for this.
2026-03-16 20:04:45 +01:00
Václav Zouzalík 9a652291cb [HOSTNAME] Add Slovak (sk-SK) translation (#8740) 2026-03-16 18:49:58 +01:00
Hermès Bélusca-Maïto 9833d3d8c8 [FREELDR][NTOS:INBV] Simplify headless-support initialization code
Also address few observations made by Serge Gautherie in PR #7885.
2026-03-16 18:42:57 +01:00
Hermès Bélusca-Maïto 50cb29ad4a [FREELDR][NTOS:INBV] SAL2-annotate headless-support functions 2026-03-16 16:49:53 +01:00
Hermès Bélusca-Maïto 3012af5e30 [CPORTLIB][FREELDR][KD][NTOS] Move duplicated UART settings into a common header 2026-03-16 16:18:43 +01:00
Dmitry Borisov 73413d4ca3 [OBJ2BIN] Use section flags instead of a hardcoded ".text" name (#5317)
A 32-bit ASM file can turn into an empty binary file in certain cases (compiled with MSVC).
MASM/ML produces a ".text$mn" section instead of the ".text", which makes obj2bin generate an empty binary file.

The problem didn't occur with our 16-bit artifacts (16-bit stubs, bootsectors...), because their object files all have similar sections pattern: the ".text" section and empty ".text$mn" section, which didn't matter since it is empty.
On the contrary, the .text$mn section(s) aren't empty for 32-bit stubs.
2026-03-16 13:19:54 +01:00
Ahmed Arif 057d978fcb [USER32] button.c Fix extra-byte layout on x64 (#8733)
One visible case is the setup LiveCD error dialog, where the message box button can appear with a wrong bold/garbled look instead of the normal default-pushbutton appearance.

## Root cause

`win32ss/user/user32/controls/button.c` stores button state with  `GetWindowLongPtrW` / `SetWindowLongPtrW`, but the control extra-byte layout was still defined as if the first slot were only `sizeof(LONG)` 

On 64-bit builds, that causes the stored state to overlap the cached font, image, and UI-state fields.
2026-03-16 13:01:44 +01:00
Erdem Ersoy 3bbdfb932a [SYSSETUP] Fix DST setting checkbox (#8622)
- [SYSSETUP] Fix DST setting checkbox

Fix DST setting checkbox. The checkbox should be disabled and unchecked on timezones DST not applied, the checkbox should be enabled and checked on timezones DST applied. JIRA issue: CORE-20406
2026-03-15 18:36:47 -05:00
Dmitry BorisovandHermès Bélusca-Maïto aabd163d73 [CPORTLIB:PC98] Refactor serial support code (#8558)
CORE-17977

- Fix a bug when subsequent port detection attempts fail because of
  broken FIFO management. If FIFO logic is enabled the hardware will
  not decode the legacy 0x30 and 0x32 I/O ports.
  Therefore care should be taken when accessing these ports.

- Fix hang on boot when a serial device was not connected to the COM1 port.
  Unlike 16550, a call to `CpDoesPortExist()` for the 8251 will succeed
  even when if the user has not plug the serial port into PC-98 machine.
  (I do not know how to put the 8251 into loopback mode.)
  Fix this by checking for CTS prior to the LSR loop.

- Fix hang on boot when the chosen baud rate becomes too large due to
  `DEFAULT_DEBUG_BAUD_RATE` being set to 115200.

- Some NP21/W workarounds were being incorrectly applied,
  fix them and consolidate them into one check.

- Reuse exsisting code from the NS16550 driver to avoid code duplication.

- Rename HW definitions for better naming.

Co-authored-by: Hermès Bélusca-Maïto <[email protected]>
2026-03-15 22:56:14 +01:00
Hermès Bélusca-Maïto dabc74d468 [CPORTLIB] Split cport.c into the NS16550-specific routines and the rest
Preparing the way for a future library refactoring, along the way of the
one in Windows, which has been updated in Windows 10 and is now documented:
https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/uart/
2026-03-15 22:48:25 +01:00
Hermès Bélusca-Maïto a204d174f0 [CPORTLIB] Prepare splitting cport.c into the NS16550-specific routines and the rest 2026-03-15 22:23:28 +01:00
Eric Kohl 07d30c679e [TCPIP] Read the interface metric from the registry or use the automatic metric feature
- Read the interface metric from the registry.
- Assign an automatic metric to an interface if a registry value is not available.
- Determine the automatic metric from the link speed. The metric for the loopback interface is always 1.
2026-03-14 21:10:56 +01:00
Eric Kohl 606d22d6c0 [TCPIP] Map 127.x.x.x addresses to the loopback address
- Identify 127.x.x.x addresses as on-link addresses.
- Modify the neighbor cache to map all 127.x.x.x addresses to the loopback address (127.0.0.1).
- Create a single entry for all 127.x.x.x addresses instead of one entry per address. This entry belongs to the loopback address.

CORE-7484
2026-03-14 16:01:31 +01:00
Václav Zouzalík 616ffdda0f [DESK] Update Czech (cs-CZ) translation (#7472)
Updates Czech translation of Display Control Panel.
2026-03-14 13:28:24 +01:00
Ivan Georgiev a70f59b0dd [DRIVERS] Replace obsolete RtlConvert*ToLargeInteger calls with inline equivalents (#8721)
RtlConvertUlongToLargeInteger and RtlConvertLongToLargeInteger are
obsolete NT routines that assign a 32-bit integer to LARGE_INTEGER.QuadPart.
Replace all driver/DLL usages with inline .QuadPart assignments or
standard C/C++ casts. This removes unnecessary function calls.

CORE-19438
2026-03-14 13:29:02 +03:00
Carl J. Bialorucki f0475a03cb [USER32_WINETEST] Sync user32 winetest to wine-10.0
- [USER32_WINETEST] Sync to wine-10.0.
- [USER32_WINETEST] Define out some function definitions we can't build yet.
- [USER32_WINETEST] Skip parts of test that crash on ReactOS or Windows
- [USER32_WINETEST] Pass behaviors from WS03-Win10 1607
2026-03-13 18:32:47 -05:00
Carl J. Bialorucki 6efe017a3a [INCLUDE/PSDK][INCLUDE/WINE] Header changes needed for user32 winetest sync
- psdk/mmsystem.h: Add a #ifndef guard around SC_SCREENSAVE, MS public headers have the same guard
- psdk/ole2.h: Add guards around CreateDataAdviseHolder that are similar to the guards used in MS public headers
- psdk/winuser.h: Add missing defines, use DWORD and LONG casts to fix test failures on x64. These same casts exist in MS public headers
- wine/test.h: Add defines for winetest_platform_is_wine, flaky, and flaky_wine. The flaky definitions depend on flaky_if, which is a stub that does nothing.
2026-03-13 18:32:47 -05:00
Mikhail Tyukin c47733ab1c [WINTRUST] Sync to wine-10.0 (#8388)
- Sync wintrust and tests to wine-10.0
2026-03-13 18:30:43 -05:00
Mikhail Tyukin 374207770d [FECLIENT] Import from Wine-10.0 (#8301)
* [LIBWINE] add dll_canunload library

* [FECLIENT] Import from Wine-10.0
2026-03-13 16:05:55 -07:00
Katayama Hirofumi MZ e6328fbf1e [NTGDI][FREETYPE][SDK] Rewrite NtGdiGetCharABCWidthsW (#8704)
Refactor and improve readability.
JIRA issue: CORE-20505
- Add GreGetCharABCWidthsW helper function.
- Rewrite NtGdiGetCharABCWidthsW by using
  GreGetCharABCWidthsW.
2026-03-13 18:24:26 +09:00
Eric Kohl 4b75ec5508 [NETCFGX] Fix alternate configuration TCP/IP dialog
Gateway and name server ip address controls must only be enabled and initialized when a non-APIPA configuration has been selected.
2026-03-12 11:27:24 +01:00
Eric Kohl 0df3463af0 [NETCFGX] Fix radio button selection on the basic property page
Use CheckRadioButton instead of CheckDlgButton to set the radio button state.
2026-03-11 16:11:48 +01:00
Nguyen Duc Thinh 35d0dfeef7 [PROCESSR][INF] cpu.inf: Add Hardware IDs for modern Intel CPUs (#8716)
Add Hardware IDs for Intel 8th-14th Gen and Core Ultra.
2026-03-09 14:10:58 +01:00
Dmitry Borisov 1cec553ed1 [FREELDR:PC98] Refactor PC-98 disk access routines (#8546)
- Fix incorrect IDE controller ownership leading to strange and inconsistent behavior during boot.
- Fix a mismatch between the type and flags of the drive.
- Remove obsolete definitions.
- Use SAL2 annotations.

CORE-17977
2026-03-09 14:04:35 +01:00
Eric Kohl 5a147d292d [NETCFGX] Fix: Default gateway data "forgotten" when toggling use of DHCP
CORE-19368
2026-03-09 10:47:16 +01:00
Eric Kohl 16de117a01 [DHCPCSVC] Add required winnls.h 2026-03-09 00:03:04 +01:00
Eric Kohl 1f8f73d3b2 [DHCPCSVC] DhcpHandlePnPEvent: Set the binary class id
Also add a bit of documentation
2026-03-08 23:04:22 +01:00
Hermès Bélusca-Maïto fb22bd74c6 [FREELDR:NTLDR] Pass the LoadOrderListHead list to LoadModule() instead of the full version-specific LoaderBlock 2026-03-08 19:52:04 +01:00
Hermès Bélusca-Maïto 4235244ac9 [FREELDR] Move the NTLDR-specific files from the generic CMakeLists file to rosload/uefi.cmake
The UEFI build doesn't use rosload.exe yet, thus some duplication still
exists. This will be cleaned up in the future.
2026-03-08 19:52:03 +01:00
Ahmed Arif dc9ee34478 [FREELDR:UEFI] Fix broken boot menu countdown (#8714)
The UEFI boot menu countdown was broken for two reasons:

- StallExecutionProcessor and UefiHwIdle were empty stubs, so the countdown
  had no actual delay and no proper idle, it ran instantly without waiting
  KbHit used ReadKeyStroke to poll for input, which consumed the keystroke
  before GetCh could read it.

This fixes both: StallExecutionProcessor and UefiHwIdle now have real
implementations using BootServices->Stall and a timer event.

KbHit is changed to use CheckEvent(WaitForKey) which polls availability
without consuming the key.

CORE-11954
2026-03-08 21:40:15 +03:00
Adam Słaboń 8a2864dd11 [SDK] Update HAL private dispatch table definitions to Windows 10 November 2015 Update (#8235)
Mostly based on the information on Geoff Chappell's website, Vergilius Project and WDK 10.0.10586.0
2026-03-08 19:04:17 +01:00
Whindmar Saksit f9b3aad55e [RAPPS] Don't display duplicate uninstall entries when WoW64 keys are unsupported (#8253)
This only happens on 64-bit because 32-bit was being conservative.
2026-03-08 19:00:39 +01:00
Ratin Gao 36ffee8ea3 [WIN32SS:NTUSER] Implement SharedUserData->LastSystemRITEventTickCount (#8537)
This field was introduced in NT5.1, records the tick count of the last user input
(system-wide), updated at most once per minute (or once per second since NT6.0).

Unlike `GetLastInputInfo` which is designed for providing session-specific
user input information, `SharedUserData->LastSystemRITEventTickCount` provides
system-wide time, used by:
- [Task Schedule (TASK_EVENT_TRIGGER_ON_IDLE)](https://learn.microsoft.com/en-us/windows/win32/taskschd/i)
- [Inactivity Monitoring](https://learn.microsoft.com/en-us/windows/win32/devnotes/inactivity-monitoring)
- Maybe some places I don't know...

See also:
- [KUSER_SHARED_DATA - Geoff Chappell](https://www.geoffchappell.com/studies/windows/km/ntoskrnl/inc/api/ntexapi_x/kuser_shared_data/index.htm)
- [TASK_TRIGGER_TYPE enumeration - Microsoft Learn](https://learn.microsoft.com/en-us/windows/win32/api/mstask/ne-mstask-task_trigger_type)
- [Task Scheduler: idle conditions](https://learn.microsoft.com/en-us/windows/win32/taskschd/i)
- [GetLastInputInfo function - Microsoft Learn](https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getlastinputinfo)
- [Inactivity Monitoring](https://learn.microsoft.com/en-us/windows/win32/devnotes/inactivity-monitoring)

## Proposed changes

Before this PR, `SharedUserData->LastSystemRITEventTickCount` is never used
and always 0, `gpsi->dwLastSystemRITEventTickCountUpdate` is never used too.
After this PR, `SharedUserData->LastSystemRITEventTickCount` updates correctly
by using `gpsi->dwLastSystemRITEventTickCountUpdate` to record previous update
time, the behavior is the same as on Windows.
2026-03-08 18:58:37 +01:00
Hermès Bélusca-Maïto d61f7e5cd0 [NTOS:PS] Implement Vista+ NtQueryInformationThread(ThreadHideFromDebugger) support (#8486)
https://ntquery.wordpress.com/2014/03/29/anti-debug-ntsetinformationthread/
indicates that starting Vista, `NtQueryInformationThread()` supports
querying the `ThreadHideFromDebugger` information.

This was noticed by contributor Mikhail Tyukin, while testing anti-cheat
protected NT6+ games written with Unity.

See also
https://ntdoc.m417z.com/threadinfoclass#threadhidefromdebugger-17
for the buffers descriptions.
2026-03-08 18:51:42 +01:00
Hermès Bélusca-Maïto 509d8afdf5 [NTDLL_APITEST] Add some tests for NtQueryInformationThread(ThreadHideFromDebugger) (#8486) 2026-03-08 18:51:41 +01:00
Hermès Bélusca-Maïto f4d0d53445 [NTDLL_APITEST] Adjust ThreadHideFromDebugger support for NtQueryInformationThread() probing tests (#8486) 2026-03-08 18:51:40 +01:00
Hermès Bélusca-Maïto 26c126153f [BOOTDATA] Enable Alt Hex-numpad support by default in the LiveCD (#8680) 2026-03-08 18:35:43 +01:00
Hermès Bélusca-Maïto e22f447467 [WIN32SS:NTUSER] Implement EnableHexNumpad support (#8680)
Supplements commit cac013abef (PR #8104).
CORE-5680

The `EnableHexNumpad` string value is specified in the
`HKEY_CURRENT_USER\Control Panel\Input Method` registry key.

When enabled, the user can enter codepoints in hexadecimal form, using:
- `Alt .xxx` ('dot' prefix), for current ANSI codepage (ACP) codepoints;
- `Alt +xxx` ('plus' prefix), for Unicode codepoints.

These two modes complement the known `Alt xxx` and `Alt 0xxx` decimal forms
for entering codepoints in the current OEM or ACP codepage, respectively.
2026-03-08 18:35:37 +01:00
Hermès Bélusca-Maïto 0086992fe7 [NTOS:IO] IoFreeWorkItem(): Check the tag when freeing the previously pool-allocated item (#8651) 2026-03-08 18:30:32 +01:00
Hermès Bélusca-Maïto 9bf854455c [SDK:XDK] extypes.h: Update WORK_QUEUE_TYPE with Win8+ values (#8651) 2026-03-08 18:30:24 +01:00
Hermès Bélusca-Maïto 94a840c9b5 [SDK:NDK] cmtypes.h: Add few missing CM_RESOURCE_* defines, present in the XDK (#8651) 2026-03-08 18:30:14 +01:00
Hermès Bélusca-Maïto ffdae843b4 [BOOTCDREGTEST] Install ReactOS in C:\Windows on the testbots to cope with unreliable Winetests (#8693)
ROSTESTS-416

More and more winetests we import from Wine hardcode the `C:\Windows`
path and thus, are brittle (read: unreliable) whenever they are run
on any other configuration where Windows (or ReactOS) is **NOT**
installed in this path.

Dedicated to Carl Bialorucki ;)
2026-03-08 18:20:11 +01:00