89482 Commits

Author SHA1 Message Date
Oleg Dubinskiy
e0e6593866 [NTUSER] Fix improper desktop wallpaper painting (#8106)
Fix desktop wallpaper painting behaviour for "Stretch", "Fit" and "Fill" displaying modes:
- Create a new compatible bitmap to make user-defined wallpaper fit to the screen size.
- Stretch user-defined wallpaper to this bitmap each time when wallpaper is set in Display Properties, to match the required screen coordinates. Don't do it on each desktop redrawing.
- Use the system memory DC for stretching the wallpaper image and store it there first, instead of blit it to the destination (output) DC directly.
- Use the same system memory DC for "Tile" and "Center" wallpaper modes too, to avoid unneeded allocating and freeing a new memory DC internally. Get rid from internally managed DC and use a global system memory DC to manage all wallpaper modes instead.
- Move wallpaper coordinates calculation code into a separate function, because it's now used more than one time, both when blit to system memory DC on wallpaper changing and when actually repainting desktop.
- Move wallpaper repainting code from IntPaintDesktop() into a separate function too, and call it from there.
- Pass the previously calculated input and output coordinates (left, top, width and height) for an each displaying mode appropriately: "Tile", "Center", "Stretch", "Fit" and "Fill".
- Then, simply blit a result to the output DC on each desktop repaint, to view the wallpaper contents on the desktop.
"Tile" and "Center" modes remain unaffected, since they already have no any painting issues.
CORE-13891, CORE-15820, CORE-15826
2026-09-08 12:23:49 +02:00
Doug Lyons
dc6be46b93 [CHKDSK][VFATLIB] Enable chkdsk /V to output filenames (#9501)
* Add FSCHECK_LIST_FILES to FsCheckFlags in vfatlib.c
* Remove some unneeded ifdef's for REACTOS
* Use SAL2 annotations in main functions

CORE-20771

Co-authored-by: Oleg Dubinskiy <oleg.dubinskij30@gmail.com>
Co-authored-by: Serge Gautherie <32623169+SergeGautherie@users.noreply.github.com>
2026-09-07 18:00:17 -05:00
Eric Kohl
3127ca03fb [MMC_NEW] Move the snapin root pointer and implement register and unregister for views
- MMC maintains one snapin tree per instance. Each console is just a view of
  this tree. Therefore I moved the snapin root pointer from the console window
  to the main window.
- Implement the register and unregister functions for the view and a common
  UpdateViews function that call UpdateView for each registered view.
2026-09-07 23:17:11 +02:00
Stanislav Motylkov
bf7cd909dd [GITHUB] Add gcc-8.4.0.tar.xz fallback workaround for RosBE build script
ftpmirror.gnu.org is returning Gateway Timeout / Bad Gateway errors lately.
2026-09-07 21:30:45 +03:00
Hermès Bélusca-Maïto
5a719956e3 [CMLIB] Define PAGED_CODE() to a no-op when compiling the library for the bootloader 2026-09-07 18:21:04 +02:00
Mohammad Amin Mollazadeh
e1d8ccbdd5 [USER32] Fix LookupIconIdFromDirectoryEx crash with invalid pointer (#9263)
This problem is similar to 60851914a8 (#5106) / CORE-15879.
Add SEH exception handler to prevent the crash, matching Windows behavior.

CORE-19544
2026-09-07 19:08:33 +03:00
Mohammad Amin Mollazadeh
39c9f57ab2 [USER32_APITEST] Add LookupIconIdFromDirectoryEx invalid input test (#9263)
Calling it with invalid pointer crashes the caller, while on Windows
it returns 0 without error or crash.

CORE-19544
2026-09-07 19:08:31 +03:00
Stanislav Motylkov
189eae49a8 [USER32] Revert previous commit that was merged incorrectly
This reverts commit b35226eaa4.
2026-09-07 19:06:12 +03:00
Mohammad Amin Mollazadeh
b35226eaa4 [USER32] Fix crash on calling LookupIconIdFromDirectoryEx with invalid directory (#9263)
* [USER32_APITEST] Add LookupIconIdFromDirectoryEx invalid input test (#9263)

Calling it with invalid pointer crashes the caller, while on Windows
it returns 0 without error or crash.

CORE-19544, CORE-15879

* [USER32] Fix LookupIconIdFromDirectoryEx crash with invalid pointer (#9263)

This problem is similar to 60851914a8 (#5106) / CORE-15879.
Add SEH exception handler to prevent the crash, matching Windows behavior.

CORE-19544, CORE-15879
2026-09-07 12:02:38 -04:00
Gleb Surikov
50c06cf354 [NTOS:EX] Clarify push lock waiter list maintenance
Explain that contended acquisition inserts wait blocks using the forward link only, while ExpOptimizePushLockList completes the reverse links and caches the tail pointer in the new list head.

Clarify that Waking bit serializes both waiter list maintenance and wakeup. The thread responsible for the list either clears Waking after completing the links or enters the wakeup if the lock has been released.
2026-09-07 10:16:48 -04:00
Gleb Surikov
01ec4e184f [NTOS:EX] Document push lock list optimization state
Rename the ExpOptimizePushLockList argument from OldValue to Initial
Value to reflect that it's the lock avlue installed by the caller when
setting Waking.

Document and assert the required Locked,Waiting, and Waking state, and
clarify that the routine either completes the waiter list links and
clears Waking or enters the wakeup if the lock has been released.
2026-09-07 10:16:48 -04:00
Gleb Surikov
4acacdb7e9 [NTOS:EX] Fix shared push lock list optimization 2026-09-07 10:16:48 -04:00
Eric Kohl
3812a9525c [MMC_NEW] Implement the Snapin Cache and the About dialog
Add the missing files!
2026-09-06 20:19:05 +02:00
Eric Kohl
f6117acaab [MMC_NEW] Implement the Snapin Cache and the About dialog
The Snapin Cache is used to store ISnapinAbout Information (Name, Description,
Vendor, Version, Bitmaps and Icon) for a Snapin. It is currently used by the
Add/Remove dialog.
2026-09-06 20:17:06 +02:00
Doug Lyons
01ce250bdc [MSHTML] Fix random test failure of htmldoc (#9490)
Import some wine code into read_stream_data function in navigate.c.
Import function map_nsresult into nsembed.c.
Define function map_nsreslts in mshtml_private.h.

CORE-14606

* [MSHTML] Import part of Wine commit:
78a05ca6dd
authored Mar 26, 2019 by Jacek Caban
mshtml: Introduce map_nsresult and use it in return_nsstr.

* [MSHTML] Import part of Wine commit:
9944c4bd68
authored Mar 26, 2019 by Jacek Caban
mshtml: Propagate nsIDOMCSSStyleDeclaration errors.

* [MSHTML] Import complete Wine commit:
c2d55cd24e
authored Nov 7, 2022 by Gabriel Ivancescu  and included in Wine 7.21 Released 11-Nov-2022
mshtml: Return E_ABORT if wine-gecko's OnDataAvailable aborts the binding.
2026-09-06 11:55:34 -05:00
Whindmar Saksit
2b0c747398 [SDK] Don't use empty string defaultvalue for BSTR arguments (#9494)
The MS SDK changed to NULL somewhere between 10.0.14393 and 10.0.16299.
2026-09-06 15:13:50 +02:00
George Bișoc
c5318556b3 [NDK] Fix an annotation in NtGetDevicePowerState
NtGetDevicePowerState returns the power state of a device on its 2nd parameter, yet the annotation treats it like an input one. Fix that.

CORE-18969
2026-09-06 14:40:51 +02:00
Eric Kohl
9d989a975c [MMC_NEW] Add Mark Jansen's MMC Application skeleton (PR #1967)
This PR is a great start for a new C++ based MMC.
I have some improvements in my source tree which I want to add bit by bit.

My modifications to Marks PR are:
- Renamed ISnapInAbout to ISnapinAbout for compatibility reasons.
- Updated CMakeLists.txt
- Removed the patch to shellutils.h because it seems to already have been applied.
2026-09-06 12:41:11 +02:00
Hervé Poussineau
3c9c9a9a34 [USER32] Implement GetRawInputBuffer
CORE-9818
2026-09-05 23:14:40 +02:00
Hervé Poussineau
2507be6f0e [USER32] Implement GetRawInputDeviceInfoA
CORE-9818
2026-09-05 23:14:40 +02:00
Hervé Poussineau
8dc89b6850 [USER32] Implement some raw input functions
These are easy, as they are only forwarders to corresponding NtUser function.

CORE-9818
2026-09-05 23:14:40 +02:00
George Bișoc
c26c2e3342 [MC] Add DRIVER_POWER_STATE_FAILURE bugcheck code
This is used by the Power Manager kernel module to put down the system due to power failures of a driver.

CORE-18969
2026-09-05 20:09:09 +02:00
Hermès Bélusca-Maïto
7748fb7f46 [HALX86] pcibus.c/bus.h: Const'ify and/or static'ify global data where applicable (#9487) 2026-09-05 19:52:06 +02:00
Hermès Bélusca-Maïto
c05a7ac119 [HALX86] bussupp.c: Use specific defines instead of hardcoded values (#9486)
- `HalpDebugPciDumpBus()`: Use the `PCI_CONFIGURATION_TYPE()` macro.
- `HalpInitializePciBus()`: Use `PCI_MAX_DEVICES` and `PCI_MAX_FUNCTION`.

See also PR #7416.
2026-09-05 19:19:52 +02:00
Hermès Bélusca-Maïto
b82afa1129 [NTOS:IO][ARBITER] Fix newline format
Addendum to commit 1500a35309 (PR #9482).
2026-09-05 19:18:03 +02:00
Hermès Bélusca-Maïto
c7a64abb53 [FREELDR] Minor hwpci.c reformatting; SAL2-annotate *FindPciBios() (#9485)
See also PR #7416.
2026-09-05 19:00:39 +02:00
Dmitry Rantovov
b91b13899f [NETSH] Compare the stack entry against the tail, not the head twice (#9473)
RemoveContextFromStack tests pStackEntry == pContextStackHead twice
in the same condition, so the first branch takes every entry that happens
to be the head, not only the one that is head and tail at once.
The branch below it, the one that relinks pStackEntry->pNext->pPrev and
moves the head forward, is then unreachable. Removing the head of a stack
that has more than one entry sets both head and tail to NULL and frees
only that entry, so the remaining entries are lost and leaked.

The body of the first branch is what says which test was meant:
it clears both ends, and that is only correct for the single element case.

Compare the second test against pContextStackTail.

I found this by reading, not by hitting it in a running netsh session,
so I have not confirmed the leak on a live context stack.

Reviewed-by: Whindmar Saksit <whindsaks@proton.me>
Reviewed-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Reviewed-by: Eric Kohl <eric.kohl@reactos.org>
Signed-off-by: Dmitry Rantovov <rantovov5@gmail.com>
2026-09-05 19:56:13 +03:00
Justin Miller
1500a35309 [NTOS:IO][ARBITER][SDK] Finish the root arbiters and fix some compatibility divergences (#9482)
The root memory arbiter is the most important out of all of these. The main intention here is that there's some special ranges PCI can't ever look at it even if the firmware tries to claim it can.
This is missing a few gaps still! for example in another PR I'm going to add in the ACPI hal to reserve the ECAM space and once that is published itll also be added to the root mem arbiter.

* [ARBITER] Resolve ARBITER_RANGE_SHARED_DRIVER, fixes compat with Vista+
* [NTOS:IO] Finish the initial impl of the Root Arbiters
* [NTOS:IO][SDK] Fix RtlFindRange truncation, use the Vista+ Sig
2026-09-05 01:31:04 +00:00
Whindmar Saksit
8d44ccdd5f [EXPLORER][SHELL32] Fix crash when tray icon with active balloon is removed (#9332)
CORE-20685
2026-09-04 16:50:05 +02:00
Whindmar Saksit
8e4de4a184 [MMC] Mmc .msc file launcher (#9468)
CORE-16431
2026-09-04 16:47:13 +02:00
Dmitry Borisov
e7518a9c79 [PCI] Fix data type checking for the bus interface (#8939)
Fixes MS storport.sys not being able to work with the qla1xxx.sys driver.
Storport miniport drivers use the PCIConfiguration value
to access the PCI configuration space
(see StorPortGetBusData and StorPortSetBusDataByOffset).

CORE-13866 CORE-20545 CORE-20628
2026-09-04 13:40:16 +03:00
Doug Lyons
ba35137b01 [WS2_32_APITEST] Attempt to fix receive test timeouts (#9483)
Add Sleep to create delay to allow the send command to process before executing the receive.
This is similar to what we see used in the Wine regression tests.

ROSTESTS-421
2026-09-03 20:20:27 -05:00
Hermès Bélusca-Maïto
4b6983a6be [SDK] d3dkmddi.h: Fix newline format
Addendum to commit b3729be87e (PR #9403).
2026-09-03 16:34:43 +02:00
Hermès Bélusca-Maïto
3e86817970 [PCIX] Fix newline format
Addendum to commit b82fc1e2b3 (PR #9479).
2026-09-03 16:34:17 +02:00
Justin Miller
b82fc1e2b3 [PCIX] Preperation for initial PCIX Arbiters to be enabled (#9479)
* [PCIX] Use the bridge's parent bus in the IRQ translator constructor

* [PCIX] Stop the limit descriptor scan from running off the array

* [PCIX] Build a real resource requirements list for each function

* [PCIX] Skip the right descriptors when draining a device-private group

* [PCIX] Record assigned resources against the BAR they satisfy

* [PCIX] Program device BARs with their arbitrated addresses

---------

Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
2026-09-03 00:17:15 -07:00
Justin Miller
b3729be87e [SDK] Create dispmprt.h and expand d3dkmddi.h (#9403)
---------

Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
2026-09-03 03:35:33 +00:00
Hermès Bélusca-Maïto
437759f505 [SMSS][CSRSRV] Improve debug tracing on subsystem session-related callbacks (#9477)
Note: The debug-logged API names corresponding to the callbacks come
from the SMSS and CSRSRV Windows checked builds, and cross-checked
with the System Informer phnt headers[^1][^2].

[^1]: https://ntdoc.m417z.com/smapinumber
[^2]: https://github.com/winsiderss/systeminformer/blob/master/phnt/include/ntsmss.h
2026-09-02 22:30:56 +02:00
Hermès Bélusca-Maïto
39a1f3a8f4 [SMSS] SmpApiLoop(): SEH-wrap the SmpApiDispatch[] routine calls (#9477)
If any one of them crashes, this will emit a diagnostic message
before taking down SMSS.

SAL2-annotate `SmpUnhandledExceptionFilter()`.
2026-09-02 22:30:55 +02:00
Hermès Bélusca-Maïto
f255c9f046 [SMSS] Improve the SmpTerminate() routine a bit (#9477)
- Use SAL2 annotations.

- When terminating the process if the hard error did not already,
  prefer using `Parameters[1]` that contains the actual failure code,
  instead of what `NtRaiseHardError()` returned.
2026-09-02 22:30:39 +02:00
Hermès Bélusca-Maïto
9174dcbd61 [NTOS:IO] Implement Win7+ I/O System case (in)sensitivity support (#9475)
This functionality is used to control the creation and opening of
named device objects in a case-(in)sensitive way.

It is controlled with a REG_DWORD value named `IoCaseInsensitive`
inside the registry key
`HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\I/O System` .

When compiled for Win7+, case insensitivity is enabled, which is the
expected default (like in the Object Manager). When compiled for Vista
and below, case insensitivity is disabled by default. The registry
setting allows changing this behaviour for backward/forward compatibility.

See the comparison tables at:
https://redplait.blogspot.com/2011/07/cmcontrolvector.html
https://redplait.blogspot.com/2012/06/cmcontrolvector-for-w8.html
https://redplait.blogspot.com/2016/03/cmcontrolvector-from-windows-10-build.html
2026-09-02 22:21:58 +02:00
Vitaly Orekhov
aba47033dd [EXPLORER] Implement volume button controls (#8577)
This provides a more convenient way to adjust system volume: through media buttons!
Handles `APPCOMMAND_VOLUME_MUTE`, `APPCOMMAND_VOLUME_UP`,
and `APPCOMMAND_VOLUME_DOWN` notifications.

CORE-12323
2026-09-02 22:15:44 +02:00
Justin Miller
dbdf684561 [SDK:ARBITER] Implement the test/retest/commit/rollback transaction (#9402)
Implements transaction support into our arbiter
This the generic logic that allows an entire resource map for a device to be made, and one by one query if it cleanly fits without yet committing to any full requirements.

Tried to put some of the code paths into generic handlers, as NT6+ and NT5.x have different ABIs here.
This technically implements both for now! But obviously we'll be switching to the Vista+ eventually.
2026-09-02 09:00:09 +00:00
Hermès Bélusca-Maïto
b256209ed4 [NTOS:CONFIG] i386/cmhardwr.c: Improve various comments 2026-09-01 22:38:28 +02:00
Hermès Bélusca-Maïto
eb16c75060 [CSRSRV] CsrApiRequestThread(), CsrSbApiRequestThread(): Update Doxygen block, SAL2 annotations, and fix signature
In particular, avoid casting to PVOID when passing either thread routine
as parameter to `RtlCreateUserThread()`.
2026-09-01 21:45:47 +02:00
Hermès Bélusca-Maïto
8f5a60b287 [SMSS] SAL2-annotate SmpApiLoop() 2026-09-01 21:45:46 +02:00
Mikhail Tyukin
58d50e80c1 [HLINK] Sync to Wine-10.0 2026-09-01 14:41:09 -04:00
Mikhail Tyukin
ab918b0612 [HHCTRL.OCX] Sync to Wine-10.0 2026-09-01 14:41:09 -04:00
Mikhail Tyukin
75df5226f7 [FONTSUB] Sync to Wine-10.0 2026-09-01 14:41:09 -04:00
Mikhail Tyukin
d8850a7415 [FAULTREP] Sync to Wine-10.0 2026-09-01 14:41:09 -04:00
Mikhail Tyukin
af0b71bece [DCIMAN32] Sync to Wine-10.0
Note that there were no changes
2026-09-01 14:41:09 -04:00