[SYSSETUP] Use a $winnt$.inf file to retrieve setup information for the 2nd-stage setup.

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 registry values "SourcePath"
and "ServicePackSourcePath" are created / updated in:
HKLM\Software\Microsoft\Windows\CurrentVersion\Setup .

svn path=/branches/setup_improvements/; revision=75524
This commit is contained in:
Hermès Bélusca-Maïto 2017-08-10 19:21:08 +00:00
parent 7e248feabf
commit c8d37c1a0d
No known key found for this signature in database
GPG key ID: 3B2539C65E7B93D0
2 changed files with 194 additions and 88 deletions

View file

@ -44,15 +44,19 @@ typedef struct _TIMEZONE_ENTRY
ULONG Index;
} TIMEZONE_ENTRY, *PTIMEZONE_ENTRY;
/* Private Setup data shared between syssetup.dll and netshell.dll */
typedef struct _SETUPDATA
{
HFONT hTitleFont;
HFONT hBoldFont;
WCHAR SourcePath[MAX_PATH]; // PCWSTR
WCHAR UnattendFile[MAX_PATH]; // PCWSTR
WCHAR OwnerName[51];
WCHAR OwnerOrganization[51];
WCHAR ComputerName[MAX_COMPUTERNAME_LENGTH + 1]; /* max. 15 characters */
WCHAR AdminPassword[128]; /* max. 127 characters */
WCHAR AdminPassword[128]; /* max. 127 characters */
BOOL UnattendSetup;
BOOL DisableGeckoInst;
@ -63,7 +67,7 @@ typedef struct _SETUPDATA
DWORD DisableAutoDaylightTimeSet;
LCID LocaleID;
HINF hUnattendedInf;
HINF hSetupInf;
UINT uFirstNetworkWizardPage;
UINT uPostNetworkWizardPage;