• last updated 10 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
[SETUPLIB]: Factor out and introduce a ParseArcName() helper function that does its job. Used in exiting code and in later code in this file.
[SETUPLIB]: Code formatting (cut out the too long lines).
  • More
  • CR-120
  • resumed reviewing
[USETUP]: Sync with tfaber's r75536.
[REACTOS]: Adapt the 1st-stage GUI setup to compile with the setuplib.
    • -0
    • +71
    /branches/setup_improvements/base/setup/reactos/inffile.c
[USETUP]: Sync with hpoussin's r75532, and add the corresponding INF_FreeData().
[USETUP]: Close the txtsetup.sif file at the end of the operations.
[USETUP]: Addendum to 75537.
[SETUPLIB]: Fix compilation errors when using these headers with usetup (that doesn't use setupapi.dll) and "reactos" (the 1st-stage GUI installer, which uses setupapi.dll).
[USETUP]: Move the files in ./interface/ back into the main directory, since (almost) all of the usetup source files concerns the user interface of the setup program...
[USETUP]: Fix the keyboard selection in the list of OS installations that can be updated.
[SYSSETUP]: Following r75518, we use the $winnt$.inf file (created in System32 by the 1st-stage installer) as the setup information file for the 2nd-stage setup for:

- retrieving the installation source media path;

- retrieving the unattended information that was copied from the unattend.inf file from the installation source media.

The installation source media path is converted from NT format to Win32 format for usage with Win32 functions and storage in the registry: this is done by GetInstallSourceWin32(),

which replaces the hackish GetRosInstallCD() function.

The $winnt$.inf file is also updated, and the values "SourcePath" and "ServicePackSourcePath" in HKLM\Software\Microsoft\Windows\CurrentVersion\Setup are created / updated.

In addition, delete the created fonts where needed.

[SYSSETUP]: Use ARRAYSIZE / _countof instead of sizeof ratios.
[SYSSETUP]: Code formatting.
[USETUP]: NT RTL thread functions use 'NULL' (instead of 'INVALID_HANDLE_VALUE' which is a Win32 thing) for thread handles that are "invalid" / uninitialized.
[USETUP][SETUPLIB]: Code refactoring:

- Move several global setup variables into a structure "USETUP_DATA", similar to the syssetup structure "SETUPDATA"

(or the WIP 1st-stage installer structure of the same name), so that these variables can be set easily by different helper setup functions;

- Move CheckUnattendedSetup() and GetSourcePaths() to setuplib and make CheckUnattendedSetup() use the USETUP_DATA structure;

- Add a LoadSetupInf() function that loads the txtsetup.sif file (factoring out the corresponding code in usetup);

- Add a InstallSetupInfFile() function (that I'll certainly rename later on) whose purpose is to create a valid "$winnt$.inf" setup installation file

in the ReactOS\system32 directory, which should help the 2nd-stage installer to correctly retrieve the source installation media we used during 1st-stage,

and contain the unattended setup lines copied from unattend.inf. This is done in a Windows-compatible way.

- Add the lib/infsupp.c and lib/setuplib.c to compilation.

    • -0
    • +512
    /branches/setup_improvements/base/setup/lib/setuplib.c
[USETUP]: Minor code formatting only.
[USETUP]: Sprinkle some INF_FreeData() calls to balance the INF_GetData() / INF_GetDataField() calls. They currently do nothing, since the getter functions don't actually capture (copy) the strings but merely return pointers to read-only strings. But the calls are placed here for consistency, because if one day the getters implementation is changed to capture the strings, then it would now be needed to free the allocated buffers.

In addition, fix a buggy call to INF_GetData() -- should be instead INF_GetDataField() -- in AddSectionToCopyQueue().

[USETUP][SETUPLIB]: Move some INF-related code from usetup to the setuplib.

- Move the generic INF_GetDataField() and INF_GetData() helpers to setuplib, and rework them a bit so that they explicitly call setupapi functions (or implementations thereof when being used in usetup);

- Rework the headers in accordance;

- and Fix compilation in lib/registry.c .

    • -0
    • +119
    /branches/setup_improvements/base/setup/lib/infsupp.c
[USETUP]: Comment out SetupQueueCopyWNew() declaration which is not used at all. Remove unnecessary casts in the INF_OpenBufferedFileA() call.
[SETUPLIB]: Introduce defines for size units.

[USETUP]: Use them in the code.

[SETUPLIB]: IniCacheSave(): use the OBJ_CASE_INSENSITIVE flag.
[BOOTDATA]: Update hivesetup.inf
Sync with trunk r75504.
  1. … 213 more files in changeset.
Sync branch with trunk r75394.
  1. … 127 more files in changeset.
How do I handle such situation correctly?

How do I handle such situation correctly?

Not without doing some work, or copying the .Buffer to a PWSTR. It looks like NtfsOpenFile() passes the variable on to several functions that expect a PWSTR. What is the issue with leaving it as a ...

Not without doing some work, or copying the .Buffer to a PWSTR. It looks like NtfsOpenFile() passes the variable on to several functions that expect a PWSTR. What is the issue with leaving it as a PWSTR? That maybe the buffer won't be null-terminated? I can see that FullPath.Buffer will be, I'm not sure about FileObject->FileName.Buffer.

[USETUP][SETUPLIB]: Improve how the Setup* INF APIs are interfaced in the code.

Define prototypes compatibles (including their calling convention) to the ones defined by setupapi (.h/.dll) so that it can be possible to either use

an internal implementation of these functions (via the inflib library), as currently done, or using imported setupapi functions, as would be done by

the future 1st-stage GUI installer.

[SETUPLIB]: Cleanup the registry.c file and use the infsupp.h header.

Fixes build that was technically broken since r75247.

    • -0
    • +53
    /branches/setup_improvements/base/setup/lib/infsupp.h
Sync with trunk r75344 to get the inflib stuff in place.
    • -90
    • +49
    /branches/setup_improvements/media/sdb/sysmain.xml