Author: tfaber
Date: Mon Apr 20 09:35:39 2015
New Revision: 67324
URL:
http://svn.reactos.org/svn/reactos?rev=67324&view=rev
Log:
[SYSSETUP]
- Addendum to r66069: also install tcpip on the livecd
CORE-9564 CORE-9113
Modified:
trunk/reactos/dll/win32/syssetup/install.c
trunk/reactos/dll/win32/syssetup/wizard.c
Modified: trunk/reactos/dll/win32/syssetup/install.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/install…
==============================================================================
--- trunk/reactos/dll/win32/syssetup/install.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/syssetup/install.c [iso-8859-1] Mon Apr 20 09:35:39 2015
@@ -754,12 +754,92 @@
return FALSE;
}
+/* Install a section of a .inf file
+ * Returns TRUE if success, FALSE if failure. Error code can
+ * be retrieved with GetLastError()
+ */
+static
+BOOL
+InstallInfSection(
+ IN HWND hWnd,
+ IN LPCWSTR InfFile,
+ IN LPCWSTR InfSection OPTIONAL,
+ IN LPCWSTR InfService OPTIONAL)
+{
+ WCHAR Buffer[MAX_PATH];
+ HINF hInf = INVALID_HANDLE_VALUE;
+ UINT BufferSize;
+ PVOID Context = NULL;
+ BOOL ret = FALSE;
+
+ /* Get Windows directory */
+ BufferSize = MAX_PATH - 5 - wcslen(InfFile);
+ if (GetWindowsDirectoryW(Buffer, BufferSize) > BufferSize)
+ {
+ /* Function failed */
+ SetLastError(ERROR_GEN_FAILURE);
+ goto cleanup;
+ }
+ /* We have enough space to add some information in the buffer */
+ if (Buffer[wcslen(Buffer) - 1] != '\\')
+ wcscat(Buffer, L"\\");
+ wcscat(Buffer, L"Inf\\");
+ wcscat(Buffer, InfFile);
+
+ /* Install specified section */
+ hInf = SetupOpenInfFileW(Buffer, NULL, INF_STYLE_WIN4, NULL);
+ if (hInf == INVALID_HANDLE_VALUE)
+ goto cleanup;
+
+ Context = SetupInitDefaultQueueCallback(hWnd);
+ if (Context == NULL)
+ goto cleanup;
+
+ ret = TRUE;
+ if (ret && InfSection)
+ {
+ ret = SetupInstallFromInfSectionW(
+ hWnd, hInf,
+ InfSection, SPINST_ALL,
+ NULL, NULL, SP_COPY_NEWER,
+ SetupDefaultQueueCallbackW, Context,
+ NULL, NULL);
+ }
+ if (ret && InfService)
+ {
+ ret = SetupInstallServicesFromInfSectionW(
+ hInf, InfService, 0);
+ }
+
+cleanup:
+ if (Context)
+ SetupTermDefaultQueueCallback(Context);
+ if (hInf != INVALID_HANDLE_VALUE)
+ SetupCloseInfFile(hInf);
+ return ret;
+}
+
DWORD WINAPI
InstallLiveCD(IN HINSTANCE hInstance)
{
STARTUPINFOW StartupInfo;
PROCESS_INFORMATION ProcessInformation;
BOOL bRes;
+
+ /* Hack: Install TCP/IP protocol driver */
+ bRes = InstallInfSection(NULL,
+ L"nettcpip.inf",
+ L"MS_TCPIP.PrimaryInstall",
+ L"MS_TCPIP.PrimaryInstall.Services");
+ if (!bRes && GetLastError() != ERROR_FILE_NOT_FOUND)
+ {
+ DPRINT("InstallInfSection() failed with error 0x%lx\n",
GetLastError());
+ }
+ else
+ {
+ /* Start the TCP/IP protocol driver */
+ SetupStartService(L"Tcpip", FALSE);
+ }
if (!CommonInstall())
goto error;
@@ -844,71 +924,6 @@
return FALSE;
return TRUE;
-}
-
-/* Install a section of a .inf file
- * Returns TRUE if success, FALSE if failure. Error code can
- * be retrieved with GetLastError()
- */
-static
-BOOL
-InstallInfSection(
- IN HWND hWnd,
- IN LPCWSTR InfFile,
- IN LPCWSTR InfSection OPTIONAL,
- IN LPCWSTR InfService OPTIONAL)
-{
- WCHAR Buffer[MAX_PATH];
- HINF hInf = INVALID_HANDLE_VALUE;
- UINT BufferSize;
- PVOID Context = NULL;
- BOOL ret = FALSE;
-
- /* Get Windows directory */
- BufferSize = MAX_PATH - 5 - wcslen(InfFile);
- if (GetWindowsDirectoryW(Buffer, BufferSize) > BufferSize)
- {
- /* Function failed */
- SetLastError(ERROR_GEN_FAILURE);
- goto cleanup;
- }
- /* We have enough space to add some information in the buffer */
- if (Buffer[wcslen(Buffer) - 1] != '\\')
- wcscat(Buffer, L"\\");
- wcscat(Buffer, L"Inf\\");
- wcscat(Buffer, InfFile);
-
- /* Install specified section */
- hInf = SetupOpenInfFileW(Buffer, NULL, INF_STYLE_WIN4, NULL);
- if (hInf == INVALID_HANDLE_VALUE)
- goto cleanup;
-
- Context = SetupInitDefaultQueueCallback(hWnd);
- if (Context == NULL)
- goto cleanup;
-
- ret = TRUE;
- if (ret && InfSection)
- {
- ret = SetupInstallFromInfSectionW(
- hWnd, hInf,
- InfSection, SPINST_ALL,
- NULL, NULL, SP_COPY_NEWER,
- SetupDefaultQueueCallbackW, Context,
- NULL, NULL);
- }
- if (ret && InfService)
- {
- ret = SetupInstallServicesFromInfSectionW(
- hInf, InfService, 0);
- }
-
-cleanup:
- if (Context)
- SetupTermDefaultQueueCallback(Context);
- if (hInf != INVALID_HANDLE_VALUE)
- SetupCloseInfFile(hInf);
- return ret;
}
static DWORD CALLBACK
Modified: trunk/reactos/dll/win32/syssetup/wizard.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/wizard.…
==============================================================================
--- trunk/reactos/dll/win32/syssetup/wizard.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/syssetup/wizard.c [iso-8859-1] Mon Apr 20 09:35:39 2015
@@ -1807,7 +1807,7 @@
RegistrationData->hwndDlg = hwndDlg;
RegistrationData->DllCount = DllCount;
RegistrationThread = CreateThread(NULL, 0, RegistrationProc,
- (LPVOID) RegistrationData, 0, NULL);
+ RegistrationData, 0, NULL);
if (RegistrationThread != NULL)
{
CloseHandle(RegistrationThread);