- 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 <[email protected]>
[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]>
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 <[email protected]>
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).
- 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.
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.
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.
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`.
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)
CORE-9023
And more accurately detect and report disks:
using `InquiryBuffer.DeviceType`, differentiate between "rigid" disks,
floppy disks, and CD-ROM drives.
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()`.