Commit Graph
89091 Commits
Author SHA1 Message Date
Karol Gocłowski ff7ed205fb [SHLWAPI] Add Polish translation for SHRestrictedMessageBox (#9192) 2026-06-28 20:33:48 +02:00
Jose Carlos Jesus fbfe8321ef [CHKDSK] Update Portuguese (pt-PT) translation (#9162) 2026-06-28 20:32:46 +02:00
Jose Carlos Jesus ae0f8d52ac [CONSRV] Add Portuguese (pt-PT) translation (#9158) 2026-06-28 20:31:02 +02:00
Ahmed Arif b38db9dd23 [NTUSER] Clip the non-client update region to the dirty region (#9126)
Remove the excessive repainting of the non-client window area (title caption/buttons and borders) whenever other windows are being dragged over.

CORE-5877, CORE-16672
2026-06-28 20:24:50 +02:00
Ahmed Arif 24e904e095 [EVTLIB] Do not preallocate event logs to MaxSize (#9071)
Keep the configured event log `MaxSize` as a capacity limit and track the
physical file size separately.

New logs now start at the Windows 64 KiB file-size granularity, instead of
growing immediately to the full configured maximum. They are then grown in
64 KiB chunks as records are written, while preserving the logical used area
in the header offsets and EOF record.
2026-06-28 20:14:56 +02:00
Ahmed Arif 1b91127bbe [FLOPPY] Fix double-free of the interrupt object on init failure (#9225)
AddControllers already disconnects the controller interrupt on its error paths but left InterruptObject pointing at the freed object.

Now that DriverEntry runs Cleanup on failure (and Unload() routes through it too), that stale pointer is handed to IoDisconnectInterrupt a second time, bugchecking with BAD_POOL_HEADER.

Clear InterruptObject right after disconnecting so Cleanup() skips it.

CORE-20669
2026-06-28 10:23:39 -05:00
Ahmed Arif c0f18d059a [WIN32SS:GDI] Fix an off-by-one error in the StretchBlt mask bounds check (#9136)
The mask bounds check in `DIB_XXBPP_StretchBlt` allowed `sx == cx` (and similar for `sy`),
reading one pixel past the end of the mask bitmap.
On the contrary, the source-surface check a few lines below already does it right.
2026-06-27 17:03:48 +02:00
Alex Mendoza 02f2314139 [SHELL32] Implement LockServer (#9055) 2026-06-27 16:36:29 +02:00
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