89066 Commits

Author SHA1 Message Date
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:
332331ce1b/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 <hermes.belusca-maito@reactos.org>
Co-authored-by: Stanislav Motylkov <x86corez@gmail.com>
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 <hermes.belusca-maito@reactos.org>
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
Timo Kreuzer
aaf231f00f [SHELL32] Forward SHGetInstanceExplorer to shcore.GetProcessReference
Fixes 3 shcore wine tests.
2026-06-18 23:27:41 +00:00