Commit Graph
89083 Commits
Author SHA1 Message Date
Katayama Hirofumi MZ d47cdbbdff [GDI32][GDI32_APITEST][SDK] Support GetGlyphOutlineWow (#9210)
Add 16-bit support and refactor.
JIRA issue: CORE-8466
- Refactor GetGlyphOutlineA/W.
- Implement GetGlyphOutlineWow.
- Modify gdi32.spec.
- Add prototype into <undocgdi.h>.
- Enhance GetGlyphOutline testcase.
2026-06-27 11:36:36 +09:00
Alex Mendoza 8e865cb39d [NTOS:OB] Return handle attributes by ObReferenceFileObjectForWrite (#9213)
Resolve a FIXME in ObReferenceFileObjectForWrite by getting the handle attributes,
the same way it's done in other parts of the Ob code.
2026-06-26 19:22:55 +02:00
Ahmed Arif aaab5f0198 [WIN32SS:NTGDI] IntGdiCreateDisplayDC: Directly invoke GreCreateCompatibleDC (#9164)
Call the internal GreCreateCompatibleDC instead of the NtGdi syscall stub.
2026-06-26 14:28:42 +02:00
Ahmed Arif 6e95a132bd [WIN32SS:ENG/NTUSER] Use shared locks for display list lookups (#9090)
- Use shared locks for the display device and PDEV lookup paths.
  These functions only walk existing lists and take references, while list updates
  and mode-switch paths still use exclusive locking.
  This avoids serializing read-only display queries unnecessarily.

- Use shared locks for other read-only NtUser calls.
2026-06-26 14:07:15 +02:00
Ahmed Arif a45e91cb3d [WIN32SS:NTUSER] Use shared locks for read-only queries (#9088)
Some win32k syscalls were still taking the exclusive user lock even though they only read existing state.

This switches a few simple query paths to the shared user lock instead: foreground window lookup, IME hotkey/context queries, layered window attributes, and title bar info.

The goal is to avoid taking the writer lock for read-only work while keeping the same behavior.
2026-06-26 13:51:48 +02:00
Eric Kohl 4320065009 [NETSH] Call a contexts connect function after it has been added to its parent context 2026-06-25 21:34:02 +02:00
Stanislav Motylkov 2f514a5127 [FREELDR] Workaround for BIOSes that report unusual geometry for CD-ROMs
This is needed for ISO filesystem driver to work correctly,
as it assumes 2048 bytes per sector for CD-ROM media.

Happens on 86Box with board `[i430FX] ASUS P/I-P55TP4XE`,
Bochs emulator with `01/17/97-i440FX-2A69HV3CC-00` BIOS,
and some other real machines.

CORE-20640
2026-06-25 19:58:51 +03:00
Ahmed Arif f17d904d2d [WIN32SS:NTUSER] Return NO_SELECTED_ITEM from NtUserMenuItemFromPoint() when no item is hit (#9121)
Fix the bug, where `NtUserMenuItemFromPoint()` returned `cItems` instead of `NO_SELECTED_ITEM`
when no item is under the point (`mi` is never NULL on a miss), so `MenuItemFromPoint()` callers
could have indexed one past the menu array.
2026-06-25 18:22:15 +02:00
Ahmed Arif ae0e4ee305 [WIN32K:DIB] Fix some bugs in DIB_8BPP_BitBltSrcCopy (#9119)
- Fix destination row stride;
- Fix source stride and double translation in the flip path.

Related to CORE-2965
2026-06-25 18:03:00 +02:00
Ahmed ARIF 9dce9a82e9 [FLOPPY] fix driver unloading 2026-06-25 12:07:57 +00:00
Katayama Hirofumi MZ a4013255d7 [IMM32] Fix C4334 and C4267 warnings (#9211)
Kill the warnings.
JIRA issue: CORE-19268
Add type casts to DWORD.
2026-06-25 10:36:36 +09:00
Justin Miller 5cef1f68e3 [SDK] kernelbase SDK changes 2026-06-24 15:27:43 -07:00
Timo Kreuzer a723ff5600 [WIN32_REGISTRY] Add win32_registry static library
To be used by NT6 apis in kernel32

This is not great. It works, but it puts stuff into the lib that shouldn't be in there. We need it, because the includes need the generated files.
Maybe a dependency could solve that.
2026-06-24 15:27:43 -07:00
Eric Kohl 4369126acc [NETCFGX] Read IpAddress, SubnetMask, DefaultGateway and DefaultGatewayMetric from the registry 2026-06-24 19:11:04 +02:00
Katayama Hirofumi MZ 546297fe86 [SHELL32][SHLWAPI][BROWSEUI][SHELL32_APITEST][SDK][KBSWITCH][RAPPS] Support SHEvaluateSystemCommandTemplate (#9111)
This function has an important role
for new ShellExecute implementation.
JIRA issue: CORE-19278
- Add evalcmd static library into
  dll/win32/shell32/evalcmd.
- Implement
  SHEvaluateSystemCommandTemplate
  in evalcmd.
- Link evalcmd to shell32 and shlwapi.
- Modify shell32.spec and shlwapi.spec.
- Add prototype to <shellapi.h>.
- Add
  SHEvaluateSystemCommandTemplate
  testcase.
- Define PathIsAbsolute inline
  function in <shlwapi_undoc.h>
  and use it.
2026-06-24 20:35:37 +09:00
Eric Kohl afbc922405 [NETCFGX] Fix the output of ITcpipProperties_fnUnknown1
- An empty parameter must be returned as an empty string instead of '(null)'.
- Add missing parameters DynamicUpdate and NameRegistration.
2026-06-24 11:56:42 +02:00
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