Commit graph

73195 commits

Author SHA1 Message Date
Hermès Bélusca-Maïto c2f7758e96
[SETUPLIB] Adapt the code in osdetect.c to make it use the new features of bldrsup.c committed in 27603a10 (r74952).
svn path=/branches/setup_improvements/; revision=74953
2018-10-14 23:37:44 +02:00
Hermès Bélusca-Maïto 27603a101c
[SETUPLIB] Introduce a lot of (Work in progress) functions to manipulate boot entries from different boot "stores".
This concerns so far, only freeldr.ini and to an extent, boot.ini, but planning in the future to add support for registry-oriented BCD
as well as possibly direct (u)EFI entries, using the corresponding NT functions.
This code is so far only used in osdetect.c, but will be soon used by usetup's bootsup.c (note that some helper functions: CreateCommonFreeLdrSections()
and (Un)protectBootIni() are already taken from it and used in bldrsup.c).
- In EnumerateNTOSBootEntries(), continue enumerating the boot entries until the user callback returns an status code that is not successful.
- Remove some old code from osdetect.c; use directly BootEntry->FriendlyName when building the display names of the available installations, since now
  BootEntry->FriendlyName is a PCWSTR (and not a UNICODE_STRING anymore).

svn path=/branches/setup_improvements/; revision=74943

[SETUPLIB] Make the NTOS_BOOT_ENTRY structure more generic, so that it can wrap around either actual NTOS boot entry options, or FreeLdr-like boot-sector options.

In a sense, the NTOS_BOOT_ENTRY structure now looks much more like the NT structure "BOOT_ENTRY".
- Adapt the code in bldrsup.c to these modifications, and re-enable FreeLdr-like boot-sector-file support code that was commented out.
More code cleanup will follow later.

svn path=/branches/setup_improvements/; revision=74952
2018-10-14 23:27:17 +02:00
Hermès Bélusca-Maïto 57402ee91e
[USETUP] Diverse fixes for path handling.
- Convert almost all swprintf() into StringCchPrintfW() and wcscpy() into StringCchCopyW();
- Explicitly add a trailing path separator to the "\Device\HarddiskX\PartitionY(\)" paths
  when they refer to FS directories (and not to partition objects);
- Remove useless (and half-buggy) "Remove trailing backslash" code.

With that, it is possible to install ReactOS in e.g. C:\ReactOS (as usual), C:\ReactOS\dir1\dir2 (as many dirs as you wish), and also in C:\ (yes yes!).
But in that latter case, a strange bug related to the registry arises...

Additionally:
- Adjust some comments;
- Add some debugging DPRINTs;
- The SetInstallPathValue() is part of the big hack I've mentioned in f51faa4a (r74709).

svn path=/branches/setup_improvements/; revision=74717
2018-10-14 23:22:55 +02:00
Hermès Bélusca-Maïto 3cb1392eff
[USETUP] When installing new FreeLDR entries for recognized DOS/OS-2 boot loaders, use distinct OS section names. Also, add detection for the Dell Real-Mode Kernel OS (DRMK).
svn path=/branches/setup_improvements/; revision=74932
2018-10-14 21:15:55 +02:00
Hermès Bélusca-Maïto 387e79c92e
[USETUP] Condense the different InstallFatXYBootSectorToDisk & ToFile functions into a InstallFatXYBootSector() function that is called by both the ToDisk and ToFile flavours.
Also, trim any potential trailing path separator from the NT disk partition path before opening the partition object itself for read/write access.

svn path=/branches/setup_improvements/; revision=74715
2018-10-14 21:15:34 +02:00
Hermès Bélusca-Maïto f13a379153
[USETUP] Move some functions around, but no functional code changes otherwise.
svn path=/branches/setup_improvements/; revision=74714
2018-10-14 21:14:31 +02:00
Eric Kohl debb1e521a [NETCFGX] Implement the Min and Max options for int, long and word parameters.
CORE-15095
2018-10-14 21:02:45 +02:00
Eric Kohl 731ef01361 [NEWDEV] Add InstallDevInstEx 2018-10-14 18:19:52 +02:00
Hermès Bélusca-Maïto fc35f6eb4b
[MKHIVE] Return win32-like error codes for functions that expect to do so. Fix and comment out some unused ERROR_xxx/STATUS_xxx defines. 2018-10-14 17:10:04 +02:00
Hermès Bélusca-Maïto 8f82b00fa6
[MKHIVE] Minor code formatting. 2018-10-14 16:28:13 +02:00
Hermès Bélusca-Maïto d91a47826e
[MKHIVE] Implement RegDeleteKeyW() and RegDeleteValueW(). 2018-10-14 15:59:57 +02:00
Hermès Bélusca-Maïto 6a44c10d5d
[MKHIVE] Minor improvements.
- Fix a bug in RegpCreateOrOpenKey() when we attempt to open an
  non-existing (sub-)key.
- Check failure of RegCreateKeyExW() in CreateSymLink().
- Remove unneeded includes.
- Update few comments.
2018-10-14 15:59:54 +02:00
Hermès Bélusca-Maïto ec3c61c233
[MKHIVE] Simplify CmiAddValueKey() by using CmpAddValueToList(). 2018-10-14 15:59:50 +02:00
Hermès Bélusca-Maïto a965cf6e04
[MKHIVE] Sync a bit more of reginf.c with the corresponding setupapi code. 2018-10-14 15:59:46 +02:00
Hermès Bélusca-Maïto 81d435a181
[MKHIVE] Implement and use RegCloseKey(). 2018-10-14 15:59:41 +02:00
Hermès Bélusca-Maïto 4caf391324
[NTOS][MKHIVE] Minor code formatting. 2018-10-14 15:59:34 +02:00
Hermès Bélusca-Maïto bf8a7d2db0
[CMLIB] Adjust parameter types and annotations. Add diagnostic assertions. 2018-10-14 15:59:31 +02:00
Katayama Hirofumi MZ 801b71b9bf [FONT][WIN32SS] Use ExFreePoolWithTag instead of ExFreePool (#941) 2018-10-14 09:47:52 +02:00
Pierre Schweitzer 3d13a464f7
[NTOSKRNL] Add the CcPinMappedDataCount counter 2018-10-13 22:51:44 +02:00
Pierre Schweitzer 1afcbbd125
[NTOSKRNL] Rewrite the way we create BCB for pinning
We won't reuse a BCB created for mapping, we will now have
our own dedicated BCB.
This allows having a bit more cleaner implementation of CcPinMappedData()
2018-10-13 22:51:44 +02:00
Mark Jansen 2d47c3be29
[CRT] spawn: define a unicode environment when needed
CORE-9182
2018-10-13 20:30:07 +02:00
Mark Jansen 80c53821c9
[SHELL32] CDefView: Query SFVM_DEFVIEWMODE before creating the list view.
CORE-14976
2018-10-13 20:28:49 +02:00
Hermès Bélusca-Maïto 8c0c90112e
[FASTFAT] Don't mess my debug log when partition SysType is printed! (when invalid chars are printed) 2018-10-13 19:57:24 +02:00
Hermès Bélusca-Maïto 47d539e6e0
[RTL] Make a RtlQueryEnvironmentVariable_U() DPRINT a little bit more useful. 2018-10-13 19:44:13 +02:00
Pierre Schweitzer f3ea47d94d
[KMTESTS:CC] Add more tests for CcPinMappedData() 2018-10-13 19:24:29 +02:00
Eric Kohl a5172b4699 [NETCFGX] Move the NetClassInstaller to a separate file. 2018-10-13 19:18:37 +02:00
Pierre Schweitzer c467169708
[KMTESTS:CC] Properly check for memory allocations 2018-10-13 19:17:00 +02:00
Pierre Schweitzer ce0650d37d
[KMTESTS:CC] Add more tests for CcPinMappedData() 2018-10-13 19:15:48 +02:00
Pierre Schweitzer e3531499c2
[KMTESTS:CC] Add more tests for CcPinMappedData() 2018-10-13 19:13:07 +02:00
Pierre Schweitzer 991db73e37
[KMTESTS:CC] Add more tests for CcPinMappedData() 2018-10-13 18:53:08 +02:00
Pierre Schweitzer 45231fbbc5
[KMTESTS:CC] Add a test showing our CcPinMappedData() implementation is broken 2018-10-13 14:24:52 +02:00
Mark Jansen ef202724d8
[SDK] Implement __wine_spec_unimplemented_stub with ntdll functions 2018-10-12 19:30:36 +02:00
Mark Jansen 1968776bf2
[DBGHELP] Exclude stubs from pch 2018-10-12 19:30:36 +02:00
Mark Jansen b494abbd72
[SDK] Add version option to our spec2def cmake command 2018-10-12 19:30:36 +02:00
Mark Jansen 4e3f76352a
[SDK] Add the WITH_RELAY option to msvc's spec2def command. (GCC already had it) 2018-10-12 19:30:35 +02:00
Mark Jansen d564c7c8e3
[SPEC2DEF] Fix support for different OS versions. 2018-10-12 19:30:35 +02:00
Mark Jansen 71993fd8c9
[KERNEL32] Fix some stubs for 0x600+ 2018-10-12 19:30:24 +02:00
Serge Gautherie a06b425839 [NTOS:KD] A few trivial code improvements 2018-10-12 08:43:02 +02:00
Serge Gautherie 561a10056b [NTOS:KD] Remove an unreachable "break;"
On behalf of Kudratov Olimjon.
CORE-8545
2018-10-12 08:43:02 +02:00
Pierre Schweitzer 1acb5a9fab
[NTOSKRNL] Don't keep the spin lock hold too long when we lost the BCB race
This will avoid a deadlock on unpin.
2018-10-12 08:20:32 +02:00
Pierre Schweitzer cf8ba3bd9c
[NTOSKRNL] Rewrite BCB handling to be more robust
We now handle race conditions when creating BCB to avoid
having duplicated BCB per shared maps.
Also, we already specify whether the memory will be pinned
when creating the BCB, to avoid potential duplications or
BCB misuse.
2018-10-11 23:15:01 +02:00
Pierre Schweitzer 8f4d8cb616
[APPWIZ] Update French translation 2018-10-10 08:42:38 +02:00
Eric Kohl d58f6558e0 [NETCFGX] NetworkPropertySheetProvider: Fix property selection because the property list box is sorted.
CORE-15095
2018-10-09 23:19:48 +02:00
Pierre Schweitzer 9b2a53e56b
[BOOTDATA] Update optional modules according to 287d35b
This fixes optional modules being installed in places
that make no sense.
This also fixes auto installation of Gecko. Thus, this
fixes unattended setup of ReactOS for testbots.

CORE-15160
2018-10-09 08:40:41 +02:00
Hermès Bélusca-Maïto 4e6fc201a0
[MKHIVE] Fixes for the previous fixes.
- Fix parsing of the options.
- Only uppercase the file name part and NOT the full path!
  And do it in a way GCC-Linux correctly understands, aka.:
      *ptr = toupper(*ptr); ++ptr;
  but NOT!:
      *ptr++ = toupper(*ptr);
  (that last one worked on GCC-Win and MSVC).

[CMAKE] Let's keep SETUPREG.HIV and BCD hive file names in uppercase
(use the '-u' switch) while keeping the other ones in lowercase.

Should definitively fix GCCLin builder!
2018-10-09 01:33:10 +02:00
Hermès Bélusca-Maïto f37dd1e10a
[MKHIVE] Remove support for '/' options, this does not behave well under Linux. 2018-10-09 00:25:01 +02:00
Hermès Bélusca-Maïto efbe071e02
[MKHIVE] Minor additional functionality.
- Add support for '/' switch characters.
- Add '-?' switch.

TEMPORARY:
- Add a '-u' switch to generate hive file names in uppercase (by default
  we keep these in lowercase). Should help in fixing GCCLin builder.

[CMAKE] Fix expected file name case. Should help in fixing GCCLin builder.
2018-10-09 00:15:14 +02:00
Hermès Bélusca-Maïto c069ca1797
[MKHIVE] Improve dprint output (delimiting where strings start & end: is useful for empty strings).
svn path=/branches/setup_improvements/; revision=74768
2018-10-08 21:23:39 +02:00
Hermès Bélusca-Maïto 84d2264d9b
[MKHIVE][CMAKE] Make mkhive a bit more flexible, so that it can generate only specific hives on-demand (and not all of them always at once).
This commit is needed for building a single bootcd registry hive. It will also enable 1-st stage setup to have a proper registry present as done on Windows.
CORE-13347

[CMAKE]
Note that the mkhive commands should really depend on the generated UTF16 INF files since the latter are those that are actually used as input for mkhive.
Otherwise, the mkhive calls & the UTF16 INF file conversion is not serialized and we can generate "corrupted" hives due to the fact that mkhive is using
INF files that are in the process of being (and therefore, only partially) generated.

svn path=/branches/setup_improvements/; revision=74741
svn path=/branches/setup_improvements/; revision=74749
2018-10-08 21:23:38 +02:00
Hermès Bélusca-Maïto 287d35b84d
[BOOTDATA][CMAKE] Enumerate the four first installation directories in 'canonical' order, to keep compatibility with Windows' txtsetup.sif/layout.inf. 2018-10-08 21:16:58 +02:00