Commit Graph

88686 Commits

Author SHA1 Message Date
Carl J. Bialorucki
129ef359f0 [SDK] Raise KERNEL_VERSION_PATCH_LEVEL to 17
0.4.17-dev starts now.
0.4.17-dev
2026-04-28 20:35:14 -05:00
Hermès Bélusca-Maïto
bac97c58e2 [FREELDR] Rework the contents of the FreeLoader setup, custom-boot, and NT advanced boot options menus
- Make the menu contents more dynamic; inspired by PR #8871 by Ahmed Arif.

- advopts.c: Double-relicense ntldropts.c/h to GPL-2.0-or-later or MIT,
  as most of the code in this file has been rewritten for years now.

- options.c (FreeLoader setup options menu):
  Double-relicense options.c/h to GPL-2.0-or-later or MIT, as most
  of the code in this file has been rewritten since commit 9ff4e4b9ef.
2026-04-28 23:23:25 +02:00
Hermès Bélusca-Maïto
925d227faa [FREELDR:NTLDR] Move NtLdrUpdateLoadOptions() to ntldropts.c and rename it to NtLdrUpdateOptions()
Also:
- Update SAL annotations to SAL2;
- Double-relicense ntldropts.c/h to GPL-2.0-or-later or MIT.
2026-04-28 23:23:24 +02:00
Hermès Bélusca-Maïto
b2e33f26eb [REACTOS] Merge our bootcd and livecd into an all-in-one ReactOS BootCD (#7313)
CORE-9069, CORE-13525, RELEASE-11

This new BootCD contains the functionality of both the original bootcd
(text-mode 1st-stage installer) and the livecd (that will include the
1st-stage GUI installer later).
Our separate livecd ISOs become obsolete, and this completely removes
the need for the so-called "hybridcd" ISO.

Some details:

- The "hybridcd" build target is completely removed, since now the new
  BootCD *is* basically what we used to call "hybridcd".

- The "livecd" build target is kept so far (to minimize the code changes),
  but internally I start to refer to it as "LiveImage", and is reduced
  to a minimum.

  A minimal non-bootable "liveimg.iso" is built (but currently not
  included within the BootCD). Its purpose will be to implement the
  "ReactOS Live" functionality as a RAMDISK.
  (We currently don't support other file formats apart from ISO and
  flat disk for a RAMDISK).

  The "ReactOS Live" (non-RAMDISK) is implemented by adding to the
  BootCD file tree the files from the LiveImage.
  These files add two root directories, "Profiles" and "reactos"
  (which is the SystemRoot for the non-ramdisk LiveImage).

- The minimal text-mode ReactOS installation used for the 1st-stage
  installer, including USETUP itself, and the executable for the
  1st-stage GUI installer and the reactos.cab (installation source),
  are moved to the root directory called "i386" (ideally, one directory
  per architecture).

- The "bootcdregtest" target, i.e. the ISOs we feed our testbots with,
  are left untouched, i.e. they are only constituted of the 1st-stage
  text-mode installation only, but placed in a per-architecture root
  directory ("i386", etc. as for the bootcd).

- Remove the ACPI APIC/SMP entries from bootcd.ini. They will be made
  available via the Advanced Boot Options F8 menu in Debug builds, for
  testing purposes only, in a subsequent commit.

This commit is based upon an older SVN one:
svn path=/branches/setup_improvements/; revision=75273
2026-04-28 23:11:10 +02:00
Hermès Bélusca-Maïto
16e6da0e96 [FREELDR:SETUPLDR] Add the missing known platform-specific SourcePaths where TXTSETUP.SIF can be found
And slightly improve the search loop.

- Unconditionally look into the root directory as well, in order to cover
  all possible boot disk layouts in case someone customizes the ReactOS
  boot media layout.

- Improve the `InfOpenFile()` call error handling, in order to show the
  erroneous line _iff_ the call failed because of a wrong syntax in
  TXTSETUP.SIF . Distinguish it from a failure because the file doesn't
  exist in the source path being tested (in which case, no error is shown).
2026-04-28 23:11:09 +02:00
Hermès Bélusca-Maïto
4dc1ea6c8f [BOOTDATA] Move the legide.sys entry in txtsetup.sif into the x86-specific section
The legide.sys driver, introduced in commit ae2827f481, is compiled *ONLY*
for the x86 platform (not x64 nor the others) as specified in commit 7d33f7503b.
Fix the file installation copy by moving its entry into the x86-specific section.

Addendum to commit 7174935d73 (PR #8888). CORE-17256
2026-04-28 23:07:42 +02:00
Oleg Dubinskiy
2ec1f64c96 [HDAUDBUS] Sync to the current upstream
Import the following upstream commits:
30a807de7d
76dbc244c3
afb1d55817
da286c7824
5477b93a3b
which contain new supported devices added in inf file and two bugfixes from me, which fix all playback distortions with all XP-compatible HD audio codecs.
Tested and works fine with Realtek HD audio codec R2.74 on ALC660 controller at least, but it still needs to be tested with other codecs as well (like SigmaTel etc.).
Also update the commit hash in 3rd party files.txt appropriately.
2026-04-27 23:05:40 +02:00
Katayama Hirofumi MZ
262842c39b [SHLWAPI] PathIsDirectory: Support UNC Server Share (#8907)
Implementing missing features... We lack network support.
JIRA issue: CORE-19278, CORE-17923
Implement network support on PathIsDirectoryA/W functions.
2026-04-27 14:35:31 +09:00
Eric Kohl
a2c594187e [NETCFGX] Fix the call to wcsicmp which broke the MSVC builds 2026-04-26 17:54:11 +02:00
Eric Kohl
9b450d9f7f [NETCFGX] Rewrite the TCPIP notify object and improve the Components interface to the notify object
In order to make the notify object interfaces available to the component interface, the TCPIP notify objects initialization needed to be rewritten. The Initialize method must retrieve the information for all network interfaces from the registry and the SetContext method selects the interface that will be modified by the RaisePropertyUi method. This is required to make the PropertyUi interface optional. The notify object can now be initialized and used without conflicts with the PropertyUi interface.

I also improved the ApplyRegistryChanges and ApplyPnpChanges methods. They have improved checks property changes, e.g. only changed properties are written to the registry.

TODO:
- Fix the alternate configuration and filter settings.
- Do not use fixed sized property string buffers.
- Improve checks for changed properties.
2026-04-26 17:14:37 +02:00
Timo Kreuzer
7ab226a130 [ROSAUTOTEST] Fix ReactOS detection
bootcdregtest installs ReactOS into "c:\Windows", therefore the old detection method of checking the "Windows" directory no longer works.

A previous change tried to fix this by adding "|| IsReactOS()", but that resolves to CConfiguration::IsReactOS(), which simply returns m_IsReactOS.

Use ::IsReactOS() instead to get our versionhelper function.
2026-04-26 11:22:14 +00: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
Timo Kreuzer
e5bf20d865 [USER32_APITEST] Fix stack corruption
Found by /RTC1
2026-04-24 14:17:58 +00: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
5ab1ff188c [NTUSER][ENG] Remove needless comments (#8896)
JIRA issue: N/A
2026-04-24 07:02:23 +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
eb9a73c975 [NTUSER] IntImmProcessKey: Use KF_... flags (#8897)
A tiny refactoring for code readability.
JIRA issue: CORE-19268
Use HIWORD macro and KF_...
constants.
2026-04-23 22:53:36 +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
081a6366df [KSECDD][NTOS][RTL] Change license of some of my code to MIT 2026-04-23 12:39:01 +00: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
Timo Kreuzer
02c744d542 [USER32_WINETEST] Skip a test that breaks ReactOS
Desktops cannot be deleted once they got switched to, so they cause leakage of kernel address space and later failures.
See CORE-20552
2026-04-22 13:11:19 +00:00
Timo Kreuzer
c950e66c31 [USER32_WINETEST] Fix usage of non-conforming swprintf
The code is using the conforming version, but _CRT_NON_CONFORMING_SWPRINTFS was defined, which caused it to crash. After removing the definition, MSVC throws a warning about an invalid argument for the format string, so fix that as well.
2026-04-22 13:11:19 +00:00
Carl J. Bialorucki
7174935d73 [BOOTDATA] Fix legide.sys load on boot (#8888)
After merging the new ATA driver, FreeLdr complains about not being able
to load legide.sys. Fix that by adding legide.sys driver to txtsetup.sif
so FreeLoader can load it.

Addendum to ae2827f481. CORE-17256
2026-04-22 10:28:38 +03: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
7d33f7503b [UNIATA] Disable the driver and enable the new ATA stack
Also fix descriptions for devices 1166:0241 and 1166:0242.
See https://bugzilla.kernel.org/show_bug.cgi?id=10424 and
aeb74914ef

CORE-17256
2026-04-21 15:01:22 -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
5418987cb8 [HALX86:DMA] HACK: Avoid excessive stack usage
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
Dmitry Borisov
c741c39025 [ATAPI] Disable the driver 2026-04-21 15:01:22 -05:00
Timo Kreuzer
c7a4ea9d48 [CRT] Remove _mbstrlen 2026-04-21 13:13:33 +00:00
Timo Kreuzer
420a4bc9cb [FREELDR] Add NlsLeadByteInfo to rtl/nlsboot.c 2026-04-21 13:13:33 +00: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
b0c8475980 [NETCFGX] Reorder and rename notification object interfaces
- Retrieve the INetCfgComponentControl interface first because it is the only mandatory interface.
- INetCfgComponentPropertyUi is optional. Query it from the INetCfgComponentControl interface.
2026-04-20 22:31:21 +02:00
Katayama Hirofumi MZ
98bebe868b [SHELL32] Implement SHUpdateImageA (#8880)
JIRA issue: CORE-19278
Co-authored-by: Vitaly Orekhov <vkvo2000@vivaldi.net>
2026-04-21 01:18:48 +09:00
Katayama Hirofumi MZ
547a20060b [SHLWAPI] Implement IsInternetESCEnabled (#8876)
JIRA issue: CORE-19278
2026-04-20 22:07:20 +09:00
Katayama Hirofumi MZ
ffa1c541aa [MSCTFIME][CICERO] Implement CicProfile::GetActiveLanguageProfile (#8869)
Supporting CTF IMEs.
JIRA issue: CORE-19360
- Add base/ctf/cicero/ciciface.h to
  add CicInterface_RefCnt template
  class.
- Add CicProfile::
  LanguageProfilesCallback callback
  function.
- Implement CicProfile::
  GetActiveLanguageProfile and
  CicProfile::IsIME functions.
2026-04-20 21:51:45 +09:00
Eric Kohl
01a0906924 [NETCFGX] Move the pointer(s) to notification object interfaces into the component item 2026-04-19 23:41:59 +02:00
Katayama Hirofumi MZ
1bdaeee30f [CICERO] Add CicFirstInFirstOut (cicfifo.h) (#8870)
Supporting CTF IMEs. This FIFO
will be used in TRANSMSG handling.
JIRA issue: CORE-19360
- Add base/ctf/cicero/cicfifo.h.
- Implement CicFirstInFirstOut
  template class.
2026-04-19 20:05:27 +09:00
Eric Kohl
89221f5d55 [DNSRSLVR][NETCFGX] Notify the dnscache service if the names list changed 2026-04-18 23:17:00 +02:00
Eric Kohl
0bd6afd1a8 [DHCPCSVC] Set the AddressType value for network interfaces
AddressType 0: Static address, DHCP provided address or static address from alternate configuration
AddressType 1: Automatic Private IP Address (APIPA)
2026-04-18 16:51:17 +02:00
Katayama Hirofumi MZ
9533ad790a [WINSRV] ConioWriteConsole: Modify update rect for CJK (#8859)
Correctly displaying Asian characters
on Asian Console.
JIRA issue: CORE-18972
Modify the update rectangle for Chinese,
Japanese, and Korean.
2026-04-17 00:59:34 +09:00