89267 Commits
Author SHA1 Message Date
Timo Kreuzer ef7d4d2043 [NTOS:EX] Implement query of SystemProcessorBrandString 2026-07-03 17:04:11 +00:00
Timo Kreuzer 1704b28ed0 [HAL] Implement HaliQueryProcessorBrandString 2026-07-03 17:04:11 +00:00
Timo Kreuzer 5ab5b8e5f3 [NTOS:EX] Implement query of SystemEmulationProcessorInformation 2026-07-03 17:04:11 +00:00
Timo Kreuzer 252a552dc6 [NTOS:EX] Implement query of SystemEmulationBasicInformation 2026-07-03 17:04:11 +00:00
Katayama Hirofumi MZ 79761d88fd [SHELL32][SHLWAPI][SHELL32_APITEST][SDK] Support AssocCreateElement (#9215)
Prepare for CLSID_QueryAssociations.
JIRA issue: CORE-20467
- Add dll/win32/shell32/evalcmd/
  elements.cpp.
- Implement AssocCreateElement
  function in elements.cpp.
- Modify shell32.spec.
- Fix shlwapi!AssocCreate by using
  AssocCreateElement.
- Add SKGetValueW and
  SKSetValueW prototypes into
  <shlwapi_undoc.h>.
- Add AssocCreateElement
  prototype into <shlwapi_undoc.h>.
- Add some CLSIDs into
  <shlguid_undoc.h>.
- Add some resource strings into
  shlwapi.
- Add AssocGetPerceivedType
  prototype into <shlwapi.h>.
- Add AssocCreateElement
  testcase into shell32_apitest.
2026-07-04 01:10:31 +09:00
Mohammad Amin Mollazadeh f66f40ec43 [RICHED20] Fix crash on copy (#9224)
CORE-20482

The reason for the crash was a wrong sign extension being done when right-shifting an integer.
Casting to an unsigned integer allows the correct zero-extension instead.

Import patch from Wine 11.3: wine-mirror/wine@bb4ef1f (https://gitlab.winehq.org/wine/wine/-/merge_requests/9776)
```
riched20: Fix crash when copying text.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=59005
wine commit id bb4ef1fbf7d8dae627025ea698c740cca8d15a06 by Piotr Caban <[email protected]>
```
2026-07-03 14:30:52 +02:00
Mohammad Amin MollazadehandSimone Mario Lombardo 6d8a5fa0bb [WIN32SS:NTGDI] Allow calling NtGdiCreateHalftonePalette with a NULL hDC (#9217)
CORE-20231

Tests show this is allowed on Windows and even Wine. Also, official MS
Windows SDK headers indicate that the `CreateHalftonePalette()` `hDC`
parameter is optional, and so can be NULL.

Not allowing a NULL `hDC` caused compatibility issues, breaking applications
like Internet Explorer 8.0 and Microsoft Encarta.

Make `NtGdiCreateHalftonePalette()` accept a NULL `hDC`, fixing its crash
in this case, and only locking it when it's not NULL. Simplify also the
function execution path.

Co-authored-by: Simone Mario Lombardo <[email protected]>
2026-07-02 20:19:33 +02:00
Mohammad Amin Mollazadeh 3e78f9a735 [GDI32_APITEST] Add a test for CreateHalftonePalette (#9217)
CORE-20231

The test calls `CreateHalftonePalette(NULL)` and verifies it returns
a valid palette.
2026-07-02 20:19:33 +02:00
Timo Kreuzer ed51a5d1e2 [RTL][NTDLL] Implement processor related NT6+ functions
Implements RtlGetCurrentProcessorNumberEx, RtlIsProcessorFeaturePresent
2026-07-01 21:45:34 +00:00
Timo Kreuzer dbb4d36927 [NTOS:KE][NTDLL][NTDLL_VISTA] Implement NtGetCurrentProcessorNumberEx 2026-07-01 21:45:34 +00:00
Timo Kreuzer aab0eac949 [NTDLL_APITEST] Add test for NtGetCurrentProcessorNumberEx 2026-07-01 21:45:34 +00:00
Timo Kreuzer 098532b9c5 [NDK] Add NtGetCurrentProcessorNumberEx 2026-07-01 21:45:34 +00:00
Amine Khaldi deb11f4e67 [URLMON_WINETEST] Sync with Wine 10.0. CORE-20596 2026-07-01 16:58:14 +01:00
Amine Khaldi 72eb24c100 [PSDK] Update urlmon.idl. CORE-20596 2026-07-01 16:58:14 +01:00
Whindmar Saksit ff2ad34155 [CABVIEW][ZIPFLDR] Implement ParseDisplayName and GetDetailsEx (#9197) 2026-07-01 12:29:53 +02:00
Whindmar Saksit c891aefdcf [SHELL32] Implement CFolder[Item] getters/setters (#9173) 2026-07-01 11:41:17 +02:00
Timo Kreuzer 6679825f21 [WS2_32] Import inet_addr from wine
The old implementation was buggy and caused stack corruption (triggered by ws2_32_winetest:sock test_inet_pton)
2026-07-01 06:52:45 +00:00
Eric Kohl e848ce1c52 [NETSH] Add the pfnOsVersionCheck function to the internal data structures and retrieve the WMI version information 2026-06-30 23:14:18 +02:00
Whindmar Saksit e21afa5b21 [SHLEXTDBG] Dump IShellFolder column names and properties (#9228) 2026-06-30 14:50:52 +02:00
Serge Gautherie cd609f468a [DBGHELP] Fix a warning (#9214)
Fix the warning:
```
dll/win32/dbghelp/type.c:25: warning: "NONAMELESSUNION" redefined
```

CORE-18933
Addendum to commit 212a1a5c74 (PR #7031).
2026-06-29 21:32:20 +02:00
Ahmed Arif cf47094103 [NTUSER] Preserve WM_QUIT in move/size modal loop (#9087)
Dragging the first-boot install/status window could make setup stall,
and the shell never started after that.

The problem is that the move/size modal loop can remove a posted `WM_QUIT`
while setup is tearing the thread down. That quit message then does not
reach the outer `GetMessage()` loop, so the setup thread keeps waiting
instead of exiting.

This fix keeps the `WM_QUIT` message alive by re-posting it and leaving
the move/size loop.

See also: https://devblogs.microsoft.com/oldnewthing/20050222-00/?p=36393

## How to test

Boot to first-boot setup, drag the install/status window while it is finishing,
and check that setup continues and Explorer starts instead of hanging.
2026-06-29 21:20:26 +02:00
Ahmed Arif b82e2884fc [NTUSER] Report fresh scrollbar state in co_IntGetScrollBarInfo (#9137)
`co_IntGetScrollBarInfo()` computed the `rgstate` bits into the output buffer
and then immediately overwrote them with the cached copy, so callers always
got stale state.

Fix this by copying the cached info before computing `rgstate`.

This also exposed an inverted `WS_DISABLED` test (per wine, disabled `SB_CTL`
should report `UNAVAILABLE`, not enabled ones), which is now fixed as well.
2026-06-29 21:10:41 +02:00
Katayama Hirofumi MZ 0572d36024 [CRT][UCRT][MSVCRT] intrinsic functions: Follow-up of #9157 (#9226)
JIRA issue: CORE-20617
@learn-more found #9157 breaks the build as follows:
> error C2220: the following warning is treated as an error
> warning C4163: 'strncmp': not available as an intrinsic function
> warning C4163: 'strncpy': not available as an intrinsic function
_MSC_VER=1932 was not the version that the intrinsic functions
(strncmp, strncpy, wcsncmp, wcsncpy) added.
Using Compiler Explorer could detect the correct version:
_MSC_VER=1950.
2026-06-29 13:48:51 +09:00
Whindmar Saksit 3dfa23f661 [KEYBOARD] Fix AltGr for VkKeyScan on some keyboards (#9176) 2026-06-29 00:04:38 +02:00
Hermès Bélusca-Maïto 9de4cd4cf2 [EVTLIB] Fix EVTLTRACE(1) macro expansion in MSVC builds 2026-06-28 21:50:21 +02:00
Dmitry Borisov c54a9ca090 [DC21X4] Improve MII link status indication (#9220)
This code should be generic for all MII PHYs so always read the BMSR register twice.
2026-06-28 20:35:01 +02:00
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