132 Commits
Author SHA1 Message Date
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 f6efc98b37 [ARM64][SDK] Add MinGW intrinsics support
Add the ARM64 MinGW intrinsics and SDK constants validated by the ARM64 bring-up work.
2026-07-25 17:46:38 +00:00
Timo Kreuzer 731ff54e56 [XDK] Fix C++ definition of RTL_NUMBER_OF_V2 for GCC 2026-07-07 11:32:08 +00:00
Justin Miller 5cef1f68e3 [SDK] kernelbase SDK changes 2026-06-24 15:27:43 -07:00
Hermès Bélusca-Maïto c0f1450076 [NDK][XDK][SYSUTILS:PS] Update the KWAIT_REASON enumeration
Validated with the System Informer phnt headers[^1].
Versioning added for Windows 8+ values, from Vergilius[^2].

[^1]: phnt headers and documentation from:
  https://ntdoc.m417z.com/kwait_reason
  https://github.com/winsiderss/systeminformer/blob/5311c5ff7ebe0a900a792730395faf147d4451b9/phnt/include/ntkeapi.h#L49

[^2]: https://www.vergiliusproject.com
2026-06-11 22:40:28 +02:00
Timo Kreuzer 11ab9c2717 [XDK] Add missing PRODUCT_* definitions 2026-05-19 14:40:01 +00:00
Serge Gautherie 25a6fdf867 [NTOS:MM] Convert some annotations to SAL2 and fix them
And add a specific ASSERT(SectionOffset) in MmMapViewOfSection().
2026-05-10 11:05:30 +00:00
Carl J. Bialorucki 94e7bbcc6b [SDK] Update some headers
Preparation for ntdll_winetest sync.
2026-05-05 07:44:54 +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
Adam Słaboń 8a2864dd11 [SDK] Update HAL private dispatch table definitions to Windows 10 November 2015 Update (#8235)
Mostly based on the information on Geoff Chappell's website, Vergilius Project and WDK 10.0.10586.0
2026-03-08 19:04:17 +01:00
Hermès Bélusca-Maïto 9bf854455c [SDK:XDK] extypes.h: Update WORK_QUEUE_TYPE with Win8+ values (#8651) 2026-03-08 18:30:24 +01:00
Carl J. Bialorucki 391875028d [INCLUDE/WINE][PSDK][XDK] Header changes needed for advapi32 winetest sync to wine-10.0
- [INCLUDE/WINE] Import ntlsa.h, ntsecapi.h, winsvc.h from wine-10.0
- [PSDK] Fix some header definitions to make them more accurate to Microsoft's headers and add some missing definitions
- [XDK] Add a fix for PROCESS_ALL_ACCESS on Vista+ (matches Microsoft's headers)
- [COMDLG32] Remove unneeded _WIN32_WINNT bump after fixing headers
- [SETUPAPI] Remove duplicate definitions that are no longer needed after fixing headers
2026-03-03 22:07:59 -06:00
Timo Kreuzer 1f97ad1f93 [RTL] Sync actctx.c to wine 10.0 2026-03-01 10:38:42 +02:00
Timo Kreuzer 87502c1082 [XDK] winnt_old.h: Fix definition of __WINE_MALLOC / __WINE_DEALLOC
This is to prevent redefinition warnings when including wine's corecrt.h
The additional !defined(malloc) prevents errors when compiling libwine, which defines malloc to libwine_malloc.
2025-12-12 12:21:53 +02:00
George Bișoc 0f30e8163e [NTOS:PS] Annotate the Query/Set related functions with SAL2
- Annotate the functions in query.c file with SAL2 of which they weren't annotated before
- Use _Out_writes_bytes_to_opt_ to further clarify the output parameter is being written to it based on the length size provided.
This is so the code analyzer understands such a parameter is being written into only the specific amount of bytes.
2025-12-01 22:22:00 +01:00
5a36dd6006 [SDK] Small SDK fixes for ARM64 - Prepping for GCC work (#8458)
* [SDK] add ARM64 entry to ioaccess.h
* [SDK] Add arm64 target to win64 spec2def entry
* [SDK] Implement NtCurrentTeb for ARM64
CORE-18200

Co-authored-by: Laura Konopinska <[email protected]>
Co-authored-by: Hermès BÉLUSCA - MAÏTO <[email protected]>
2025-11-17 05:47:53 -08:00
Hermès Bélusca-Maïto a912f8900c [PSDK] Improve the DECLSPEC_NOINITALL definition (#8438)
Addendum to commit 73b54ce2a6.

Conditionally define it on the `_MSC_VER >= 1915, and add the other
`MIDL_PASS` and co. guard checks as in the official Windows PSDK.

Additionally, no-op the define for Clang to silence the following
warnings:
```
sdk\include\ddk\ntddk.h(2050,35): warning: __declspec attribute 'no_init_all' is not supported [-Wignored-attributes]
sdk\include\psdk\ntdef.h(40,95): note: expanded from macro 'DECLSPEC_NOINITALL'
```
Granted, this may be due to the fact our GitHub actions currently use
Clang 13.0.1:
```
-- The C compiler identification is Clang 13.0.1 with MSVC-like command-line
-- The CXX compiler identification is Clang 13.0.1 with MSVC-like command-line
```
while support for `no_init_all` may have been added for Clang 22.0.0,
if https://clang.llvm.org/docs/AttributeReference.html#no-init-all is correct.
(See PR https://github.com/llvm/llvm-project/pull/116847 )
2025-11-06 21:53:25 +01:00
3fe5b8b0bb [SDK][WDF][USBDEX][NTOSKRNL_VISTA] Fully enable KMDF (#8396)
[SDK][WDFLDR] Add kmdf loader driver
[SDK][WDF] Add kmdf drver init static library
[SDK][WDF] Modify kmdf driver for working with wdfldr driver
[SDK][CDROM] Cdrom driver dynamically linking with kmdf
[SDK][WDF] Add kmdfdriver module type
[SDK][WDF][USBDEX][NTOSKRNL_VISTA] Fully enable KMDF
[KMDF][WDFLDR][WDF01000] Fix Windows 10 Compatibility WDFLDR and WDF01000
[WDF01000] NO_KERNEL_LIST_ENTRY_CHECKS for wdf01000 3rd party code

This PR is an accumulation of three peoples work, with the goal of the trying to get WDF to work like it should.
This has been tested in combination with some extra NT6+ ntoskrnl against multiple drivers.

---------

Co-authored-by: Max Korostil <[email protected]>
Co-authored-by: Victor Perevertkin <[email protected]>
Co-authored-by: Adam Słaboń <[email protected]>
Co-authored-by: Hermès BÉLUSCA - MAÏTO <[email protected]>
2025-11-03 06:38:52 -08:00
Mohammed al-Ramadany 2a0acdbadc [KMTESTS] Kmtest fixes (#8308)
- [KMTEST:IOFILESYSTEM] Add support for NTFS
- [KMTEST:IODEVICEOBJECT] Work around a Windows 7 bug, account for struct size changes on x64, accept Vista+ behavior
- [KMTEST:EXPOOLS] Accept pool being promoted to NonPaged on Vista+, accept 2GB allocation on x64, guard an undocumented behavior
- [KMTEST:CMSECURITY] Add tests for Vista-Win8.1
2025-09-30 10:57:23 -05:00
Timo Kreuzer 5a8c36d9a1 [SDK] Remove header definitions of __ROS_LONG64__
These were totally pointless, because the condition was never true.
2025-09-11 09:17:13 +03:00
Timo Kreuzer 80bef4fe40 [XDK][NTOS:KE] Update XSAVE_AREA 2025-08-22 09:12:51 +03:00
Timo Kreuzer 73b54ce2a6 [PSDK] Improve some headers 2025-08-03 10:37:24 +03:00
Timo Kreuzer d6cfd00ae2 [XDK] Add Read/Write helper functions 2025-08-03 10:37:24 +03:00
Timo Kreuzer e195303889 [PSDK][XDK] Update some definitions 2025-07-31 16:00:13 +03:00
George Bișoc 624c3fd847 [SDK] Introduce the PO GUID library
This library aims to include all the public and global power manager related GUID identifiers into one shared library, of which they can be accessed across multiple modules of ReactOS, e.g. the kernel, ACPI, PCI, et al.

This patch is needed for the development of the Power Manager (#5719) to continue.

CORE-18969
2025-07-16 20:15:15 +02:00
Carl J. Bialorucki a753f34e30 [PSDK][XDK][NDK][INCLUDE/WINE] Make header changes to sync crypt32, kernel32, and user32 winetests (#8114)
- [PSDK] Sync wincrypt.h to Wine 10.0, keeping our SAL annotated function definitions behind an #ifdef guard
- [XDK] Add definitions to our winnt header that Wine 10.0's winternl.h depends on.
- [INCLUDE/WINE] Sync winternl.h to Wine 10.0
- [OTHER] Fix breaking changes with the synced winternl.h.
2025-07-05 15:14:31 -06:00
Timo Kreuzer 0f2f124c3a [XDK][NDK] Add XSTATE hacks 2025-06-21 07:55:06 +00:00
Timo Kreuzer 9ea129b8a9 [XDK][NDK] Avoid code duplication by generating more definitions for winnt.h 2025-06-21 07:55:06 +00:00
Timo Kreuzer 8d2d9b803a [NDK][XDK] Fix XSTATE_CONFIGURATION a bit 2025-06-21 07:55:06 +00:00
Justin MillerandHermès BÉLUSCA - MAÏTO 45eff312cb [SDK][XDK][PSDK] Grab header changes needed for Wine-10.0 KernelBase (#8047)
* [SDK] Update ThreadInfoClass to wine-10.0

* [SDK][MODULES] Fix a test and add wine-10 entries to headers

Co-authored-by: Hermès BÉLUSCA - MAÏTO <[email protected]>
2025-05-31 17:20:02 -07:00
Timo Kreuzer 06034b258a [XDK] Some GCC/wine compatibility fixes 2025-05-20 18:13:16 +00:00
Timo Kreuzer ada4584cb6 [PSDK] make winnt.h compile with rtlsupportapi.h 2025-05-20 18:13:16 +00:00
Timo Kreuzer 95caf762d4 [XDK] Add missing _InlineInterlockedAdd 2025-05-20 18:13:16 +00:00
Timo Kreuzer fb8e6124e0 [NDK][XDK] Update definition of KUSER_SHARED_DATA with tests 2025-05-04 07:24:40 +00:00
Dmitry Borisov c27a2fc7cb [XDK] Add missing PCI subclass type definition for AHCI controllers (#7931)
Split out of #6577. CORE-17256
2025-04-27 23:04:41 +03:00
Hermès Bélusca-Maïto 111c8cc62a [REACTOS] Usage improvements for some RtlFindMessage invocations (#6023)
Use `RT_MESSAGETABLE` and `MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL)`
instead of hardcoding their values.
2025-04-08 20:19:54 +02:00
Timo Kreuzer c7eba0c5c7 [SDK] Improve definition of (RTL_)CRITICAL_SECTION_DEBUG 2025-03-27 12:50:40 +00:00
Katayama Hirofumi MZ 6a95219ed3 [REACTOS] Don't use DLL_WINE_PREATTACH macro (#7802)
Related to #7800. Reduce code dependency on Wine.
JIRA issue: CORE-5743
- Wrap DLL_WINE_PREATTACH usage by #ifndef
  __REACTOS__ and #endif.
- Undefine DLL_WINE_PREATTACH macro in
  sdk/include/xdk/winnt_old.h.
2025-03-22 08:04:55 +09:00
Ratin Gao ccf1e97aa1 [NTDLL_VISTA:LDR] Implement DLL Notification (#6795)
Implement DLL Load Notification, an NT6+ feature.
https://learn.microsoft.com/en-us/windows/win32/devnotes/dll-load-notification

- [RTL] Sync `RTL_STATIC_LIST_HEAD` and `RtlFailFast` from XDK to NDK.
- [NTDLL_VISTA] Introduce ntdll_vista_static static library and link both ntdll_vista and ntdll to it.
- [NDK][LDR] Add and fix DLL Notification definitions.
- [NTDLL_VISTA] Code improvements.
- [NTDLL_VISTA:LDR] Implement Dll Notification.
- [NTDLL][NTDLL_APITEST] Add Dll Notification API test.
2025-03-02 21:13:33 +01:00
Justin Miller 0bf42067d2 [KERNEL32][ROSTESTS][SDK] Enable threadpooling
[NTDLL] Init KeyedEvents even on NT5.2 dll_export
[MEDIA] Update winesync.txt accordingly
[SDK][DLL] Initialize crtical sections at runtime
2025-01-26 23:30:59 -08:00
Denis Malikov 405ed2b4ce [KERNEL32_VISTA][SDK] Import Threadpool.c from wine-9.7 2025-01-26 23:30:59 -08:00
Hermès Bélusca-Maïto 381e224f6b [SDK] Fix the automatic definition of __ROS_LONG64__ (#7576)
It is not wishable anymore to automatically define __ROS_LONG64__
whenever __WINESRC__ is defined. Indeed, Wine now has started to
introduce the possibility to "Enable compilation with long types".

Thus, for these modules we import from them, we want to be able to
define __WINESRC__ without __ROS_LONG64__ automatically defined.

Addendum to commits 89c3520c86 (r73383) and 75eeb2a7e4 (r38872).
2025-01-16 18:13:19 +01:00
Timo Kreuzer db5fa3bffc [SDK] Add some missing definitions 2024-11-04 08:42:34 +02:00
Oleg Dubinskiy 83d74e7433 [NTOS:MM] Implement MmAllocate/FreeMappingAddress (#7260)
Implement MmAllocateMappingAddress and MmFreeMappingAddress routines.
Based on mm-implement-mappingaddress.patch by Thomas Faber with some changes from me.
Required by Microsoft NTFS driver (from Windows Server 2003 SP2 only, the one from Windows XP SP3 does not need them) and by NDIS & TDI drivers (both from Windows XP SP3 and Windows Server 2003 SP2). Also they are called when using Dr. Web Security Space 8 filter drivers together with MS FltMgr & TDI.
Fortunately, this part (these two routines) are enough to get the drivers working in both cases, and others (partially incomplete) routines are not badly required, so they can be finished and committed later.
CORE-10147, CORE-14635, CORE-17409, CORE-19318
2024-11-02 15:10:51 +01:00
Timo Kreuzer a0bbb9ef99 [XDK] Improve unaligned pointer read macros
- The #if was missing x86 (Windows SDK bug!)
- The unaligned attribute was on the wrong side (Windows SDK bug!)
- Add a comment that these are unsafe and shouldn't be used
2024-09-15 12:09:09 +03:00
Timo Kreuzer b5531f5126 [XDK] Add RtlFindNextForwardRunSet for wdm.h
Windows DDK doesn't have it, but I think it won't hurt to have it.
2024-09-14 20:15:07 +03:00
Justin Miller bc6c731db3 [KERNEL32_VISTA][SDK] Move SRW definitions to NDK (#6806)
Move SRW and condition variable definitions out of kernel32_vista and into the NDK.

Essentially grabbed from PR #1190
Trying to reduce diff needed for Rtl/ntdll sync.
2024-06-11 22:03:57 +02:00
Hermès Bélusca-Maïto 352b7f6785 [SDK:NDK/XDK] Sync NtCurrentTeb() definitions between NDK and PSDK winnt.h (#6542)
The definitions in the NDK inline_ntcurrentteb.h and psfuncs.h files are
synced togther with those of winnt.h (in the winnt_old.h generator file).

See commits c1929445d (r49627) and 925c587c8 (r56318).

IMPORTANT NOTE: The ARM64 definition does not exist yet in our headers!
2024-03-10 17:10:50 +01:00
Hermès Bélusca-Maïto cec7adb97f [SDK:NDK/XDK] Adjust the KeGetPcr() ARM definition (#6542)
Re-enable the KIPCR() macro and use it for KeGetPcr()
and KeGetCurrentProcessorNumber() definitions.
2024-03-10 17:09:36 +01:00
Hermès Bélusca-Maïto bf9cac8a67 [SDK:NDK/XDK] Remove x86 KeGetPcr() definition from the DDK (#6526)
The official MS DDK/WDK does not expose KeGetPcr() for x86, so do
not expose it there as well. Use instead the private NDK definition.

If it were exposed in the DDK/WDK, it would have to be a
multiprocessor-compatible definition.

Note that the broken definition was working only in single-processor
mode, using the PCR static memory pointer value.
The official MS DDK/WDK exposes KeGetPcr() as an alias to such a
PCR value only for IA64, MIPS and PPC, which is of course not great.
2024-03-10 16:55:44 +01:00