Commit graph

86373 commits

Author SHA1 Message Date
Hermès Bélusca-Maïto
e5302d06b1
********* [SETUPAPI] Use OEM_INDEX_LIMIT instead of hardcoding the maximum index in SetupCopyOEMInfW, as done in Wine (but our value is compatible with Windows') 2024-10-24 14:51:53 +02:00
winesync
a35c6d94de
[WINESYNC] setupapi: SetupCopyOEMInfW should preserve the basename when copying the inf file to the inf directory if possible.
If the file already exists, then it should use a name with the form oem%u.inf instead.

wine commit id b1030f59e69e89091bf997e52e831362f9077e69 by Rob Shearman <rob@codeweavers.com>
2024-10-24 14:51:52 +02:00
winesync
67ff1faf81
[WINESYNC] setupapi: Implement SetupGetFileCompressionInfo on top of SetupGetFileCompressionInfoEx.
wine commit id aa4fe0673987f4b5d065c6446973514b2f7cad73 by Hans Leidekker <hans@it.vu.nl>
2024-10-24 14:51:51 +02:00
winesync
24ebd5f279
[WINESYNC] setupapi: Remove debug traces from allocation routines.
wine commit id c26a816f199a27dec5fa2b18c97c155933f5fe19 by Hans Leidekker <hans@it.vu.nl>
2024-10-24 14:51:50 +02:00
Hermès Bélusca-Maïto
9b8eb39b84
********** [PSDK] Isolate the different #define'd flags into logical groups. 2024-10-24 14:51:49 +02:00
winesync
a6f7c7cec3
*** Empty winesyncs ***
[WINESYNC] include: Move cfgmgr32.h to include/ to match the SDK.

wine commit id 3b6017ae1894648f478ab242207e1153c20c8b57 by James Hawkins <truiken@gmail.com>

[WINESYNC] setupapi: Fix a typo.

wine commit id ab83183c03e0eccda67176f393ea0525b4d1ecf9 by Dmitry Timoshkov <dmitry@codeweavers.com>

[WINESYNC] setupapi: The inf section suffix that corresponds to __x86_64 is .ntamd64.

wine commit id 709735e294412a0cab15696faa9fcf6833e552bc by Hans Leidekker <hans@it.vu.nl>

[WINESYNC] setupapi: Implement SetupGetSourceInfo{A,W}.

wine commit id ae64a62241ce8868c5cd0420792217549e2f2145 by Hans Leidekker <hans@it.vu.nl>

[WINESYNC] setupapi: Added AssertFail stub.

wine commit id 3d11b8650c4392043b0d84850011b1c19b75d589 by Christian Gmeiner <christian.gmeiner@students.fhv.at>

[WINESYNC] setupapi: Add a stub implementation for SetupPromptReboot.

wine commit id 7f31cc47561a9e903cdccd9b7de3a3faf645e154 by Hans Leidekker <hans@it.vu.nl>

[WINESYNC] setupapi: Fix handling of 'CopyFiles=@file'.

wine commit id 8cfd0251646862dd1415c9ac028958c044b38eb1 by Francois Gouget <fgouget@codeweavers.com>

[WINESYNC] setupapi: Add stub implementations for SetupDiGetINFClass and SetupSetSourceList.

wine commit id 275dbeb74e525c52ee0ae384d8e11068b6c949f7 by Hans Leidekker <hans@it.vu.nl>

[WINESYNC] setupapi: Implement SetupCopyOEMInf{A,W}.

wine commit id 939e8e4ce279a24b2bc2f716b5fcb66748677434 by Hans Leidekker <hans@it.vu.nl>

[WINESYNC] setupapi: Always return an empty list from SetupDiGetClassDevs.

wine commit id 7a039ebbf14b91c4db2b1868b4df6c5a873d4722 by Hans Leidekker <hans@it.vu.nl>

[WINESYNC] setupapi: Add a stub implementation for InstallCatalog.

wine commit id a9e4ced18b237f97d2be7473afca9076ff1ea9c4 by Hans Leidekker <hans@it.vu.nl>

[WINESYNC] setupapi: Add several tests for SetupCopyOEMInf, with fixes so the tests don't crash.

wine commit id 9eaea34e041671fa63095a825c32978d1a9780d5 by James Hawkins <truiken@gmail.com>

[WINESYNC] setupapi: Fix InstallCatalog()'s calling convention.

wine commit id 61db3be294dd65341dfdfcdc6ab21dce4402aebd by Francois Gouget <fgouget@free.fr>

[WINESYNC] setupapi: Handle the SP_COPY_NOOVERWRITE flag.

wine commit id 3e5f62b2d8d7353f890ca6e4fb27809c9f7dae8f by James Hawkins <truiken@gmail.com>

[WINESYNC] setupapi: Don't allow relative paths in SetupCopyOEMInf.

wine commit id efa6591fff772c7fc88f3dd26500610f55d6b551 by James Hawkins <truiken@gmail.com>

[WINESYNC] setupapi: The Inf file should be copied regardless of the destination buffer, with tests.

wine commit id ff326fd0ffd4ad017634d6d068781d8a0736d4a2 by James Hawkins <truiken@gmail.com>

[WINESYNC] setupapi: Correct the Inf output position.

wine commit id 672952d2b6abf525d3ccd73b68ee418f51f8eae2 by James Hawkins <truiken@gmail.com>

[WINESYNC] setupapi: SetLastError to ERROR_SUCCESS on success.

wine commit id 405b96e979dcb751988e061cd1f78319232d3d84 by James Hawkins <truiken@gmail.com>

[WINESYNC] setupapi: Implement SetupGetFileCompressionInfoEx{A, W}.

wine commit id 8ccc19c74c43d81965ecffdaf9bce9d965a25f1b by Hans Leidekker <hans@it.vu.nl>

[WINESYNC] setupapi: Implement SetupDecompressOrCopyFile{A, W}.

wine commit id c1950e2dccb0d16398997a228c3716a332d827d2 by Hans Leidekker <hans@it.vu.nl>
2024-10-24 14:51:48 +02:00
winesync
9e97d9f995
[WINESYNC] setupapi: Win64 printf format warning fixes.
wine commit id 79ecfaf52f1c552c9f43c636e0133fe0b4d5e6c5 by Michael Stefaniuc <mstefani@redhat.de>
2024-10-24 14:51:48 +02:00
winesync
21cc2ec468
*** Empty winesyncs ***
[WINESYNC] Remove more redundant NULL checks before HeapFree (found by Smatch).

wine commit id 56026299d0ce1bbc3b389cddcda08a1b9d9704c0 by Michael Stefaniuc <mstefani@redhat.de>

[WINESYNC] setupapi: Documentation update.

wine commit id f14f04dc8a895304ac90406a0d2c297a5e54f7d4 by Christian Gmeiner <christian.gmeiner@students.fhv.at>

[WINESYNC] setupapi: Implement SetupDiCreateDeviceInfoListExW.

wine commit id 8f5d90b44d8ca5b7e730a142952f45ac29b7ded5 by Christian Gmeiner <christian.gmeiner@students.fhv.at>

[WINESYNC] setupapi: Remove unneeded NULL checks before MyFree().

wine commit id bb80e2282e88c65a14cc0a1e82f4852baabcbcb0 by Christian Gmeiner <christian.gmeiner@students.fhv.at>

[WINESYNC] setupapi: Add stub for SetupDiCreateDeviceInfoW.

wine commit id 41aefd8c62bf4798fec567cb00afd0d98328e23a by Christian Gmeiner <christian.gmeiner@students.fhv.at>

[WINESYNC] setupapi: Implemented SetupDiCreateDeviceInfoA.

wine commit id 51cd07c37e56da960ab2c51b0391befeea0b6688 by Christian Gmeiner <christian.gmeiner@students.fhv.at>

[WINESYNC] setupapi: Move SetupDiGetClassDevsExW into devinst.c.

wine commit id c514700be28e33f5d237d5718a427fa07bc4e95d by Christian Gmeiner <christian.gmeiner@students.fhv.at>

[WINESYNC] setupapi: Add a stub implementation of SetupGetSourceInfo.

wine commit id b74f4d92d74953eabb594a17c91fb6a6aff60ee7 by James Hawkins <truiken@gmail.com>

[WINESYNC] setupapi: Create an empty list when getting device interface classes.

wine commit id 93f5e0a7fd9c9f741de4a1faaa8a90ed88a36d60 by Kevin Koltzau <kevin@plop.org>

[WINESYNC] janitorial: Removed the rest of the redundant NULL checks before HeapFree.

wine commit id 757ee19ca119b3434a6249a00b1c39c0d36fb449 by Michael Stefaniuc <mstefani@redhat.de>

[WINESYNC] setupapi: Fix handling of inf paths that are quoted (due to spaces, typically).

wine commit id 3b7fb551ce211210abd5877b41207f6194fb3700 by Francois Gouget <fgouget@codeweavers.com>

[WINESYNC] setupapi: Fixed returns values and added a test for SetupDiOpenClassRegKeyExW.

wine commit id 9bbcb857f9aea3832e2def74fa4f517996061780 by Damjan Jovanovic <dj015@yahoo.com>

[WINESYNC] setupapi: Add stubs for SetupOpenLog, SetupCloseLog, and SetupLogError.

wine commit id 15b46847b0bc4d9bcc2b03d9377ce7342f4da536 by James Hawkins <truiken@gmail.com>

[WINESYNC] setupapi: Fixed wrong check (Coverity).

wine commit id 270dbc9d0733481dd8db34c93b215739a3e9fb30 by Paul Vriens <Paul.Vriens@xs4all.nl>

[WINESYNC] setupapi: Brace the guid in SetupDiOpenClassRegKeyExW.

wine commit id e6e96d3ea114790aabcdcbdcfa104fa393d07760 by Damjan Jovanovic <damjan.jov@gmail.com>

[WINESYNC] Add missing '\n's to Wine traces.

wine commit id 82babbee0bd375248bc68342e23e8d50548cfa1b by Francois Gouget <fgouget@free.fr>
2024-10-24 14:51:47 +02:00
Hermès Bélusca-Maïto
c7a2f0c28f
Revert wine-staging patch 2024-10-24 14:51:43 +02:00
winesync
22f57a5d76
[WINESYNC] Update the address of the Free Software Foundation.
wine commit id 360a3f914235e04216a3691390662885c1867eb1 by Jonathan Ernst <jonathan@ernstfamily.ch>
2024-10-24 14:49:36 +02:00
winesync
1825b340c6
[WINESYNC]: revert wine-staging patchset for setupapi 2024-10-24 14:49:35 +02:00
Hermès Bélusca-Maïto
4ce1ca3671
******** Partially revert commit 66feb11cfe
[SETUPAPI]
Rename functions according to the new naming scheme:
  CaptureAndConvertAnsiArg --> pSetupCaptureAndConvertAnsiArg
  CenterWindowRelativeToParent --> pSetupCenterWindowRelativeToParent
  ConcatenatePaths --> pSetupConcatenatePaths
  DuplicateString --> pSetupDuplicateString
  EnablePrivilege --> pSetupEnablePrivilege
  GetVersionInfoFromImage --> pSetupGetVersionInfoFromImage
  IsUserAdmin --> pSetupIsUserAdmin
  MultiByteToUnicode --> pSetupMultiByteToUnicode
  MyGetFileTitle --> pSetupGetFileTitle
  OpenAndMapForRead --> pSetupOpenAndMapForRead
  RegistryDelnode --> pSetupRegistryDelnode
  UnicodeToMultiByte --> pSetupUnicodeToMultiByte
  UnmapAndCloseFile --> pSetupUnmapAndCloseFile

svn path=/trunk/; revision=50915
2024-10-24 14:49:34 +02:00
Hermès Bélusca-Maïto
cca1c25676
[WINESYNC] Initial bootstrap for setupapi dll and winetest partial sync.
- Initial sync config file;
- Add reconstructed WineStaging v4.0 setupapi patches that were originally
  applied (and need to be reverted).
2024-10-24 14:49:33 +02:00
Hermès Bélusca-Maïto
3a78283730
[WINESYNC] Use --no-autoconf otherwise running time is too long. 2024-10-24 14:46:57 +02:00
Hermès Bélusca-Maïto
90aee8453f
[SDK:CRT] Reenable malloc.h inclusion in xmmintrin.h (#6464)
Addendum to commit 318d696f0
2024-10-24 12:06:38 +02:00
Hermès Bélusca-Maïto
ab7fbd08a7
[WINE/MSVCRT] Fix MSVCRT_size_t, MSVCRT_intptr_t and MSVCRT_uintptr_t typedefs (#6464)
Make these definitions compatible with the other ambient size_t and
(u)intptr_t types used in the rest of our code base.

This partly reverts the corresponding typedef changes from wine commit
d8ab5a14aa
"msvcrt: Use intptr_t or size_t instead of long where appropriate."
2024-10-24 12:06:17 +02:00
Eric Kohl
51b55982e4 [WKSSVC] Implement undocumented NetrWkstaGetInfo Level 502 and NetrWkstaSetInfo
- Provide default Level 502 data only.
- Level 502 data need to be stored in the Registry.
2024-10-23 23:48:33 +02:00
Hermès Bélusca-Maïto
3ddb05d443
[SETUPLIB] GetSourcePaths(): Fix determination of the installation source path.
Refine the algorithm introduced in commit c560342f08 (r75667, r75676),
whereby the installation source path is based on the full image file path
of the installer program, and of the \SystemRoot symlink.

Also reverts commit 6f389a35db "Add a workaround for installing from USB drives"
CORE-17818

+ SAL2-annotate and add Doxygen comments.

----

In case the \SystemRoot full path prefixes the image file path,
use the resolved \SystemRoot as the installation source path.
Otherwise, use the image file path.

The \SystemRoot symlink target resolution needs full path reparsing,
because it can reference other symlinks. This is what happens, for
example when booting the installation from a removable hard-disk.
We can have:

         \SystemRoot ---> \Device\Harddisk1\Partition1\ReactOS
and:     \Device\Harddisk1\Partition1 ---> \Device\HarddiskVolume2
etc.
and we wish to resolve \SystemRoot to: \Device\HarddiskVolume2\ReactOS
instead of keeping the former version (using Harddisk1\Partition1).

We then verify whether it prefixes the image file path, which is
a fully reparsed path.
2024-10-23 23:19:58 +02:00
Serge Gautherie
2d655a487e
[MORE] PagePrompt(): Optimize check to load string resources (#7476)
It is useless to check each string individually and to try to load them again.
Use a common flag instead.

Follow-up to 2dbbfe8 (0.4.15-dev-2691).
2024-10-22 20:44:27 +02:00
Tomáš Veselý
cf955094b4
[NTUSER] IntSetTimer(): Use timer IDs range [256,32767] as on Windows (#7277)
Based on the Doug Lyons' test in #7087, I found that my previous fix stopped working partially. Or rather, it would only work until the 32767 indexes were exhausted. It seems to me that the behavior of the bitfield has changed, because when I published the previous patch, it passed my tests.

- Bit array generates free ID cyclically, in the previous code after 32767 indexes expired the same index was returned, because of this the previous fix would stop working after expiration, so change the logic of calculating the next index.
- Change the index range to 256-32767 to match Windows, indexes 0-255 can theoretically be used as reserved for system purposes.

Addendum to fd327db20f. CORE-9141
2024-10-22 18:10:34 +03:00
Doug Lyons
551c74123c
[VERSION] Fix VerQueryValue when return Value is NULL. (#7449)
CORE-19783
Co-authored-by: Timo Kreuzer <timo.kreuzer@reactos.org>
2024-10-22 05:28:10 -05:00
Timo Kreuzer
8ba61029e1 [CRT] Add C++ const correct overloads 2024-10-22 08:17:45 +03:00
Timo Kreuzer
8c2b8c835a [VERSION_APITEST] Add tests for VerQueryValue(A/W) 2024-10-22 00:46:42 +03:00
Hermès Bélusca-Maïto
eafa7c68b6
[SETUP:REACTOS] Improve/Add some translations 2024-10-21 15:54:02 +02:00
Timo Kreuzer
6f6b831722 [CRT] Introduce corecrt.h
Include this instead of crtdefs.h.
This is for compatibility with MS headers.
2024-10-21 14:53:29 +03:00
Timo Kreuzer
4e3c0529cf [RTL/x64] Fix RtlCaptureContext/RtlpRestoreContextInternal in kernel mode
According to tests, legacy fp state is not saved in kernel mode.
Also add an int 2c to the path that changes cs, as it should not be used and probably never will be.
2024-10-21 10:17:11 +03:00
Hermès Bélusca-Maïto
467efcb423
[USETUP] Adjust translations of the BootLoaderRemovableDiskPageEntries page.
The page is shown only when the user wants to install the bootloader
on a removable disk; not when there was a problem while installing it.
2024-10-20 16:51:29 +02:00
Hermès Bélusca-Maïto
424278db3f
[SETUP:REACTOS] Add bootloader installation support (#7310)
CORE-13525
2024-10-20 16:51:26 +02:00
Hermès Bélusca-Maïto
b3cd576737
[SETUPLIB][USETUP] Introduce a bootloader installation helper (#7310)
CORE-13525

This is done so that the caller doesn't need to know details
about particular architecture specifics, like VBR, MBR etc.

Extra checks and specific handling is also performed for supporting
bootloader installation on removable media:
- verify whether the media is a floppy or some other removable media,
- depending on which, a suitable file system is chosen,
- and if the media is not a floppy, do the supplemental partition
  verifications to determine whether the media is a "super-floppy"
  (in the partitioning sense).
2024-10-20 16:51:25 +02:00
Hermès Bélusca-Maïto
636e2e9172
[SETUPLIB] Introduce a helper for copying bootloader files (#7310)
This function could be generalized later to copy other files necessary
for the bootloader; removing also the currently hardcoded placement in
the installation source directory, and instead, using a configurable
path (specified in txtsetup.sif); etc.

Adapted from a commit by Timo Kreuzer (see PR #7420)

Co-Authored-By: Timo Kreuzer <timo.kreuzer@reactos.org>
2024-10-20 16:51:24 +02:00
Hermès Bélusca-Maïto
d6d3d0eacd
[SETUPLIB] Add helpers to determine whether a disk is partitioned as a "super-floppy" (#7310) 2024-10-20 16:51:23 +02:00
Hermès Bélusca-Maïto
ad5d9aa28a
[SETUPLIB] Add UNICODE_STRING versions of the pOpenDevice helpers (#7310)
+ Use a FILE_SHARE_ALL define. Based on a suggestion from Whindmar Saksit.
2024-10-20 16:51:16 +02:00
Timo Kreuzer
1d3bce1a59 [NTOS:KE] Make KeFlushQueuedDpcs SMP ready
KeFlushQueuedDpcs is used by some drivers, when unloading or removing a device, to be sure no DPC is still running their code. On a UP system this can be done "inline", on an SMP system, it requires to send an IPI to each processor that has DPCs queued and also synchronize it with the calling thread, which is what KeSetSystemAffinityThread does implicitly: When a queued DPC was detected on a remote processor (implying that processor is currently running at DISPATCH_LEVEL or above), KeSetSystemAffinityThread will schedule the current thread on that processor and send a DPC interrupt. The remote processor will handle that DPC interrupt once it is back below DISPATCH_LEVEL. It will only run the current thread, after all queued DPCs (including threaded DPCs) have finished running.
2024-10-20 16:28:11 +03:00
Timo Kreuzer
bf95874c2d [REACTOS] Improve handling of non-standard names
- Link oldnames instead of defining names
- Define _CRT_DECLARE_NONSTDC_NAMES to 1 where needed
- Remove header hacks
2024-10-20 14:12:25 +03:00
Timo Kreuzer
b707be90a1 [REACTOS] Use standard conforming names
- Use _alloca instead of non-standard alloca
- Use _TCHAR instead of non-standard TCHAR
- Use _off_t instead of deprecated off_t
- Use _O_BINARY instead of O_BINARY
2024-10-20 14:12:25 +03:00
Timo Kreuzer
1de09c477c [3RDPARTY] Link to oldnames for stricmp/wcsicmp 2024-10-20 14:12:25 +03:00
Timo Kreuzer
a3bab12b50 [OLDNAMES] Add _CRT_NONSTDC_NO_DEPRECATE interface definitions 2024-10-20 14:12:25 +03:00
Timo Kreuzer
e4930be4ff [REACTOS] Use the ISO C and C++ conformant names: _wcsicmp, _stricmp
Stop using non-conforming wcsicmp, stricmp, strcasecmp
2024-10-20 14:12:25 +03:00
Timo Kreuzer
fb9571ee3c [WIN32K] Use UserRefObjectCo in co_UserFreeWindow 2024-10-20 09:35:14 +03:00
Timo Kreuzer
08b9354ff3 [WIN32K/USER] Fix callout object referencing in co_IntUpdateWindows
Move UserRefObjectCo, so that it covers co_IntSendMessage as well.
This caused a use-after-free during testing.
2024-10-20 09:35:14 +03:00
Timo Kreuzer
9eca7c52f6 [WIN32K] ASSERT that all callout references have been cleaned up on thread exit 2024-10-20 09:35:14 +03:00
Justin Miller
690783179e [SDK][WIN32SS] Make Them Build 2024-10-19 13:45:59 -07:00
Justin Miller
50647e58e4 [SDK] Disable the unknown-pragma for GCC 2024-10-19 13:45:59 -07:00
Justin Miller
e09679f2d1 [SDK] Import WDDM Headers from MIT varient in libdxg 2024-10-19 13:45:59 -07:00
William Kent
d4719197b2
[MKISOFS] Fix Clang check for macOS platforms (#7037)
* [MKISOFS] Fix Clang check for macOS platforms

On macOS, CMAKE_C_COMPILER_ID is "AppleClang". While certainly Clang,
this does not match the exact string "Clang" that is being checked for,
and as a result the warning flags guarded thereby are not passed to the
compiler. With this change CMake will recognize both Clang and AppleClang.

* Update sdk/tools/mkisofs/CMakeLists.txt
2024-10-19 12:15:31 -07:00
Hermès Bélusca-Maïto
90831e7451
[SERVICES] Use pointers to const string (PCWSTR) instead of non-const for argv (#7440)
const PCWSTR* == const (const WCHAR*)* == (const WCHAR*) const *
2024-10-19 18:29:03 +02:00
Daniel Victor
3fd6e34ab8
[FREELDR/x64] Fix the Multiboot pointer size (#7469)
Addendum to b524c18a3e. CORE-18374
2024-10-19 18:50:41 +03:00
Daniel Victor
b524c18a3e [FREELDR/x64] Add Multiboot header 2024-10-19 17:54:39 +03:00
Timo Kreuzer
398486f5f6 [ATL] CComCriticalSection destructor should not be virtual
Fixes GCC 13 build of shdocvw
2024-10-19 16:16:51 +03:00
Timo Kreuzer
fd265bd7ac [CMAKE] Enable proper definition of __cplusplus macro on MSVC
MSVC defaults to always reporting 199711L to satisfy broken C++ code. You have to add a command line argument to make it work correctly. See https://learn.microsoft.com/en-us/cpp/build/reference/zc-cplusplus?view=msvc-170
2024-10-19 15:11:44 +03:00