Commit Graph
87895 Commits
Author SHA1 Message Date
Hermès Bélusca-Maïto 2a9a0d0438 [NTOS:CONFIG] CmpInitializeMachineDependentConfiguration(): Add missing OBJ_KERNEL_HANDLE (#8445) 2025-11-04 19:52:53 +01:00
Hermès Bélusca-Maïto 824a51e303 [VIDEOPRT] Minor maintenance for IntVideoPortGetProcAddress() (#8444)
- SAL-ify `IntVideoPortGetProcAddress()`. Sadly its 2nd parameter needs
  to stay `PUCHAR` to comply with the `PVIDEO_PORT_GET_PROC_ADDRESS` type.

- Append `VideoPortQuerySystemTime` to the array of exports (Vista+ compatibility).

Note that probably because of a copy-pasta error, Windows' VideoPrt
duplicates the `VideoPortMapDmaMemory` entry in between those of
`VideoPortFreeCommonBuffer` and `VideoPortReleaseBuffer`.
2025-11-04 19:50:23 +01:00
Mikhail Tyukin 44931d742b [VIDEOPRT] Fix incorrect return status (#8433)
IntVideoPortMapMemory incorrectly returned a successful result if it
failed to map video memory. This caused a bugcheck when using VirtualBox
with Guest Additions with more than 128MB of VRAM assigned to VM.

- Return ERROR_NOT_ENOUGH_MEMORY instead of NO_ERROR
  when mapping memory fails.
- Also add debug logging to help troubleshoot when MmMapIoSpace fails.

https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/video/nf-video-videoportmapmemory#return-value

This fixes the crash, however the desktop does not render correctly.
Using videoprt.sys from Windows XP still results in the same behavior.

CORE-12130
2025-11-04 13:30:12 +03:00
Hermès Bélusca-Maïto 106dbed40d [BOOT] Actually add the remastering scripts in the ISOs
Addendum to commit fdc4272b1a (#4988)
CORE-8872
2025-11-03 20:22:42 +01:00
Hermès Bélusca-Maïto fdc4272b1a [BOOT] Add an ISO remastering script (#4988)
CORE-8872

This is useful in the context of e.g. 3rd-party testers who want to
quickly add/remove/modify any file in a ReactOS ISO image and remastering
it without the need of our whole build environment.

remaster.cmd: Batch script.
remaster.sh : Almost-POSIX-compatible shell script version.
2025-11-03 20:08:39 +01:00
Hermès Bélusca-Maïto 6dd82ad146 [BOOT] Add the ISOMBR boot sector file in the ISO images (#4988)
This completes our set of provided boot sectors offered in the
ReactOS ISOs that can help for remastering those without our whole
build environment.
2025-11-03 20:06:48 +01:00
Justin MillerandStanislav Motylkov 18f9a03338 [PCIX] Fix a few easy bugs (#8443)
* [PCIX] Fix the weird text corruption in PciGetDescriptionMessage

* [PCIX] Return the buffer to the caller PciQueryBusInformation


Co-authored-by: Stanislav Motylkov <[email protected]>
2025-11-03 10:52:19 -08: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
Eric Kohl 420799228d [NETSH] Implement the -r (remote) option and set machine command
Also:
- Start all usage texts with a newline.
- Add some error messages.
- Fix a bug in the command interpreter.
2025-11-02 22:37:16 +01:00
Eric Kohl 4ad647fb5c [NETSH] Improvements to the command line evaluation and the command interpreter
- Interpreter functions return error code instead of boolean
2025-11-02 13:51:02 +01:00
Timo Kreuzer de5f284ae3 [HALX86] Fix x86BiosCall
Properly initialize the segment registers by calling Fast486SetSegment. Fixes graphics initialization on some hardware.
2025-11-02 14:46:54 +02:00
Timo Kreuzer 6b0ac35393 [HALx86] Fix annotations for x86BiosAllocateBuffer 2025-11-02 14:46:54 +02:00
Eric Kohl 20eee6d362 [NETSH] Support the -c (context) command line option 2025-11-01 21:30:08 +01:00
Eric Kohl 2e7a1768fb [NETSH] Implement the offline, online and related commands 2025-11-01 18:49:44 +01:00
Carl J. Bialorucki 773206851a [SHLWAPI_WINETEST] Sync to wine-10.0 (#8303)
- [SHLWAPI_WINETEST] Sync to wine-10.0
2025-10-29 14:10:07 -05:00
Eric Kohl 3e3f58324b [NETAPI32] Revert workaround for union _WKSTA_USER_INFO
Addendum to f2f057c0a1
2025-10-28 21:52:48 +01:00
Eric Kohl f2f057c0a1 [NETAPI32][WKSSVC][IDL] Revert workaround for union _WKSTA_USER_INFO
After fixing the union issue in the RPC runtime, revert all workarounds one by one.

Return to the original declaration of union _WKSTA_USER_INFO and fix NetrWkstaUserGetInfo.
2025-10-28 21:26:53 +01:00
Eric Kohl 5b5b1a2bbf [NETAPI32][WKSSVC][IDL] Revert workaround for union _WKSTA_INFO
After fixing the union issue in the RPC runtime, revert all workarounds one by one.

Return to the original declaration of union _WKSTA_INFO and fix NetrWkstaGetInfo
and NetrWkstaSetInfo.
2025-10-27 22:46:39 +01:00
Petru Răzvan 69ddd4e74b [WINESYNC][COMCTL32] Fix Exception in PROPSHEET_DoCommand (#7943)
CORE-20036

Import Wine commit:
comctl32: Avoid segfault in PROPSHEET_DoCommand when psInfo is NULL.
wine commit id affd5177bba907a015d1c6fc8ac9970731125268 by Yuri Hérouard <[email protected]>
2025-10-26 18:53:59 +01:00
Hermès Bélusca-Maïto df49026976 [NETWORK:NE2000] Move the NDIS_* defines to the CMakeFiles.txt 2025-10-26 18:23:54 +01:00
Serge Gautherie 5b1224b8a3 [NETWORK:DD][NDIS] Be explicit about NDIS_LEGACY_MINIPORT value (#8315)
Also, NDIS_LEGACY_DRIVER and NDIS_LEGACY_PROTOCOL.
2025-10-26 18:23:53 +01:00
Serge Gautherie 04f052bec8 [NETWORK:DD] NDIS_MINIPORT_DRIVER and NDIS51_MINIPORT do not need a value (#8315) 2025-10-26 18:23:48 +01:00
Eric Kohl 4a3bf41abb [NETCFGX][REACTOS] Add missing INetCfgComponentPrivate interface declaration 2025-10-26 18:21:10 +01:00
Serge Gautherie ca2fb5f666 [NDIS] NdisRegisterProtocol(): Add a comment about NDIS51 (#8314)
CORE-20300

- `NdisRegisterProtocol()`: Add a comment about `NDIS51`: the
  `NDIS50_PROTOCOL_CHARACTERISTICS` structure is common to both
  NDIS 5.0 and 5.1.
  This is in contrast to the `NDIS50/NDIS51_MINIPORT_CHARACTERISTICS`
  structures, see for example commit 3e169e3cb2 (r49961).

- Remove obsolete SOURCES file. Addendum to commit d9e83ed22d (r40142).
2025-10-26 17:28:51 +01:00
Serge Gautherie dd00ebdd51 [PCNET] CMakeLists.txt: Remove superseded -DNDIS50_MINIPORT (#8313)
Addendum to commit 74015adb69 (r20671).
CORE-20300
2025-10-26 17:17:07 +01:00
Serge Gautherie d1b1292429 [FMIFS][FORMAT][SDK] Improve/Fix QueryDeviceInformation() and related code (#7475)
- FMIFS: QueryDeviceInformation(): Use more specific types and improve documentation.
  Follow-up to commit 4838d7bd56.

- FORMAT: wmain():
  * Zero the correct variable. Addendum to commit c5a9f22d4e.
  * No need to zero the whole volumeName array. Follow-up to commit 358fecdcf0.
2025-10-26 16:42:01 +01:00
Eric Kohl 59afe4b0a2 [NETCFGX][UUID] Add private interface used by WinXPs ifmon.dll
When I loaded WinXPs ifmon.dll into our netsh.exe and ran the 'interface ip show address'
command ifmon tried to query an unknown interface. Google found a name for the GUID:
INetCfgComponentPrivate.
I implemented the three standard methods of the interface and ran some more tests.
After adding a 4th method with tree parameters to the interface, there are no more
failures.
2025-10-26 16:36:55 +01:00
Eric Kohl d6db7fb409 [RPCRT4] Fix buffer size calculation bug when unions of pointers are used in RPC interfaces
The size of the transfer buffer was always too small when a parameter of a
function was a pointer to a union of pointers. The buffer size calculation
function for the union only returned the size of the data the the pointer
in the union pointed to, omitting the size of the data for the union itself.
This caused a buffer overrun in the following marshal step which makes the
RPC call fail.

This fix will enable us to remove some workarounds in our RPC interfaces.
2025-10-26 11:55:34 +01:00
Eric Kohl d1f54aa5f7 [IFMON] combine the 'pushd' and context change commands in the dump output 2025-10-20 21:14:26 +02:00
Hermès Bélusca-Maïto c7d4040767 [FREELDR] ArcGetFileInformation(): Set Information->FileName, Length, and Attributes for filesystems (#8420)
CORE-9023

Add support for all the supported filesystems: FAT/FATX, NTFS,
ISO, EXT, BTRFS, as well as for files loaded via PXE.

arc.h:
- Add `FILEATTRIBUTES` enumeration;
- Remove non-existing `CreateReadOnly` and `SupersedeReadOnly`
  `OPENMODE` values; add missing `CreateReadWrite`.
2025-10-19 22:38:30 +02:00
Hermès Bélusca-Maïto eec9ca1305 [FREELDR] fs.c: Fix path device name lookup
Suppose the list of devices contains, for example listed in this order:

  `multi(0)disk(0)rdisk(0)partition(1)`,
followed by:
  `multi(0)disk(0)rdisk(0)`,

then if someone attempts to open `multi(0)disk(0)rdisk(0)`, the code
would erroneously open `multi(0)disk(0)rdisk(0)partition(1)` instead.

Device name lookup now verifies that the device name being tested has
the same length as the one being opened.

Noticed by user "Xen", see:
https://reactos.org/forum/viewtopic.php?p=144840#p144840
> Wrong name comparison in ArcOpen (can open "device()partition()"
> instead of "device()" that was really requested)
2025-10-19 21:23:12 +02:00
Hermès Bélusca-Maïto ad10c08b3d [SCSIPORT] Fix "Targed" typo 2025-10-19 17:13:51 +02:00
Hermès Bélusca-Maïto b51789c28d [FREELDR] scsiport.c: Set the Information->Type field (#8418)
CORE-9023

And more accurately detect and report disks:
using `InquiryBuffer.DeviceType`, differentiate between "rigid" disks,
floppy disks, and CD-ROM drives.
2025-10-19 17:13:50 +02:00
Hermès Bélusca-Maïto 246f2d29db [FREELDR] ArcGetFileInformation(): Set the Information->Type field for devices (#8418)
CORE-9023

Some of this determination is platform-specific (e.g. BIOS-based PC vs.
NEC PC-98 vs. Xbox), and is done in a per-platform `DiskGetConfigType()`
routine.
This routine is then invoked by `hwdisk.c!DiskOpen()` and `PcInitializeBootDevices()`.
2025-10-19 17:13:49 +02:00
Hermès Bélusca-Maïto e969fbeea8 [UDFS] Add missing NTAPI for PIO_APC_ROUTINE (#8417) 2025-10-19 17:11:55 +02:00
Hermès Bélusca-Maïto 79a9fcbbe7 [ROSTESTS:TESTS] Don't need the PIO_APC_ROUTINE cast (#8417) 2025-10-19 17:11:54 +02:00
Hermès Bélusca-Maïto 78362c1afa [PSDK] Update our icmpapi.h header; make it compatible with official PSDK (#8417)
- Add missing definitions in icmpapi.h and use SAL2 annotations;

- Rename `__WINE_ICMPAPI_H` to the official `_ICMP_INCLUDED_`;

- Use `NTDDI_VERSION` versioning for some funtions;

- Use `PIO_APC_ROUTINE_DEFINED` for the `ApcRoutine` parameter
  of the `Icmp*SendEcho2*()` functions, allowing to use the proper
  `PIO_APC_ROUTINE` type instead of `FARPROC`;

- Add missing Vista SP1+ `IcmpSendEcho2Ex()` function.
2025-10-19 17:11:53 +02:00
Hermès Bélusca-Maïto de1fb41750 [PSDK][NDK] winternl.h, iotypes.h: define PIO_APC_ROUTINE_DEFINED (#8417)
Define `PIO_APC_ROUTINE_DEFINED` after the `PIO_APC_ROUTINE` callback
type definition. Used by icmpapi.h `Icmp*SendEcho2*()` routines.
2025-10-19 17:11:52 +02:00
Hermès Bélusca-Maïto 73fb345877 [PSDK][INCLUDE/WINE] Import wine-10.0 icmpapi.h (#8417) 2025-10-19 17:11:04 +02:00
Mohammed al-Ramadany 03f4387231 [KMTEST] ExHardError and RtlCaptureContextKM fixes (#8342)
- Adjust expected values according to NT version and architecture
2025-10-18 09:28:59 -05:00
Timo Kreuzer 7e6e327581 [NTOS:SE] Fix handle leak on failure in SepOpenThreadToken 2025-10-18 15:14:14 +03:00
Timo Kreuzer 8eff6dfb77 [NTOS] Don't dereference the object when ObInsertObject fails
See CORE-17904
2025-10-18 15:14:14 +03:00
Timo Kreuzer 72b98da684 [NTOS:EX] Fix bugs in NtCreateEvent
- Validate EventType
- Cleanup on failure
- Add ASSERTs in KeInitializeEvent and KeInitializeTimerEx
2025-10-18 15:14:14 +03:00
Timo Kreuzer 804fdad3e0 [NTDLL_WINETEST] Fix prototype for NtCreateEvent
Fixes a number of tests on Windows.
2025-10-18 15:14:14 +03:00
Timo Kreuzer 02af7e7ecb [CRT_APITEST] Fix tests for wctomb
- Dynamically load function from the appropriate DLL
- Remove from ntdll_apitest (these are not exported by ntdll)
2025-10-18 15:12:19 +03:00
Timo Kreuzer 5272cc27d6 [CRT_APITEST] Fix tests for sprintf
- Dynamically load function from the appropriate DLL
- Fix tests for crtdll and user32
2025-10-18 15:12:19 +03:00
Timo Kreuzer ba592dad5d [CRT_APITEST] Fix tests for _vs(c/n)(w)printf
- Dynamically load function from the appropriate DLL
- Fix tests for ntdll/crtdll
2025-10-18 15:12:19 +03:00
Timo Kreuzer e1f843b929 [CRT_APITEST] Fix tests for _sn(w)printf
- Dynamically load function from the appropriate DLL
- Fix a test for crtdll
2025-10-18 15:12:19 +03:00
Eric Kohl 4df8fbf9c2 [NETSH] Add a special code path to execute commands that follow the pushd command
This enables the execution of commands like 'pushd interface ip' which is emitted by the dump command of WinXPs ifmon.dll.
2025-10-18 01:37:51 +02:00
Carl J. Bialorucki 6762703ce4 [PSDK][INCLUDE/WINE] Introduce our own shlwapi.h for PSDK and import wine-10.0 shlwapi.h for Wine code (#8419)
- [PSDK] Introduce our own Microsoft compatible and MIT-licensed shlwapi.h and fix breaking changes
- [INCLUDE/WINE] Import shlwapi.h from wine-10.0 for use with Wine compatible code
- [CMAKELISTS.TXT] Bump up IE version from IE60 to IE60SP2. This is required because we are already using IE60SP2 guarded functionality; the new header unhides this.
- [SHLWAPI] Fix breaking changes, including a typo for 'SHGVSPB_GLOBALDEAFAULTS' (should be 'SHGVSPB_GLOBALDEFAULTS')
- [MSI] Use wine's shlwapi.h instead of our own in automation.c, don't precompile shlwapi.h.
- [URLMON_WINETEST] Primarily use wineheaders for this test
2025-10-17 09:23:31 -05:00