The setuplib DLL, used also by the text-mode USETUP, isn't placed in the
standard DLL search paths list. It isn't in the "current" directory nor
in the one where reactos.exe is, nor in the running OS' SystemRoot or
System32 directories.
The DLL is instead placed in the System32 sub-directory of the ReactOS
installation source. Note that this isn't a problem for USETUP, because
it is already started from that directory.
To control its loading, delay-load the DLL and use a delay-load hook,
following the technique explained in:
https://stackoverflow.com/a/75325443https://devblogs.microsoft.com/oldnewthing/20170126-00/?p=95265
The hook is also invoked in case of loading failure, showing a more
user-friendly hard-error popup and killing the installer, instead of
throwing a debugger exception.
CORE-14603
The differentiation between a regular file loaded as a RamDisk and a
storage device volume, is done by invoking `ArcGetFileInformation()`
and looking at the `Information.Type` value.
CORE-14603
- Each filesystem exposes a `*GetVolumeSize()` routine that returns the
volume size it claims it reports (this is based on data from FAT/NTFS
BIOS Parameter Blocks, or EXTn/BTRFS superblocks, similarly to what
their NT filesystem drivers do).
- Given a device ID corresponding to a mountable drive, a top-level
`FsGetVolumeSize()` routine attempts to mount the corresponding filesystem.
This may fail if the device is not a drive, or if the filesystem is
not recognized. If it succeeds, then the per-filesytem `*GetVolumeSize()`
is invoked and the corresponding volume size is returned.
Ensure using the correct data segment in the lgdt/lidt invocation.
Also simplify the MASM/ML vs. gas syntax by using `lXdtPrefix`.
Fixes x86 MSVC FreeLoader boot following commit 9decadee83.
- Make `IntAttachToCSRSS()` return a BOOLEAN to distinguish calls made
prior to `CsrProcess` being initialized.
- Adjust the callers of `IntAttachToCSRSS()` and make them returning a
proper error value if attaching failed (if `CsrProcess == NULL`).
- Make `IntDetachFromCSRSS()` just take a `PKPROCESS` parameter instead a
pointer to `PKPROCESS` -- the function won't need to modify its value.
Adjust its callers to reflect the change.
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 )
This device is present in some PC-98 models without C-bus slots
and has a SubClass ID of 0x80 (other bridge) instead of 0x01 (ISA bridge),
thus a critical device database entry is required.
00:06.0 Bridge [0680]: NEC Corporation Star Alpha 2 [1033:002c] (rev 01)
Subsystem: Unknown [0000:0000]
Flags: bus master, medium devsel, latency 0
Addendum to commit 84fabd819d.
CORE-17977
- 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`.
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
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.
* [PCIX] Fix the weird text corruption in PciGetDescriptionMessage
* [PCIX] Return the buffer to the caller PciQueryBusInformation
Co-authored-by: Stanislav Motylkov <x86corez@gmail.com>
[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 <mrmks04@yandex.ru>
Co-authored-by: Victor Perevertkin <victor.perevertkin@reactos.org>
Co-authored-by: Adam Słaboń <asaillen@protonmail.com>
Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
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.
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.
CORE-20036
Import Wine commit:
comctl32: Avoid segfault in PROPSHEET_DoCommand when psInfo is NULL.
wine commit id affd5177bba907a015d1c6fc8ac9970731125268 by Yuri Hérouard <yuri.herouard@gmail.com>