Commit Graph
88683 Commits
Author SHA1 Message Date
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:
https://github.com/coolstar/sklhdaudbus/commit/30a807de7d7934045161afc93f8ef11ac7a73c91
https://github.com/coolstar/sklhdaudbus/commit/76dbc244c36645796df03c53ddc6122e059e2d62
https://github.com/coolstar/sklhdaudbus/commit/afb1d55817a233707344cb47c5f80863685f1d76
https://github.com/coolstar/sklhdaudbus/commit/da286c7824405f3255dc3d97700042f2245f854f
https://github.com/coolstar/sklhdaudbus/commit/5477b93a3b68c474819abf2094a49d0e2d8d9799
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 <[email protected]>
Co-authored-by: Hermès BÉLUSCA - MAÏTO <[email protected]>
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
https://github.com/torvalds/linux/commit/aeb74914ef0e6746f15b11c0399048de9c5c05b8

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 <[email protected]>
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 <[email protected]>
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
Hermès Bélusca-Maïto a2269ef7f9 [BOOTDATA] hivesys.inf: "OsLoaderPath" and "SystemPartition" shouldn't be pre-hardcoded
These two registry values, stored in `HKEY_LOCAL_MACHINE\SYSTEM\Setup`,
are generated at runtime by the kernel; they are based on the current
values of: `LoaderBlock->NtHalPathName` and `LoaderBlock->ArcBootDeviceName`
respectively.

In particular, hardcoding `SystemPartition` to a default value
"\Device\Harddisk0\Partition1" , would be as random as hardcoding it
to anything else, since nothing justifies that there exists a partition
on the first harddisk, and if there is one, nothing guarantees that it
is one that was used to boot the operating system... Especially when
booting a LiveCD!
2026-04-16 17:43:40 +02:00
Hermès Bélusca-Maïto aa8d624253 [SMSS] "BootDir" value creation: Fix fallback code
Addendum to commit c498d0930a.

`SmpTranslateSystemPartitionInformation()`: Reset the `DirInfo->Name.Buffer`
to use the `DirInfoBuffer` scratch area, before doing the OS boot drive letter
fallback. Otherwise, writing directly to `DirInfo->Name.Buffer` would
use its old value, that is going to be `NULL` when the calls to
`NtQueryDirectoryObject()` failed, and this would induce a memory access
crash.

Take also the opportunity to use structures embedding the
`KEY_VALUE_PARTIAL_INFORMATION` and `OBJECT_DIRECTORY_INFORMATION`
data headers, instead of straight `CHAR` arrays. This allows the
structures to use the correct memory alignments required by these
data headers.
2026-04-16 16:11:55 +02:00
Hermès Bélusca-Maïto e2c92c0ffb [FREELDR] Switch partition interface to using the more generic PARTITION_INFORMATION
instead of the MBR-specific PARTITION_TABLE_ENTRY structure.

Simplify also some aspects of the code:

- for MBR code, avoid copying around partition entries, but use
  pointers instead;

- more generally, use the actual disk sector size instead of guessing,
  and pass it to the partition interface routines.
2026-04-15 18:19:20 +02:00