Commit Graph

3490 Commits

Author SHA1 Message Date
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
Justin Miller
b19eba558c [SDK] Sign all reactos drivers with the testbot (#8404)
This allows if the directory with the tools exists to trigger sign tool on all MSVC builds.
2025-09-30 02:18:08 +00:00
Carl J. Bialorucki
5f243e66b6 [COM_APITEST][INCLUDE/REACTOS][PSDK] Fix com tests for WS03, Vista+ (#8343)
[COM_APITEST]
- Add NTDDI version gating to classes and interfaces in tests
- Remove rigid offset tests. Instead, offsets to known interfaces can be logged by defining LOG_COM_INTERFACE_OFFSETS.
- Replace the noreg member of the known interfaces array with a function pointer that can be used to determine if a com test should be globally registered depending on the current NTDDI version. I could probably replace this with a min and max registered NTDDI value, but I thought this was confusing for interfaces that are never globally registered.

[INCLUDE/REACTOS]
- Rename the existing interface definition for IShellBrowserService to IShellBrowserService_XP at {1307EE17-EA83-49EB-96B2-3A28E2D7048A}. This only exists on XP and Server 2003, no earlier or later versions.
- Rename IID_IShellBrowserServce to IID_IShellBrowserService since this definition is correct for Windows 7+ at {DFBC7E30-F9E5-455F-88F8-FA98C1E494CA}
- Add an interface definition for IShellBrowserService4 at {F5A24314-5B8B-44FA-BC2E-31285544B520}. This definition for IShellBrowserService exists for Vista only and no other version.

[PSDK]
- Add a define for NTDDI_WIN7SP1. While this isn't defined in the public Windows headers, it clearly exists in private headers because it is referenced in the public WinBase.h header.
2025-09-29 08:33:38 -05:00
Eric Kohl
f5204f85b1 [PSDK] Fixes for _IP_ADAPTER_ANYCAST_ADDRESS_XP and _IP_ADAPTER_MULTICAST_ADDRESS_XP
Addendum to 43548291.
2025-09-27 23:23:05 +02:00
Carl J. Bialorucki
435482912c [PSDK][INCLUDE/WINE] Header changes needed for iphlpapi, shlwapi, advapi32, and kernel32 winetest syncs (#8317)
- [INCLUDE/WINE] Add synced Wine headers for the iphlpapi winetest to use. This helps us slowly decouple our headers and wine's headers.
- [PSDK] Add definitions we are missing for other winetest syncs.
- [WINETESTS][APITESTS] Fix breaking changes, remove duplicate definitions for debugstr_guid.
2025-09-25 17:54:18 -05:00
Eric Kohl
918bc859a9 [NETSH] Create a root helper object
The root helper object is required to load ifmon.dll from WinXP.
2025-09-21 23:55:18 +02:00
Hermès Bélusca-Maïto
fa7eca6cd9 [NDK] Expose RtlUnhandledExceptionFilter2() (#8353) 2025-09-21 15:18:15 +02:00
Hermès Bélusca-Maïto
db69a9a7e1 [RTL][NDK] Improve RtlUnhandledExceptionFilter(2) (#8353)
- Reimplement `RtlUnhandledExceptionFilter()` by just calling
  `RtlUnhandledExceptionFilter2()`.

- Return an adequate exception filter value `EXCEPTION_CONTINUE_SEARCH`
  from `RtlUnhandledExceptionFilter2()`, instead of some random error.
  If `ExceptionCode` is `STATUS_POSSIBLE_DEADLOCK` however, return
  `EXCEPTION_CONTINUE_EXECUTION` instead, as shown by a test from Whindmar Saksit.

- The second parameter of `RtlUnhandledExceptionFilter2()` is not
  a flag, but a pointer to string `PCSTR` !
  See https://skanthak.hier-im-netz.de/download/NTDLL.H
  who is the only one online who has the correct definition,
  whose usage I've double-checked on Win7 ntdll.dll.

  This is used in the `<function_name>` slot in the displayed
  debugger message:
  ```
  *** An Access Violation occurred in <program_command_line>:<function_name>
  The instruction at <address> tried to write to a NULL pointer
  ```
  For example, see: https://community.osr.com/t/access-violation/33435
2025-09-21 15:18:14 +02:00
Hermès Bélusca-Maïto
92f680dddb [NDK] Fix the RTLP_UNHANDLED_EXCEPTION_FILTER type (#8353)
Confirmed with the System Informer phnt headers.
2025-09-21 15:18:13 +02:00
Timo Kreuzer
11bb8e4ed0 [RTL] Fix dynamic function tables 2025-09-16 16:23:37 +03:00
Hermès Bélusca-Maïto
ae4c5b9a8d [NDK] potypes.h: Add useful macros for SYSTEM_POWER_CAPABILITIES (#8386)
Add useful macros, similar to the powrprof.dll `IsPwr*()` functions,
but that are suitable when one has a `SYSTEM_POWER_CAPABILITIES`
structure initialized from `NtPowerInformation(SystemPowerCapabilities)`.

- `IS_PWR_SUSPEND_ALLOWED()`, equivalent to `IsPwrSuspendAllowed()`,
  indicating whether any of the S1, S2, S3 sleep states are supported.

- `IS_PWR_HIBERNATE_ALLOWED()`, equivalent to `IsPwrHibernateAllowed()`,
  indicating whether the S4 sleep state is supported and the
  hibernation file is present.

- `IS_PWR_POWEROFF_ALLOWED()`, equivalent to `IsPwrShutdownAllowed()`,
  indicating whether the S5 "soft-off" state is supported.
2025-09-15 16:40:49 +02:00
Timo Kreuzer
571ac5e608 [NTOS:PO] Implement SystemBatteryState in NtPowerInformation
This should get us proper battery status display.
2025-09-13 11:38:38 +03: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
Whindmar Saksit
87df3ea3e1 [SHLWAPI][EXPLORER] Implement OS_SERVERADMINUI (#7051)
OS_SERVERADMINUI changes minor things in Explorer, the most visible is that the default folder view mode changes from large icons to details
2025-09-04 19:25:43 +02:00
Mark Jansen
db57e02d6b [APPCOMPAT] Add RendererFull3D flag
This flag will be used for DDraw experiments.
CORE-20322
2025-09-04 15:23:48 +02:00
Timo Kreuzer
d50b8c93fb [PSEH] Fix a bug with try inside except
PSEH has 2 scopes: an outer scope, that starts with _SEH3_TRY and ends with _SEH3_END, and an inner scope that goes around the try block only. PSEH tracks try-levels by using an enum, which increments at every new TRY scrope, and which needs to be accessible in the outer scope for all registration and cleanup to work. But it should only increment when nested within the inner try scope, not from the except scope. This is fixed by adding an additional _SEH3$_InnerTryLevel, which increments only within the try block, but resets to the parent-value outside of it.

Should fix CORE-20316.
2025-08-30 17:09:02 +03:00
Justin Miller
47d6b3ae12 [CMAKE] Globally add -Wno-format (#8352)
We've talked about doing this, We thought about doing this,
we do it for half the modules when we sync them anyway.

Let's just do it.
2025-08-28 13:18:35 -07:00
Hermès Bélusca-Maïto
320bc52fb4 [NDK][RTL] Use LOGICAL also for RtlIsCriticalSectionLocked(ByThread)
This change has been validated with the System Informer phnt headers.
2025-08-25 23:11:57 +02:00
Hermès Bélusca-Maïto
ef5eadafb1 [NDK][RTL] Fix RtlTryEnterCriticalSection() return type
The Win32 TryEnterCriticalSection(), which returns a 32-bit BOOL,
directly redirects to NTDLL!RtlTryEnterCriticalSection().

The latter should therefore return a 32-bit boolean as well:
use the LOGICAL type for this purpose. This change has been
validated with the System Informer phnt headers.

This mismatch was caught by Marcin Jabłoński (TheNNX).
2025-08-25 23:11:56 +02:00
Hermès Bélusca-Maïto
e250b3fd01 [NDK][KMTESTS] Move the LOGICAL type definition to NDK
The LOGICAL (32-bit boolean) type is already defined for kernel-mode
in the XDK/DDK ntdef.h header. Add the type in the NDK for usage in
user-mode NT code also.

The definition present in kmt_platform.h can now be removed, since
it can now use the one from the NDK.
2025-08-25 23:11:45 +02:00
Hermès Bélusca-Maïto
99c4f7c95a [FREETYPE] Fix 2nd parameter of FT_Library_SetLcdGeometry()
2nd parameter of FT_Library_SetLcdGeometry() is `FT_Vector sub[3]`,
as specified in the header, and not `FT_Vector* sub`

Fixes compilation error when compiling with i686-w64-mingw32-g++
version 13-win32:
```
sdk/.../freetype/src/base/ftlcdfil.c:361:42: error: argument 2 of type ‘FT_Vector *’ {aka ‘struct FT_Vector_ *’} declared as a pointer [-Werror=array-parameter=]
  361 |                              FT_Vector*  sub )
      |                              ~~~~~~~~~~~~^~~
In file included from sdk/.../freetype/include/freetype/internal/ftobjs.h:32,
                 from sdk/.../freetype/src/base/ftadvanc.c:23,
                 from sdk/.../freetype/src/base/ftbase.c:22:
sdk/.../freetype/include/freetype/ftlcdfil.h:318:42: note: previously declared as an array ‘FT_Vector[3]’ {aka ‘struct FT_Vector_[3]’}
  318 |                              FT_Vector   sub[3] );
      |                              ~~~~~~~~~~~~^~~~~~
cc1: note: unrecognized command-line option ‘-Wno-unknown-warning-option’ may have been intended to silence earlier diagnostics
cc1: all warnings being treated as errors
```
2025-08-25 21:00:36 +02:00
Eric Kohl
359205bccc [CRT] wctomb must return 0 if the destination pointer is NULL
This fixes 3 test failures.
2025-08-22 16:48:06 +02:00
Timo Kreuzer
f18ebe2b73 [CRT] Cleanup old setjmp 2025-08-22 09:12:51 +03:00
Timo Kreuzer
6d321562c9 [NTOS][NTDLL][UCRTBASE] Use new setjmp/longjmp
This fixes 2 todo tests
2025-08-22 09:12:51 +03:00
Timo Kreuzer
011ce7088c [PSEH] Use _setjmp3 with custom unwind function 2025-08-22 09:12:51 +03:00
Timo Kreuzer
e8d190a29e [VCRUNTIME] Implement _seh_longjmp_unwind 2025-08-22 09:12:51 +03:00
Timo Kreuzer
a5448b04c6 [VCRUNTIME] Properly implement setjmp/longjmp 2025-08-22 09:12:51 +03:00
Timo Kreuzer
0e0852e1da [ASM] Add some asm constants for x86 2025-08-22 09:12:51 +03:00
Timo Kreuzer
3dc1c5039d [RTL/x64] Implement support for STATUS_LONGJUMP in RtlRestoreContext
Also change license to MIT (this is all my own code)
2025-08-22 09:12:51 +03:00
Timo Kreuzer
80bef4fe40 [XDK][NTOS:KE] Update XSAVE_AREA 2025-08-22 09:12:51 +03:00
Timo Kreuzer
d7761b1296 [VCRUNTIME][ASM] Fix definition of x64 _JUMP_BUFFER 2025-08-22 09:12:51 +03:00
Timo Kreuzer
d3a744a1ad [PSEH] Remove x64/ARM asm stubs
These are all x86 specific.
2025-08-22 09:12:51 +03:00
Serge Gautherie
a871ff1763 [SDK] ntddndis.h: Add/Update 3 NDIS typedefs (#8319) 2025-08-16 19:05:42 +02:00
Serge Gautherie
f100d34638 [NDIS][PSDK] Define IOCTL_NDIS_RESERVED7 and add a stub (#8240)
Another small step, until further investigation and implementation.

CORE-13831
2025-08-16 19:54:21 +03:00
Eric Kohl
dc97a4d380 [DHCPCSVC][IDL] Implement DhcpRemoveDNSRegistrations()
The dnsapi.dll part is still missing.
2025-08-14 14:44:04 +02:00
Eric Kohl
0bd6b3dd58 [DHCPCSVC][PSDK] Clean up, add some documentation and missing declarations 2025-08-13 14:58:27 +02:00
Eric Kohl
7dd18589a5 [IDL] Do not use the browser service interface GUID for the DHCP client service 2025-08-10 21:17:06 +02:00
Serge Gautherie
f24b57378e [PSDK][KS] IKsProcessingObject_fnProcessingObjectWork(): Fix mutex copypastas (#8288)
- ks.h: Add KsFilterReleaseProcessingMutex() declaration

- `IKsProcessingObject_fnProcessingObjectWork()`: Fix mutex copypastas

Addendum to commit c6b26fa452 (r50531).
CORE-19511
2025-08-08 23:35:56 +02:00
Timo Kreuzer
6acb13c903 [RTL] Fix RtlpGetRegistryHandle 2025-08-07 11:59:38 +03:00
Timo Kreuzer
b8abfb1392 [RTL] Fix random functions 2025-08-07 11:59:38 +03:00
Timo Kreuzer
5840b212a8 [DELAYIMP] Separate hook symbols from library code
This allows to define these functions in the importing module.
2025-08-06 17:48:37 +03:00
Timo Kreuzer
85aff698ca [DELAYIMP] Switch license to MIT
Agreed upon by Mark Jansen. Also update header to new format.
2025-08-06 17:48:37 +03:00
Timo Kreuzer
dda1cb9346 [PSDK] Avoid NDK include in versionhelpers.h 2025-08-06 17:48:37 +03:00
Eric Kohl
94a6102cd2 [DHCPCSVC] Convert the pipe based client-server interface to RPC 2025-08-03 22:39:36 +02:00
Eric Kohl
a6d3787507 [DHCPCSVC] Remove obsolete functions
DhcpLeaseIpAddress, DhcpReleaseIpAddressLease and DhcpRenewIpAddressLease have been replaced by DhcpAcquireParameters and DhcpReleaseParameters
2025-08-03 14:14:18 +02:00
Eric Kohl
959d3b9604 [CMAKE] Add add_rpc_file macro
The add_rpc_file macro enables us to use ACF files or set prefixes.
2025-08-03 11:06:32 +02: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
c70f741627 [VCRUNTIME] Add initial intrin0.inl.h 2025-08-03 10:37:24 +03:00
Timo Kreuzer
41478e978c [VCRUNTIME] Add initial arm64intr.h 2025-08-03 10:37:24 +03:00