89267 Commits
Author SHA1 Message Date
Whindmar Saksit 2ec7c03eee [RAPPS] Update Let's Encrypt issuer detection (#9209) 2026-06-24 02:30:51 +02:00
Hermès Bélusca-Maïto 2eb28656da [WIN32SS:NTUSER] Improve initialization of window station and desktop objects
As soon as `ObCreateObject()` is successfully invoked, zero-out the winsta
and desktop object buffers and assign them the current process session ID
(into their first `dwSessionId` member). Only then, continue with regular
initialization.

It's done in this systematic way in order to ensure that, in case the
regular initialization of these objects fails and `ObDereferenceObject()`
is invoked, the `nt!ExpWin32SessionCallout()` routine (in `ntoskrnl/ex/win32k.c`)
that is executed as part of the Win32 "delete" object callback registered
by win32k.sys with the Object Manager, correctly finds a valid initialized
`SessionId` value in the "common header" of either the window station
or the desktop object being deleted.

As a side-result, other parts of win32k can directly refer to
`pdesk->dwSessionId` instead of `pdesk->rpwinstaParent->dwSessionId`
for a given desktop.
2026-06-23 21:28:10 +02:00
Hermès Bélusca-Maïto 1968202840 [WIN32SS:NTUSER] winsta.c: Improve UserCreateWinstaDirectory()
- Don't use `NtCurrentPeb()` to retrieve the current process session ID,
  but `PsGetCurrentProcessSessionId()` instead that doesn't require a PEB.

- Turn the purposely-leaking local `hWinstaDir` variable into a global
  `ghWinStaDir` variable, so that when win32k.sys unloading support will
  be implemented, one could close `ghWinStaDir` so as to delete the per-
  session window-station object directory.
  (It isn't created as an `OBJ_PERMANENT` object for this reason.
  See comment https://github.com/reactos/reactos/pull/621#discussion_r196303521
  in PR #621.)
2026-06-23 21:23:06 +02:00
Hermès Bélusca-Maïto 9d287f3c5a [WIN32SS:NTUSER] IntCreateWindow(): Remove the last hack for "win32csr/desktopbg.c"
This hack was introduced in commit 89d0892531 (r6908) to automatically
assign, on kernel-side, the created window as the "current" desktop window,
when it was the first one to be created for the given desktop.
This was necessary back when Win32 desktop windows were managed on
CSRSS side (via the ReactOS-specific `win32csr/desktopbg.c` module).

Since the introduction of the `winsrv` module, and the move of desktop
windows management into Win32k in commit 765f09416d (r57632), see also
CORE-6723, this hack isn't needed anymore because the same sequence
of actions is done by `IntCreateDesktop()`, just after creating the
desktop window.
2026-06-23 20:54:41 +02:00
Hermès Bélusca-Maïto 5d21953233 [WIN32SS:NTUSER] desktop.c!DesktopWindowProc(): Reenable the default window procedure call
The call to `IntDefWindowProc()` in the desktop window procedure
`default` case, was disabled in commit ff31610bfb (r68908), because
of a supposed "painting message regression", probably related at
that time to a previous commit 6dfa71c487 (r68904) and CORE-7797.
This isn't relevant anymore.
2026-06-23 20:54:40 +02:00
Hermès Bélusca-Maïto 479debeea3 [WIN32SS:NTUSER] desktop.c: Cleanup DesktopWindowProc()
- Move local variables in their corresponding case-blocks;
- Remove an unused trace.
2026-06-23 20:54:39 +02:00
Timo Kreuzer da8f604da0 [SHELL32] Forward SHSetInstanceExplorer to shcore.SetProcessReference
Addendum to commit aaf231f
2026-06-23 18:10:39 +00:00
Timo Kreuzer 0e245f97b5 [SHELL32] shell32.spec: Add Vista exports 2026-06-23 18:10:39 +00:00
Timo Kreuzer c3d6516f20 [SHELL32] Make Shell_GetCachedImageIndexW EXTERN_C 2026-06-23 18:10:39 +00:00
Timo Kreuzer a790beb22b [SHELL32] Fix SHBindToObject
This should have 5 parameters and stdcall convention.
Get rid of SHBindToObjectEx.
2026-06-23 18:10:39 +00:00
Timo Kreuzer 4f329a03b7 [SHELL32] shell32.epsc: Move automatic ordinals to the bottom 2026-06-23 18:10:39 +00:00
Timo Kreuzer bd6d9b73ee [SHELL32] shell32.spec: Mark auto-ordinal exports with @
This also adds comments about the ordinal on Windows 2003 and Vista
2026-06-23 18:10:39 +00:00
Hermès Bélusca-Maïto d4ba4b464f [NDK] pstypes.h: Remove win32k-specific _W32THREAD/_W32PROCESS forward declarations
These structures weren't used anywhere else in the header.
2026-06-23 19:57:53 +02:00
Hermès Bélusca-Maïto 620222ad28 [NTOS:OB][NDK] Enhancements to ObSetHandleAttributes() and ObpSetHandleAttributes() (#9170)
- Use SAL2 annotations; write Doxygen documentation (based on GPT-5.4 feedback).
- Simplify some of the code.
- Add the `ObSetHandleAttributes()` prototype to `ndk/obfuncs.h`,
  since it is exported by ntoskrnl.exe
2026-06-23 19:52:22 +02:00
Hermès Bélusca-Maïto 37fe06f1c7 [NTOS:OB] Enhancements to NtSetInformationObject() (#9170)
- Simplify the `ObjectHandleFlagInformation` class implementation,
  by directly invoking the `ObSetHandleAttributes()` routine.
  Addendum to commit 02d0bb9dbd (r22228) that implemented the class,
  and to commit 91105c7915 (r61037) that implemented `ObSetHandleAttributes()`.

- Use SAL2 annotations; write Doxygen documentation (based on GPT-5.4
  feedback and https://ntdoc.m417z.com/ntsetinformationobject).
2026-06-23 19:52:21 +02:00
Hermès Bélusca-Maïto cf4dce77c2 [NDK][NTOS:INCLUDE] Minor reshuffling of some functions (#9170) 2026-06-23 19:52:16 +02:00
Timo Kreuzer 03bd53db66 [CRYPT32] Sync to wine 10.0
- Move CertEnumSystemStoreLocation to reactos/store.c
- Add emulation layer for unixlib calls
- Implement enumeration of root certificate store in the registry

TODO:
- Implement remaining unixlib functionality using mbedtls or similar
2026-06-23 17:36:26 +00:00
Timo Kreuzer ba0d97e8f8 [CRYPT32_WINETEST] Prevent crash on NT6 ReactOS 2026-06-23 17:36:26 +00:00
Timo Kreuzer 5a88b485bb [PSDK] wincrypt.h: Add missing CryptImportPublicKeyInfoEx2 2026-06-23 17:36:26 +00:00
Timo Kreuzer 4e9945c1e0 [PSDK] Sync bcrypt.h to Wine-10.0 2026-06-23 17:36:26 +00:00
Eric Kohl 72c5ab502b [NETCFGX] Implement ITcpipProperties_fnUnknown2 partially
- Update internal IpAddress, Gateway and NameServer information
- Mark modified component
2026-06-23 17:27:22 +02:00
Dmitry Borisov 57a7c56d51 [NTOS:PNP] Compile PC-98 PnP IDs only on x86 (#9195)
Addendum to 7d5e159131

CORE-17977
2026-06-23 01:20:19 +03:00
Dmitry Borisov 4c2fa234c4 [FREELDR:PC98] Report a more detailed system ID for sysdm control panel (#9194)
Report the machine model name for better user experience.

CORE-17977
2026-06-22 15:06:15 +03:00
Stanislav Motylkov 13364f7be6 [NTOS:CM] Detect NEC PC-98 alternative system architecture dynamically (#9193)
Perform detection by matching system identifier passed from the loader block,
similarly to how FreeLoader detects the boot video driver:
https://github.com/reactos/reactos/blob/332331ce1b7a71b0227b9ec3d4449272b28a84f6/boot/freeldr/freeldr/ntldr/winldr.c#L653

Windows checks if the identifier starts with a known string and then sets
additional flags for the drivers.

See also https://www.geoffchappell.com/studies/windows/km/ntoskrnl/inc/api/arc/i386_loader_block.htm

Follow up of 8df1b53508. CORE-17977
2026-06-22 14:04:34 +03:00
Eric Kohl a8f14ffdf7 [BOOTDATA] Add NetSh configuration data to load ifmon.dll by default 2026-06-22 01:26:10 +02:00
Eric Kohl 8b54dc6c0c [IFMON] Test for DHCP configuration in the 'add address' and 'delete address' commands 2026-06-21 17:24:22 +02:00
Timo Kreuzer 0232efdd19 [NTDLL] Implement LdrGetProcedureAddressEx for NT6 2026-06-21 15:07:00 +00: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 f473ddad73 [SHLWAPI] Revert "Remove unneeded changes"
This reverts commit afcac332cf.
2026-06-21 12:29:51 +00:00
Colin Finck 175abbf8c2 [ROSAUTOTEST] Use default port 443 for CWebService again.
Port 8443 was an extra TLS 1.1 server hosting only the testman webservice at a time when TLS 1.1 was still an option and we had no other choice on XP/2003.

Now that we can use curl and TLS 1.2/1.3 on these platforms thanks to Mark, there is no need for that extra server anymore.
I'd like to retire it at some point.
2026-06-21 14:14:32 +02:00
Eric Kohl 4d2238e07a [NETCFGX][REACTOS] Add NetCfgDiagRepairRegistryBindings stub 2026-06-21 10:10:29 +02:00
Katayama Hirofumi MZ 33e9970b78 [MSPAINT] Adjust scroll amount properly (#9181)
Scrolling the canvas with mouse
wheel was a hard work, due to
small scroll amount.
JIRA issue: CORE-19466
- Adjust the scroll amount from 5
  to 15 in CCanvasWindow::OnHVScroll.
Co-authored-by: Hermès BÉLUSCA - MAÏTO <[email protected]>
Co-authored-by: Stanislav Motylkov <[email protected]>
2026-06-21 13:05:06 +09:00
Mark Jansen 7c05a10a90 [ACLAYERS] Add shim for GlobalMemoryStatus
This is needed by games like Half-life that won't start without it.
2026-06-21 01:33:39 +02:00
Mark Jansen ab16c8a867 [ACLAYERS][APPSHIM_APITEST] Relicense to a friendlier license 2026-06-21 01:33:39 +02:00
Eric Kohl ac06652ab6 [NETSH][REACTOS] Basic implementation of PreprocessCommand
Preprocess is used by the 'reset' command in the 'interface ip' command.
2026-06-21 00:59:22 +02:00
Eric Kohl a6133d2b44 [IFMON] Add the 'delete address', 'delete dns' and 'reset' commands to the 'interface ip' context
The 'reset' command is just a stub.
2026-06-21 00:35:46 +02:00
Katayama Hirofumi MZ 332331ce1b [SHLWAPI] Update Japanese (ja-JP) translation
CORE-19278
2026-06-20 19:36:24 +09:00
Stanislav Motylkov af405b51ce [SHLWAPI] Update Russian (ru-RU) translation
Addendum to 0533a67b18. CORE-19278
2026-06-20 13:12:28 +03:00
Katayama Hirofumi MZ b35a9be972 [MSPAINT] Fix Color Picker tool (#9179)
The behavior of Color Picker (dropper) tool
was incompatible with Windows.
JIRA issue: CORE-19466
- On TOOL_COLOR, when mouse was pressed
  or moved, send WM_TOOLSMODELCOLORPICKED
  message with color value to the tools settings
  window.
- In the tools settings window, display the picked
  color.
- Don't apply to the current color until mouse up.
Co-authored-by: Hermès BÉLUSCA - MAÏTO <[email protected]>
2026-06-20 11:03:33 +09:00
Katayama Hirofumi MZ 0533a67b18 [SHLWAPI][SHELL32][SDK] Support SHRestrictedMessageBox (#9160)
Implementing missing features...
JIRA issue: CORE-19278
- Add IDS_RESTRICTED and IDS_RESTRICTIONS
  resource strings.
- Implement SHRestrictedMessageBox function.
- Modify shlwapi.spec.
- Add prototype into <shlwapi_undoc.h>.
- Restrict Folder Options on
  REST_NOFOLDEROPTIONS by using
  SHRestrictedMessageBox.
2026-06-20 09:25:47 +09:00
Timo Kreuzer 269b585eed [SPEC2DEF] Fix a memory leak. 2026-06-19 19:27:29 +00:00
Timo Kreuzer dea50f4746 [SPEC2DEF] Ignore -import flag in spec files
These are used by wine for exports that re-export the import stub function from an import library.
We don't need to do anything here, so simply ignore it.
2026-06-19 19:27:29 +00:00
Timo Kreuzer 7fa69c0f8a [SPEC2DEF] Fix version handling for ordinals
Prevents an error about duplicate ordinals, if 2 entries for different OS versions have the same ordinal.
2026-06-19 19:27:29 +00:00
Amine Khaldi ad78f8e869 [OLEAUT32_WINETEST] Sync with Wine 10.0. CORE-20595 2026-06-19 19:34:21 +01:00
Amine Khaldi 0d7090f5e9 [VBSCRIPT_WINETEST] Sync with Wine 10.0. CORE-20606 2026-06-19 19:33:57 +01:00
Amine Khaldi c51c284474 [VBSCRIPT] Sync with Wine 10.0. CORE-20606 2026-06-19 19:33:57 +01:00
Eric Kohl d087f8d58b [IFMON] Rename some resource IDs 2026-06-19 19:24:56 +02:00
Eric Kohl a3d4ae2794 [IFMON] Implement the 'delete arpcache' command in the 'interface ip' context 2026-06-19 18:45:22 +02:00
Mohammad Amin Mollazadeh b4b8774bee [SETUPAPI] Fix SetupGetBinaryField not reading HEX values properly from INF files (#9182)
CORE-20657, CORE-13525

Fix an issue in `SetupGetBinaryField()` that made the GUI installer unable to read INF files properly.
For this reason, all the binary values in the registry on a fresh ReactOS installation were all set to `0x00`.

The reason was that the custom HEX parser in Wine's `SetupGetBinaryField()` is broken.
As a solution, we can replace it with a call to C's standard `wcstoul()` function.

(Note that Wine fixed this problem in wine-11, still with a hand-made hex-value parser...)
2026-06-19 17:16:19 +02:00
Eric Kohl ab2393c0de [IFMON] Implement the 'add dns' command in the 'interface ip' context
The index argument is not supported yet.
2026-06-19 10:37:50 +02:00