Commit Graph

1999 Commits

Author SHA1 Message Date
Mohammad Amin Mollazadeh
2def708122 [KERNEL32][APITESTS:KERNEL32] Implement SetSearchPathMode (#9244)
This commit implements SetSearchPathMode based on official documentations from Microsoft and Wine tests.

This is different from #3665 since it updates SearchPathW to use the configured Search Path Mode, while the older PR only introduces SetSearchPathMode with desired outputs per input. Also improves thread safety.

CORE-17586
2026-09-20 16:53:49 +00:00
Justin Miller
4dabb9e582 [PCIX] Decode fixes and 4GB+ region bar support (#9545)
I did notice our PCIX hack flags seem to be compatible with what windows is trying to do, I've kept that. Though I'm only really checking against modern windows here. I may reduce our flag list later, also i noticed our usage of them was a bit off in how we decode some information; This broke VGA for months in my development of this driver.

* [PCIX] Refuse to disable decodes for the devices Windows keeps decoding
* [PCIX] Let a 64-bit BAR be placed above 4GB
* [XDK] Enable the MemIo vista+ APIs we're really need
* [PCIX] Build a BAR requirement from named bounds
* [PCIX] Treat a BAR that implements no address bits as absent
2026-09-18 01:08:31 +00:00
Hermès Bélusca-Maïto
af191d74af [CMAKE] Cleanup include_directories() of unnecessary entries for some modules (#9520)
Cleanup for:
- base/applications: WINMINE, MSCONFIG_NEW, REGEDIT
- dll/shellext: ACPPAGE
- drivers/filesystems: CDFS, EXT2
- drivers/storage: RAMDISK, UNIATA
- win32ss: WIN32SS, WINEGDI
- sdk/include/psdk, sdk/include/reactos
2026-09-14 21:56:35 +02:00
Hermès Bélusca-Maïto
db6d5bee33 [BOOTDATA][PCIX][SDK] Fix minor "typos" (#9539)
- "PCI BIOS" instead of "ACPI BIOS".
- "PIR$" -> "$PIR".
2026-09-14 21:52:51 +02:00
Carl J. Bialorucki
cf144a03a9 [ROSBRAND] Add branding library 2026-09-14 11:59:01 -05:00
George Bișoc
8d4705fcea [RTL] Introduce newer BSD item type enums
With Windows 10/11 new enum fields were added to RTL_BSD_ITEM_TYPE namely RtlBsdPowerTransitionExtension, RtlBsdItemFeatureConfigurationState and RtlBsdItemRevocationListInfo.
Currently there's no information about what fields does RTL_BSD_ITEM_REVOCATION_LIST have at the moment, so it's stubbed out. RTL_BSD_DATA_POWER_TRANSITION_EXTENSION is used by RtlBsdPowerTransitionExtension that contains extended power information such as critical thermal shutdown and whatnot.

The source of these fields is from PHNT -> https://github.com/winsiderss/systeminformer/blob/master/phnt/include/ntrtl.h#L15124

That stuff is particularly useful when working futher on RSOH (the Red Screen of Hell feature) as we can use RtlGetSetBootStatusData to set the thermal condition bit and have this popup screen be displayed on next boot if the kernel finds out the system was running too hot.
2026-09-13 21:51:12 +02:00
Mikhail Tyukin
9699568b70 [COMDLG32] Sync to Wine-10.0 (#8821)
Sync comdlg32 to Wine-10.0 and its tests. Additionally, a lot of reactos specific code in colordlg.c has been removed as wine has it. Enable IFileDialog interface for Windows Vista or later DLL exports.

JIRA issue: CORE-20586
2026-09-12 10:34:35 -04:00
Mark Jansen
19d57369ca [KERNEL32] Port GetProcessDEPPolicy and related functions from Wine 10.1 2026-09-11 17:07:50 +02:00
George Bișoc
f63578ca7a [NDK] Add KAFFINITY_EX
Introduce KAFFINITY_EX, which it gonna be used by power related structures (like PPM).
More info https://www.geoffchappell.com/studies/windows/km/ntoskrnl/api/ke/affinity/kaffinity_ex.htm.

CORE-18969
2026-09-09 19:50:47 +02:00
Doug Lyons
a6e665264c [FSLIB] Add SAL2 annotations to sdk/include/reactos/libs/fslib/vfatlib.h (#9503)
Addendum to dc6be46b93.

CORE-20771
2026-09-08 12:37:25 -05:00
Whindmar Saksit
2b0c747398 [SDK] Don't use empty string defaultvalue for BSTR arguments (#9494)
The MS SDK changed to NULL somewhere between 10.0.14393 and 10.0.16299.
2026-09-06 15:13:50 +02:00
George Bișoc
c5318556b3 [NDK] Fix an annotation in NtGetDevicePowerState
NtGetDevicePowerState returns the power state of a device on its 2nd parameter, yet the annotation treats it like an input one. Fix that.

CORE-18969
2026-09-06 14:40:51 +02:00
Eric Kohl
9d989a975c [MMC_NEW] Add Mark Jansen's MMC Application skeleton (PR #1967)
This PR is a great start for a new C++ based MMC.
I have some improvements in my source tree which I want to add bit by bit.

My modifications to Marks PR are:
- Renamed ISnapInAbout to ISnapinAbout for compatibility reasons.
- Updated CMakeLists.txt
- Removed the patch to shellutils.h because it seems to already have been applied.
2026-09-06 12:41:11 +02:00
George Bișoc
c26c2e3342 [MC] Add DRIVER_POWER_STATE_FAILURE bugcheck code
This is used by the Power Manager kernel module to put down the system due to power failures of a driver.

CORE-18969
2026-09-05 20:09:09 +02:00
Justin Miller
1500a35309 [NTOS:IO][ARBITER][SDK] Finish the root arbiters and fix some compatibility divergences (#9482)
The root memory arbiter is the most important out of all of these. The main intention here is that there's some special ranges PCI can't ever look at it even if the firmware tries to claim it can.
This is missing a few gaps still! for example in another PR I'm going to add in the ACPI hal to reserve the ECAM space and once that is published itll also be added to the root mem arbiter.

* [ARBITER] Resolve ARBITER_RANGE_SHARED_DRIVER, fixes compat with Vista+
* [NTOS:IO] Finish the initial impl of the Root Arbiters
* [NTOS:IO][SDK] Fix RtlFindRange truncation, use the Vista+ Sig
2026-09-05 01:31:04 +00:00
Hermès Bélusca-Maïto
4b6983a6be [SDK] d3dkmddi.h: Fix newline format
Addendum to commit b3729be87e (PR #9403).
2026-09-03 16:34:43 +02:00
Justin Miller
b3729be87e [SDK] Create dispmprt.h and expand d3dkmddi.h (#9403)
---------

Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
2026-09-03 03:35:33 +00:00
Mikhail Tyukin
26c6e206fa [DBGENG] Sync to Wine-10.0 2026-09-01 14:41:09 -04:00
Hater
340f6cfec4 [BCRYPT][BCRYPT_WINETEST] Sync to WineStaging-10.6 (#8267)
Sync bcrypt/bcrypt winetest with latest wine. Implement all functionality with mbedtls. DSA is my implementation based on libtomcrypt implementation as mbedtls does not support DSA. All failing tests are wine_todo

* [BCRYPT] Split implementations in different files. Add internal header. Add precompiled header. These changes are needed to make bcrypt more wine compatible

* [BCRYPT] Update to latest bcrypt from wine. Add their gnutls implementation with small changes. Add missing function in the other implementations returning STATUS_NOT_IMPLEMENTED. WARNING! gnutls is modified just visually and is n ot compiled locally as we don't have gnutls in ReactOS for a long time and we depend on mbedtls implementation.

* [BCRYPT] Remove forgotten code. Remove hmac BOOL and use hash->flags for hmac

* [BCRYPT] Remove some dead code. Move flag defines in header. Use constant for flag

* [BCRYPT][WINETEST] Update bcrypt wine test to current version. On windows it executes 23114 tests successfully

* [MBEDTLS] Activate MD2 and MD4 hashing algorithms

* [MBEDTLS] Export additional MD functions

* [BCRYPT][WINETEST] Disable not implemented method tests

* [BCRYPT] Remove unneeded headers

* [BCRYPT] Fix some struct variables and add a hash method

* [BCRYPT] Update common crypto implementation

* [MBEDTLS] Expose AES CFB8

* [MBEDTLS] Export simetric encryption/decryption functions

* [BCRYPT] Implement symetric encryption/decryption

* [BCRYPT][WINETEST] Activate symetric encryption/decryption tests. From 22541 Only 3 fail on wine_todo

* [BCRYPT][WINETEST] Disable pbkdf tests. They crash calling function with ULONGLONG parameter

* [MBEDTLS] Export additional functions

* [BCRYPT] Expand private data size

* [BCRYPT] Implement asymetric encryption/decryption. NOTE: DSA is NOT supported by mbedtls, so it is not implemented here

* [MBEDTLS] Disable range check for mbedtls_dhm_calc_secret for ReactOS. It fails tests for key derivation

* [BCRYPT][WINETEST] Enable all tests

* [BCRYPT] Update exports

* [MBEDTLS] Add DSA implementation. It is my implementation based on libtomcrypt and adapted to mbedtls. It is NOT part of mbedtls!

* [BCRYPT] Implement DSA encryption/decryption. Use union for cipher/pk/dh/dsa keys to lower memory used for a key. Lower PRIVATE_DATA_SIZE accordingly.

* [BCRYPT] Fix missed cleanup on error paths. Fixed missed DSA key reinitialization. Change some error codes to STATUS_NO_MEMORY. Minor formatting

* [WINESYNC] Update bcrypt sync status

* [MBEDTLS] Fix double export and move an export for readability

* [BCRYPT] Enable ARC4 (RC4) algorithm

* [BCRYPT] Extend private data size to fit x64

* [WINESYNC] Update WINESYNC.txt to exclude commit hash

---------

Co-authored-by: Justin Miller <justin.miller@reactos.org>
2026-08-30 01:29:51 +00:00
Justin Miller
b272427baa [APITESTS][NTOS:PS][SDK][NTUSER] Job UI Restriction support (#9448)
Adds the initial attempt at handling the job ui restriction support. This doesn't protect the OS yet, however it provides everything we need to start implementing that protection.
2026-08-29 04:46:45 +00:00
Mohammad Amin Mollazadeh
7e8b6a400b [SDK][LIBWINE] Import debugstr_fourcc 2026-08-28 17:13:20 -04:00
Mikhail Tyukin
43a6de894e [COMPSTUI] Sync to Wine-10.0 2026-08-28 11:35:37 -04:00
Mikhail Tyukin
30266a7189 [ATL][ATL80][ATL100] Sync to Wine-10.0 2026-08-28 11:35:37 -04:00
Mikhail Tyukin
1620743e62 [ACTXPRXY] Sync to Wine-10.0 2026-08-28 11:35:37 -04:00
Eric Kohl
5483dc09a9 [UI] CTreeView: Add support for custom styles in the Create method 2026-08-24 19:52:07 +02:00
Alex Mendoza
e3188c27ad [SETUPAPI] Implement SetupDiGetActualModelsSectionA/W (#9426)
CORE-20472

For example, the installer for the NVIDIA GTX 960 driver 368.81,
requires this routine.
2026-08-23 17:53:39 +02:00
Mikhail Tyukin
fdddc528e2 [RTWORKQ] Import from wine-10.0 (#9398)
Import rtworkq.dll from Wine-10.0, required for importing wine's MediaFoundation implementation. Locked behind Windows 8.1 as apps detect for the presence of this DLL.
2026-08-22 19:32:37 -04:00
Gleb Surikov
5556344437 [NTOS:PS] Basic support for jobs in the kernel: Create/Open/Assign/Remove/Terminate/Delete (#7500)
Introduces basic job support into the kernel
supersedes the old WIP PR #40 by Mark Jansen and is partially based on it

Co-authored-by: Mark Jansen <mark.jansen@reactos.org>
Co-authored-by: Samuel Serapión Vega <encoded@reactos.org>
Co-authored-by: Timo Kreuzer <timo.kreuzer@reactos.org>
Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
2026-08-22 15:42:48 -07:00
Whindmar Saksit
93f96e592b [SHELL32][SHLWAPI][SHELL32_APITEST][SHLWAPI_APITEST] Implement IQueryAssociations::GetKey and more ASSOCSTR's (#9262) 2026-08-15 22:11:18 +02:00
Hermès Bélusca-Maïto
63f86fa73b [KERNEL32][MSAFD][NTOS:OB][CSRSRV][NDK] Rename OBJECT_HANDLE_ATTRIBUTE_INFORMATION to OBJECT_HANDLE_FLAG_INFORMATION (#9174)
This is the correct name used in the Windows SDK/WDK headers (as already
used in sdk/include/wine/winternl.h). The old name was a non-standard
alias from the open-source w32api package.

See also:
https://www.geoffchappell.com/studies/windows/km/ntoskrnl/inc/api/ntobapi/object_handle_flag_information.htm
https://ntdoc.m417z.com/object_handle_flag_information

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-08-14 22:41:30 +02:00
Hermès Bélusca-Maïto
942fab5b09 [NDK] Update the OBJECT_TYPE_INFORMATION and OBJECT_ALL_TYPES_INFORMATION structures (#9174)
- Update the `OBJECT_TYPE_INFORMATION` structure with Win8.1+ members,
  as documented by Geoff Chappell[^1] and System Informer phnt headers[^2].

[^1]: https://www.geoffchappell.com/studies/windows/km/ntoskrnl/inc/api/ntobapi/object_type_information.htm
[^2]: https://ntdoc.m417z.com/object_type_information

- Rename `OBJECT_ALL_TYPES_INFORMATION` to `OBJECT_TYPES_INFORMATION`, as
  de-facto documented by Geoff Chappell[^3] and System Informer phnt headers[^4].
  (The old names were historically taken from the "Windows NT/2000 Native API Reference" book[^5].)

[^3]: https://www.geoffchappell.com/studies/windows/km/ntoskrnl/inc/api/ntobapi/object_types_information.htm
[^4]: https://ntdoc.m417z.com/object_types_information
[^5]: https://ultradefrag.net/doc/man/Windows%20NT(2000)%20Native%20API%20Reference.pdf

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-08-14 22:41:29 +02:00
Hermès Bélusca-Maïto
b15ea057d3 [NDK][XDK] Massage object-related definitions in NDK and ntifs.h (#9174)
- NDK obtypes.h: Update the names of the `OBJECT_BASIC_INFORMATION`
  structure members, (undocumented by Microsoft but) de-facto documented
  by Geoff Chappell[^1] and System Informer phnt headers[^2].
  Make the `OBJECT_BASIC_INFORMATION` structure available for both user
  and kernel-mode code.

- NDK obtypes.h: `OB_DUMP_CONTROL` is available only for kernel-mode
  code; group all the `OBJECT_*_INFORMATION` definitions together.

- XDK: Remove `OBJECT_*_INFO` types that do not exist in the official ntifs.h

  The types: `OBJECT_BASIC_INFO`, `OBJECT_NAME_INFO`, `OBJECT_TYPE_INFO`,
  `OBJECT_ALL_TYPES_INFO`, `OBJECT_HANDLE_ATTRIBUTE_INFO`, and
  `OBJECT_PROTECTION_INFO` (this one being a duplicate of the former one),
  correspond to undocumented (by Microsoft) types, that do not
  exist in the official ntifs.h file from the Windows IFS/DDK/WDK.

  They were non-standard aliases coming from the open-source w32api
  (MinGW) package.

  Our NDK already contain these types with the de-facto documented names
  as found in Geoff Chappell[^1] and System Informer phnt headers[^4].

- NDK/XDK: Update the `OBJECT_INFORMATION_CLASS` enumeration[^3][^4] with
  Win11 values and add versioning.
  Technically, ntifs.h should *ONLY* contain a reduced version of this
  (otherwise undocumented) enumeration for the two semi-public
  `PUBLIC_OBJECT_BASIC_INFORMATION` and `PUBLIC_OBJECT_TYPE_INFORMATION`
  structures (restricted versions of the full ones, see above).
  However, our code relies a bit too much on ntifs.h for definitions
  (and NDK very often expects such kernel-mode definitions to be "already"
  defined "elsewhere" i.e. in ntifs.h and so doesn't define them otherwise),
  and the _full_ version of the `OBJECT_INFORMATION_CLASS` enumeration
  found in the NDK collides with that of the ntifs.h.
  Thus, as a temporary hack until a better solution is found, transform
  the ntifs.h `OBJECT_INFORMATION_CLASS` enumeration into the full one
  as well!

- XDK ntifs.h: Add missing `_NTIFS_` guard; add a comment about the fact
  that `_GNU_NTIFS_` is a hack only for the ext2fs driver.
  Move the `NtQueryObject()` routine to just after the `OBJECT_*_INFORMATION`
  structures.

[^1]: https://www.geoffchappell.com/studies/windows/km/ntoskrnl/inc/api/ntobapi/object_basic_information.htm
[^2]: https://ntdoc.m417z.com/object_basic_information
[^3]: https://www.geoffchappell.com/studies/windows/km/ntoskrnl/inc/api/ntobapi_x/object_information_class.htm
[^4]: https://ntdoc.m417z.com/object_information_class
2026-08-14 22:40:06 +02:00
Timo Kreuzer
49cb1cb993 [NDK] Add SYSTEM_PROCESSOR_IDLE_CYCLE_TIME_INFORMATION 2026-08-13 14:31:19 +00:00
Timo Kreuzer
09d6e3613d [XDK] Remove KeQueryTotalCycleTimeProcess
This function doesn't exist.
2026-08-13 14:31:19 +00:00
Timo Kreuzer
144fe39589 [NDK] Add CycleTime field to ETHREAD/EPROCESS/KPRCB
This is a field from NT6+. We need it for cycle time accounting.
To avoid changing the structure layout, the fields are added to the end of ETHREAD/EPROCESS, until we switch to NTDDI_VISTA, where they are part of KTHREAD/KPROCESS.
2026-08-13 14:31:19 +00:00
Justin Miller
b39a368c28 [SDK] Add CM_RESOURCE_DMA_V3 2026-08-12 21:31:58 +00:00
Justin Miller
74ddb4597e [SDK][KMTESTS:RTLRANGE] RtlRange Improvements (#9248)
* [SDK][KMTESTS:RTLRANGE] RtlRange Improvements
- Implement RtlGetLastRange (NT6.1)
- Implement RtlInvertRangeListEx (NT6.0)
- Honor AttributeAvailableMask
- Honor RTL_RANGE_SHARED_IS_VALID (In use for for PCI)
- Honor RTL_RANGE_NULL_CONFLICT_IS_VALID (In use for PCI)
- [SDK] Final RangeList bug fixes so tests pass on windows and reactos
2026-08-12 00:41:11 +00:00
Hermès Bélusca-Maïto
00b9a1c058 [SDK] neteventmsg.mc: Adjust French translation 2026-08-10 18:42:06 +02:00
Eric Kohl
c00b0a4035 [DHCPSVC][IDL] Implement DhcpRequestParams partially
Retrieve DHCP Options from the cache

- No DHCP_IMFORM requests yet
- No persistent requests yet
2026-08-09 19:54:06 +02:00
Hermès Bélusca-Maïto
34d5a35b74 [NDK][NTOSKRNL] Remove trailing whitespace in source files 2026-08-06 18:06:07 +02:00
Marcin Jabłoński
29f6b92f33 [NTOS:PS] Implement querying ProcessWow64Information and allocation of Wow64Process
CORE-17655
2026-08-06 08:36:08 +00:00
Timo Kreuzer
0e95a343b3 [NTOS:KE] Implement shared CPU vendor identification for x86/x64 2026-08-05 23:03:09 +00:00
Timo Kreuzer
e3e58ac1aa [NTOS:KE/x64] Fix KiInitializeContextThread
Copy values manually instead of calling KeContextToTrapFrame.
2026-08-01 11:05:47 +00:00
Ahmed Arif
c606fd79b1 [NTOS:FSRTL] Respect byte-range lock ownership (#9342)
FsRtlCheckLockForReadAccess() accepts access through an exclusive
byte-range lock when the IRP key matches, even if another process
owns the lock. FsRtlFastUnlockAll() likewise removes exclusive locks
without checking the Process argument.

Require both the key and requestor process for exclusive-read access,
and skip exclusive locks owned by other processes in FsRtlFastUnlockAll().
This matches the ownership checks already used by
FsRtlFastCheckLockForRead() and FsRtlFastUnlockAllByKey().

Reference:
- https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/nf-ntifs-_fsrtl_advanced_fcb_header-fsrtlfastchecklockforread
2026-07-29 21:54:44 +03:00
Ahmed Arif
4c3d15abe6 [CLANG][SDK] Add the llvm-compat runtime shim library (#9094)
llvm-mingw's static runtime (libc++, libmingwex, libc++abi, libunwind)
references symbols the NT 5.2 export surface does not provide. Add a
static library, linked into the Clang runtime chain below
DLL_EXPORT_VERSION 0x601, providing:

- C99 vsnprintf/snprintf on top of _vsnprintf/_vscprintf.
- __imp_* aliases binding dllimport references to the static CRT
  definitions instead of ucrtbase import thunks, which collide with
  them (lld: "<sym> was replaced").
- K32EnumProcessModules, forwarded to psapi's EnumProcessModules.
- The Win7 SRW lock and Vista condition variable surface, bound to the
  RTL implementation linked statically from rtl_vista. Modules get one
  self-contained, consistent synchronization implementation (ReactOS'
  lock layout is not Windows-compatible), no kernel32_vista.dll
  dependency, and stay runnable on any Windows version. Static SRW
  linking suggested by Timo Kreuzer.

Address review feedback on the llvm-compat shims:

sync_static.c now uses the proper SDK/NDK headers with WINAPI/NTAPI, imp_alias.h
moved to sdk/include/reactos and fixes the msvcrtex slot decorations too, and a
new InitOnceExecuteOnce shim lets us drop libkernel32_vista from the interface.
2026-07-29 11:27:59 +00:00
Whindmar Saksit
4fecc908e7 [SHELL32] All SHELLSTATE members must be initialized before writing to the registry (#9293)
A more reliable fix.

CORE-20585
2026-07-28 16:14:13 +02:00
Timo Kreuzer
07217d3245 [NDK][NTOS] Change Object callback types to NT6 style
This is required to support the NT6 access flags THREAD_QUERY_LIMITED_INFORMATION and THREAD_SET_LIMITED_INFORMATION.
2026-07-28 12:16:32 +00:00
Timo Kreuzer
9675f756ce [NDK] Fix definition of OB_CLOSE_METHOD 2026-07-28 12:16:32 +00:00
Ahmed ARIF
6799d7e96e [ARM64][SDK] Address intrinsic review feedback 2026-07-25 17:46:38 +00:00
Ahmed ARIF
658328ca24 [ARM64][SDK] Fix MinGW intrinsic declarations 2026-07-25 17:46:38 +00:00