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>
[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>
[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>
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."
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.
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
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.
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).
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>
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.
- 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
* [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