Commit Graph

1859 Commits

Author SHA1 Message Date
Eric Kohl
d9d27f8943 [MSV1_0][DDK] Improve LsaApCallPackage
- Implement MsV1_0Lm20ChallengeRequest for LsaApCallPackage
- Add message type checks
2026-05-02 19:24:58 +02:00
Katayama Hirofumi MZ
8727bfd634 [SHLWAPI][SDK] Support SHDialogBox (#8917)
Implementing missing features...
JIRA issue: CORE-19278
- Implement SHDialogBox function.
- Modify shlwapi.spec.
- Add prototype to <shlwapi_undoc.h>.
2026-04-30 10:54:19 +09:00
Eric Kohl
c04c092a3e [REACTOS][NETCFGX] Add the undocumented ITcpipProperties interface to the tcpip notify object 2026-04-29 21:09:54 +02:00
Eric Kohl
2586be9bc6 [REACTOS][NETCFGX] Implement INetCfgComponentPrivate_fnUnknown1
It is a QueryInterface method for notify objects.
2026-04-29 20:33:06 +02:00
Carl J. Bialorucki
129ef359f0 [SDK] Raise KERNEL_VERSION_PATCH_LEVEL to 17
0.4.17-dev starts now.
2026-04-28 20:35:14 -05:00
Katayama Hirofumi MZ
2cbce1c043 [SHELL32][SDK] Implement SHHandleUpdateImage and SHUpdateImageW (#8884)
Implementing missing features...
JIRA issue: CORE-19278
- Add SHLookupIconIndexA/W
  prototypes into <undocshell.h>.
- Add StrCpyNXA/W prototypes
  into <shlwapi_undoc.h>.
- Define SHCNF_UPDATEIMAGE_DATA_1
  and SHCNF_UPDATEIMAGE_DATA_2
  structures in <undocshell.h>.
- Implement SHHandleUpdateImage
  and SHUpdateImageW functions.
2026-04-26 20:11:24 +09:00
Katayama Hirofumi MZ
497da544ce [SHLWAPI][SDK] Support SHRegSetPathA/W (#8909)
Implementing missing features...
JIRA issue: CORE-19278
Implement SHRegSetPathA and SHRegSetPathW
functions.
2026-04-26 18:37:02 +09:00
Katayama Hirofumi MZ
eeaa241b88 [SHLWAPI][SDK] Support IUnknown_QueryServiceForWebBrowserApp (#8908)
Implementing missing features...
JIRA issue: CORE-19278
- Implement IUnknown_QueryServiceForWebBrowserApp
  function.
- Add prototype to <shlwapi_undoc.h>.
2026-04-26 18:17:41 +09:00
Katayama Hirofumi MZ
1e54a5c1f6 [PSDK] Enhance <appmgmt.h> (#8895)
JIRA issue: CORE-20560
Rewrite sdk/include/psdk/appmgmt.h .
2026-04-26 08:09:37 +09:00
Katayama Hirofumi MZ
12191562da [SHLWAPI][SDK] Implement ZoneCheck* functions (#8877)
Implementing missing features...
Utility functions for Internet Zone Manager.
JIRA issue: CORE-19278
- Add zonechk.c and implement ZoneCheckPathA/W,
  ZoneCheckUrlA/W, ZoneCheckUrlExA/W,
  ZoneCheckUrlExCacheA/W, and ZoneCheckHost[Ex]
  functions.
- Modify shlwapi.spec.
- Add prototypes to <shlwapi_undoc.h>.
2026-04-24 09:27:51 +09:00
Katayama Hirofumi MZ
07d544ff07 [SHELL32][SDK] Implement SHSetLocalizedName (#8879)
Implementing missing features... Renaming
My Computer's name etc..
JIRA issue: CORE-19278
- Implement SHSetLocalizedName function.
- Add prototype to <shellapi.h>.
Co-authored-by: Vitaly Orekhov <vkvo2000@vivaldi.net>
Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
2026-04-24 08:57:54 +09:00
Katayama Hirofumi MZ
9e5774e75c [SHELL32][SDK] Implement CDefFolderMenu_MergeMenu (#8875)
Implementing missing functions...
JIRA issue: CORE-19278
- Add _SHMergePopupMenus and
  SHLoadPopupMenu helper
  functions.
- Implement
  CDefFolderMenu_MergeMenu
  function in utils.cpp.
- Add function prototype into
  <undocshell.h>.
2026-04-23 22:59:05 +09:00
Katayama Hirofumi MZ
d6cc284435 [SHELL32][SDK] Implement LinkWindow_RegisterClass (#8878)
Implementing missing features...
JIRA issue: CORE-19278
- Implement LinkWindow_RegisterClass
  function by using "superclassing".
- Add prototype to <undocshell.h>.
2026-04-23 22:50:03 +09:00
Timo Kreuzer
9d1418fcb6 [NDK][NTDLL][KERNEL32] Improve tick count to ms calculation
Use an inline function to do the calculation (optimized for 32/64 bit).
2026-04-23 11:58:15 +00:00
Timo Kreuzer
7debc3ef11 [NDK][XDK] Improve SharedUserData related definitions
- Move definition of USER_SHARED_DATA from pstypes.h to ketypes.h
- Add missing definition of KI_USER_SHARED_DATA for ARM64
- Remove definition of KI_USER_SHARED_DATA_PHYSICAL
2026-04-23 11:58:15 +00:00
Timo Kreuzer
77b88c48a4 [NDK][NTOS][NTDLL][KRNEL32] Fix read/write of KSYSTEM_TIME
Fix KiWriteSystemTime and move it to NDK. The previous implementation of KiWriteSystemTime was broken and updated the fields in the wrong order. Before that it was right for SystemTime and wrong for InterruptTime. ExpSetTimeZoneInformation had it wrong for the TimeZoneBias.
Add KiReadSystemTime to read KSYSTEM_TIME values correctly, instead of doing it manually (and partly wrongly) all over the place.
2026-04-23 11:58:15 +00:00
Eric Kohl
8dc9e50c09 [NETCFGX][REACTOS][UUID] Uncover one of many secrets of netcfgx.dll
The second parameter of the first function of the INetCfgComponentPrivate interface seems to be a REFIID.
Netsh calls this function with an undocumented GUID called ITcpipProperties (see https://github.com/nihilus/GUID-Finder/blob/master/GUID-Finder/Interfaces.txt).
2026-04-21 22:23:18 +02:00
Dmitry Borisov
e2aa54321a [BOOTVID] Rename some function parameters
Delta       -> Stride
TopDelta -> Height
2026-04-21 15:08:17 -05:00
Dmitry Borisov
ac33647888 [ATAPI] Add ATA storage driver
CORE-17256
CORE-17191
CORE-17716
CORE-17977
CORE-13976
CORE-16216
2026-04-21 15:01:22 -05:00
Dmitry Borisov
ae2827f481 [PCIIDEX] Add DMA support
CORE-17256
2026-04-21 15:01:22 -05:00
Dmitry Borisov
bd33d627b7 [DDK] Add ATA definitions
Based on the MinGW header
CORE-17256
2026-04-21 15:01:22 -05:00
Dmitry Borisov
63df590aa8 [NDK] Introduce function attributes for section placement
Increase code readability by using the function attributes
instead of a plain DECLSPEC_NOINLINE
2026-04-21 15:01:22 -05:00
Katayama Hirofumi MZ
40252ff735 [KERNEL32][CONSRV][SDK] Implement ConsoleIMERoutine (#8862)
Preparing for Console IME.
JIRA issue: CORE-18923
- Add IntRegQueryValue,
  IntPathQuoteSpacesW, and
  GetConsoleIMECommandLine helper
  functions.
- Add ConsoleIMERoutine function.
- Modify ConnectInfo.ImeRoutine in
  ConDllInitialize function.
- Modify kernel32.spec to add
  ConsoleIMERoutine.
- Add ConsoleIMERoutine prototype
  to <wincon_undoc.h>.
- Connect ImeRoutine in
  ConSrvConnect function.
Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
2026-04-21 17:52:19 +09:00
Eric Kohl
cbfc755c2f [DHCPSVC][PSDK][IDL] Add the DhcpAcquireParametersByBroadcast stub and remove the DhcpQueryHWInfo function 2026-04-13 01:06:31 +02:00
Eric Kohl
ed5124b7a8 [DHCPCSVC][PSDK][IDL] Implement the enable/disable DHCP part of DhcpNotifyConfigChange/Ex 2026-04-12 18:29:10 +02:00
Katayama Hirofumi MZ
215d409f52 [IMM32][NTUSER][SDK] Implement ImmSendIMEMessageExA/W (#8850)
Supporting Win3.x IMM.
JIRA issue: CORE-19268
- Move <wine/ime.h> to psdk <ime.h>.
- Add some constants to
  <imm32_undoc.h>.
- Implement ImmSendIMEMessageExA
  and ImmSendIMEMessageExW
  functions.
2026-04-11 09:45:38 +09:00
Katayama Hirofumi MZ
61fb4db34c [SDK][IMM32][NTUSER] Delete <jpnvkeys.h> and use <wine/ime.h> instead (#8847)
Follow-up of #8846. Now <jpnvkeys.h>
is useless. Minor refactoring and
standardation.
JIRA issue: CORE-19268
- Replace <jpnvkeys.h> usage with
  <wine/ime.h> and fix
  VK_DBE_ENTERIMECONFIGMODE
  naming.
- Remove duplicated
  WM_IME_REPORT/IR_* and
  UNDETERMINESTRUCT definitions
  now provided by wine/ime.h.
- Introduce win3send.c half-
  implementing
  ImmSendIMEMessageExA/W.
- Add CMake option
  IMM_WIN3_SUPPORT (default: ON).
2026-04-10 08:30:56 +09:00
Katayama Hirofumi MZ
ce73ba4426 [IMM32][SDK] ImmGetCompositionString: Support GCS_PRIVATE (#8844)
Prepare for CTF IME support.
JIRA issue: CORE-19268
- Add GCS_PRIVATE (0x8000) constant,
  COMPSTR_PRIVATE structure, and
  CtfImmIsGuidMapEnable prototype
  to <imm32_undoc.h>.
- Implement GCS_PRIVATE index in
  ImmGetCompositionStringA/W.
2026-04-10 07:10:11 +09:00
Dmitry Borisov
655d3ee756 [VCRUNTIME] Fix string I/O inline asm (#8743)
Avoid clobbering buffer operands when performing string I/O operations.

CORE-20078, CORE-16216, CORE-17977
2026-04-08 19:22:24 +03:00
Katayama Hirofumi MZ
a5722b9096 [SDK] Borrow <ime.h> from Wine (#8846)
Prepare for Win3 IME support.
JIRA issue: CORE-19268
- Copy file ime.h from
  https://github.com/wine-mirror/wine/blob/master/include/ime.h
  to our sdk/include/wine/.
2026-04-08 18:03:42 +09:00
Eric Kohl
4b9adaa971 [DHCPCSVC] Add the client code and server stub for DhcpFallbackRefreshParams
DhcpFallbackRefreshParams is called by the TCPIP notification object after the alternate configuration has been changed.
2026-04-06 13:42:03 +02:00
Eric Kohl
b481fb5674 [PSDK][UUID] Add the INetCfgSysPrep, INetCfgComponentSysPrep and INetCfgComponentUpperEdge interfaces 2026-04-05 18:23:19 +02:00
Eric Kohl
22f1afe4ea [PSDK] Fix typos in INetCfgComponentSetup macros 2026-04-05 13:35:00 +02:00
Eric Kohl
bbdbe763d9 [INCUDE] Fix a typo in the INetCfgComponentControl_ApplyPnpChanges macro 2026-04-03 15:48:29 +02:00
Mikhail Tyukin
dcd45a59d1 [LIBJPEG][LIBPNG][LIBTIFF] Update (#8808)
* [LIBTIFF] Update to 4.7.1

* [LIBPNG] Update to 1.6.51

* [LIBJPEG] Update to 10
2026-04-01 17:27:34 +02:00
Justin Miller
e68ebe19c6 [NTDLL] Revert Implict ThreadLocalStorage for now (#8823)
We will continue with this stuff when we can understand the root issues better

* Revert "[NTDLL_APITEST] Relicense implicit tls tests as MIT"

This reverts commit ec6bae2b31.

* Revert "[NTDLL:LDR] Add Implicit Thread Local Storage Support (#7594)"

This reverts commit 23043ce0b8.
2026-04-01 13:56:00 +02:00
Shane Fournier
23043ce0b8 [NTDLL:LDR] Add Implicit Thread Local Storage Support (#7594)
Before Windows Vista, TLS directories were ignored by Ldr* in any module loaded after process creation, which meant that the TLS index in any delay-loaded module remained 0. This means that when running an application targeting Vista and above and its delay-load modules have TLS directories, the following events can happen:

    One or more delay-load modules claim ThreadLocalStoragePointer idx 0, resulting in data corruption and possible buffer overflows as data intended for one of the immediate-load modules is overwritten.

    None of the immediate-load modules has a TLS directory, so ThreadLocalStoragePointer is not initialized. This means that the program crashes when one of the delay-load modules attempts to access its TLS data.

Adding implicit TLS support improves support for NT 6.x/10 user-mode applications, including all contemporary major web browsers.

JIRA issue: CORE-19413

---------

Co-authored-by: Justin Miller <justin.miller@reactos.org>
2026-03-31 11:21:57 +00:00
Katayama Hirofumi MZ
863203030f [IMM32][SDK] Rename CLIENTIMC_UNKNOWN2 as CLIENTIMC_LOCKED (#8807)
Improve code readability.
JIRA issue: CORE-19268
- Rename CLIENTIMC_UNKNOWN2
  flag as CLIENTIMC_LOCKED.
- Delete unused
  CLIENTIMC_UNKNOWN4 flag.
- Fix the return value of
  Imm32AssignNewLayout function.
2026-03-30 04:39:26 +09:00
Hermès Bélusca-Maïto
a4621bb280 [NTOS:PS][NTDLL_APITESTS] Implement ThreadNameInformation for NtQuery/SetInformationThread() (#8484)
The `ThreadNameInformation` (#38) class is the Windows 10.1607+ way
of assigning a human-readable name (i.e. description) to a given
thread object, that is visible to debuggers and diagnostic tools
(e.g. WinDbg `!thread` command, Process Explorer ...), which is
useful for debugging scenarios.[^1]

Before this, the only way to assign a name to a thread for debugging
purposes was to raise a specific exception, that had to be caught and
interpreted by a supported debugger.[^2][^3]

When the thread object is being deleted (`kill.c!PspDeleteThread()`),
free the thread name if set (courtesy of Ahmed Arif, PR #8796).

References:
[^1]: https://learn.microsoft.com/en-us/visualstudio/debugger/tips-for-debugging-threads
[^2]: https://learn.microsoft.com/en-us/archive/blogs/stevejs/naming-threads-in-win32-and-net
[^3]: https://ofekshilon.com/2009/04/10/naming-threads/
2026-03-29 19:35:34 +02:00
Mikhail Tyukin
3dc66309d1 [BLUETOOTHAPIS][BTHPROPS][WINUSB] Import from wine-10.0 (#8801)
* [WINUSB] Import wine-10.0
* [BLUETOOTHAPIS][BTHPROPS] Import wine-10.0

Import wine bluetooth and usb stubs. Needed for modern applications. These dlls were added in XP sp2.
2026-03-29 02:49:33 +00:00
Katayama Hirofumi MZ
75e1d78fe9 [IMM32][SDK] imemenu.c: Rewrite IME Menu feature (#8769)
There were some design difference
comparing to Windows. Improve
IME Menu compatibility.
JIRA issue: CORE-20142
- Re-implement IME Menu.
- Modify
  ImmPutImeMenuItemsIntoMappedFile
  prototype.
2026-03-29 11:33:23 +09:00
winesync
ac322153b6 [WINHTTP] Winesync to Wine-10.0 2026-03-28 11:35:17 -07:00
Mikhail Tyukin
3908cbf5b4 [UIAUTOMATIONCORE] Import from Wine-10.0 (#8708)
* [UIAUTOMATIONCORE] import from wine-10.0
* [DXDIAG] fix build after sync

Used in many NT6+ applications like web browsers. This dll "enables assistive technology products, such as screen readers, to provide information about the UI to end users and to manipulate the UI by means other than standard input. UI Automation also allows automated test scripts to interact with the UI" according to msdn.
2026-03-28 14:17:27 +00:00
Hermès Bélusca-Maïto
e05e6c4849 [NTOS:KE][NDK] Minor enhancements to the KeFindConfiguration*Entry() routines (#8720)
- Update the SAL annotations;
- Simplify some while-loops into for-loops.
2026-03-22 20:15:50 +01:00
Eric Kohl
c364fe7fb1 [SDK][UUID] Add notification object interfaces
Add INetCfgComponentNotifyBinding, INetCfgComponentNotifyGlobal and INetCfgComponentSetup.
2026-03-22 15:04:48 +01:00
Timo Kreuzer
7cc4459d3c [SDK] wine/test.h: reduce diff to wine-10.0 (#8710)
* test.h: remove obsolete wine specific definitions - __winetest_cdecl, __winetest_va_* aren't used anymore
* Add missing winetest_ prefixes
* Rename winetest_get_thread_data
* Update global variables
* Move winetest_thread_data
* Make winetest_get_thread_data extern
* [ISAPNP_UNITTEST] Use static inline instead of FORCEINLINE (GCC complains when a non-static inine function calls a static inline function)
* Move winetest_win_skip and make it static
* Move winetest_start_todo and make it static inline
* Move winetest_start_todo and make it static inline
* Move winetest_get_failures and winetest_add_failures and make them static
* Add winetest_print_lock and winetest_print_unlock
* Add winetest_get_time and winetest_elapsed
* Add flaky support
* Add exc_filter and running_under_wine
* Move reactos specific things together
2026-03-20 20:02:12 +00:00
Hermès Bélusca-Maïto
b1a31610ac [FREELDR][KDCOM][KDGDB] Remove deprecated "IRQ" debugger command-line option
- The "IRQ" debugger option was introduced in commit 5a6adb4f13 (r2546).
  It was used by the in-kernel GDB stub, to manually wire an interrupt
  handler `GspBreakIn()` to allow the debugger to break into the system
  when a command is received on the GDB serial port.

  Side-remark:
  The hooking was done via `HalGetInterruptVector()` + `IoConnectInterrupt()`,
  but only at phase 1 initialization when the memory manager was up, which
  can be "late" enough during system boot initialization.
  Instead of using `IoConnectInterrupt()`, one could have used explicit
  `KeInitializeInterrupt()` + `KeConnectInterrupt()` calls that would
  have worked much earlier in the boot stage.

- This functionality was soon after disabled in commit c804ca06be (r2946)
  in the GDB stub (see `ntoskrnl/kd/gdbstub.c!KdGdbStubInit()`), never
  to be re-enabled again.
  It was removed completely in commit e160c0fb26 (r14799).

- Since ReactOS was (until recently) always debugged locally using the
  in-kernel KDBG debugger, break-in was done with TAB-K keypress,
  intercepted by the keyboard driver that triggered a `DbgBreakPoint()`,
  thus no break-in via serial port interrupt was necessary.

- Remote debugger break-in detection, which is the standard method that
  is used when remote-debugging using KD transport DLLs and WinDbg, was
  introduced in commit 12e7593f24 (r25984). As with the rest of debugger
  communication and as done on Windows, detection is done by polling the
  serial port at certain times, namely in the `KeUpdateSystemTime()`
  kernel procedure periodically invoked by the timer interrupt.
  This break-in detection was then erroneously removed in commit bf8b9467dc
  (r45140), and reinstated in commit 014b23b9a (r56194).

- Parsing of this "IRQ" option was copy-pasted in other modules (FreeLoader,
  KDCOM, and KDGDB), even though it was never used. The parsing was then
  removed in KDBG itself in commit 95faf65ebf, but left in the other
  modules... until now!
2026-03-19 21:52:14 +01:00
Timo Kreuzer
d31b043fff [VCRUNTIME] comutil.h: Remove redundant _variant_t::operator VARIANT()
_variant_t inherits from tagVARIANT aka VARIANT and C++ will always prioritize the built-in conversion to the base class over the use of a user-defined conversion operator.

Fixes GCC 13 warning:

In file included from C:/ReactOS/reactos/sdk/include/vcruntime/comdef.h:19,
                 from C:/ReactOS/reactos/sdk/lib/comsupp/comsupp.cpp:16:
C:/ReactOS/reactos/sdk/include/vcruntime/comutil.h:423:3: error: converting '_variant_t' to a base class 'VARIANT' {aka 'tagVARIANT'} will never use a type conversion operator [-Werror=class-conversion]
  423 |   operator VARIANT() const throw();
      |   ^~~~~~~~
2026-03-18 17:29:12 +02:00
Hermès Bélusca-Maïto
3012af5e30 [CPORTLIB][FREELDR][KD][NTOS] Move duplicated UART settings into a common header 2026-03-16 16:18:43 +01:00
Dmitry Borisov
aabd163d73 [CPORTLIB:PC98] Refactor serial support code (#8558)
CORE-17977

- Fix a bug when subsequent port detection attempts fail because of
  broken FIFO management. If FIFO logic is enabled the hardware will
  not decode the legacy 0x30 and 0x32 I/O ports.
  Therefore care should be taken when accessing these ports.

- Fix hang on boot when a serial device was not connected to the COM1 port.
  Unlike 16550, a call to `CpDoesPortExist()` for the 8251 will succeed
  even when if the user has not plug the serial port into PC-98 machine.
  (I do not know how to put the 8251 into loopback mode.)
  Fix this by checking for CTS prior to the LSR loop.

- Fix hang on boot when the chosen baud rate becomes too large due to
  `DEFAULT_DEBUG_BAUD_RATE` being set to 115200.

- Some NP21/W workarounds were being incorrectly applied,
  fix them and consolidate them into one check.

- Reuse exsisting code from the NS16550 driver to avoid code duplication.

- Rename HW definitions for better naming.

Co-authored-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
2026-03-15 22:56:14 +01:00