From 42d52c68a58a906b7a91ff070d89c1d3353fa3b5 Mon Sep 17 00:00:00 2001 From: Gero Kuehn Date: Mon, 19 Jul 2004 01:33:48 +0000 Subject: [PATCH] added preparations for installing .INF files (for class installers) during setup, added Reactos\Inf svn path=/trunk/; revision=10219 --- reactos/Makefile | 6 ++++- reactos/lib/syssetup/Makefile | 4 ++-- reactos/lib/syssetup/install.c | 44 +++++++++++++++++++++++++++++++++- reactos/media/inf/NET_NIC.inf | 24 +++++++++++++++++++ reactos/media/inf/syssetup.inf | 16 +++++++++++++ 5 files changed, 90 insertions(+), 4 deletions(-) create mode 100644 reactos/media/inf/NET_NIC.inf create mode 100644 reactos/media/inf/syssetup.inf diff --git a/reactos/Makefile b/reactos/Makefile index 37477547b37..8ccfb9097a8 100644 --- a/reactos/Makefile +++ b/reactos/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.235 2004/07/10 21:44:14 sedwards Exp $ +# $Id: Makefile,v 1.236 2004/07/19 01:33:48 kuehng Exp $ # # Global makefile # @@ -809,6 +809,7 @@ install_clean: $(RM) $(INSTALL_DIR)/symbols/*.* $(RM) $(INSTALL_DIR)/media/fonts/*.* $(RM) $(INSTALL_DIR)/media/*.* + $(RM) $(INSTALL_DIR)/inf/*.* $(RM) $(INSTALL_DIR)/bin/*.* $(RM) $(INSTALL_DIR)/*.com $(RM) $(INSTALL_DIR)/*.bat @@ -818,12 +819,14 @@ install_clean: $(RMDIR) $(INSTALL_DIR)/symbols $(RMDIR) $(INSTALL_DIR)/media/fonts $(RMDIR) $(INSTALL_DIR)/media + $(RMDIR) $(INSTALL_DIR)/inf $(RMDIR) $(INSTALL_DIR)/bin $(RMDIR) $(INSTALL_DIR) install_dirs: $(RMKDIR) $(INSTALL_DIR) $(RMKDIR) $(INSTALL_DIR)/bin + $(RMKDIR) $(INSTALL_DIR)/inf $(RMKDIR) $(INSTALL_DIR)/media $(RMKDIR) $(INSTALL_DIR)/media/fonts $(RMKDIR) $(INSTALL_DIR)/symbols @@ -836,6 +839,7 @@ install_before: $(CP) bootc.lst $(INSTALL_DIR)/bootc.lst $(CP) boot.bat $(INSTALL_DIR)/boot.bat $(CP) aboot.bat $(INSTALL_DIR)/aboot.bat + $(CP) media/inf $(INSTALL_DIR)/inf $(CP) media/fonts $(INSTALL_DIR)/media/fonts $(CP) media/nls $(INSTALL_DIR)/system32 $(CP) media/nls/c_1252.nls $(INSTALL_DIR)/system32/ansi.nls diff --git a/reactos/lib/syssetup/Makefile b/reactos/lib/syssetup/Makefile index 8d774e9bf23..bc9dce1596a 100644 --- a/reactos/lib/syssetup/Makefile +++ b/reactos/lib/syssetup/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.9 2004/05/29 21:24:47 hbirr Exp $ +# $Id: Makefile,v 1.10 2004/07/19 01:33:14 kuehng Exp $ PATH_TO_TOP = ../.. @@ -15,7 +15,7 @@ TARGET_CFLAGS = -Wall -Werror -fno-builtin TARGET_CFLAGS += -D__USE_W32API -D_WIN32_IE=0x0500 TARGET_RCFLAGS += -D__USE_W32API -D_WIN32_IE=0x0500 -TARGET_LFLAGS = -nostartfiles -nostdlib +TARGET_LFLAGS = -nostartfiles TARGET_OBJECTS = dllmain.o install.o logfile.o wizard.o diff --git a/reactos/lib/syssetup/install.c b/reactos/lib/syssetup/install.c index 048373e2e4f..b0ef3811be1 100644 --- a/reactos/lib/syssetup/install.c +++ b/reactos/lib/syssetup/install.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: install.c,v 1.13 2004/06/24 09:17:33 gvg Exp $ +/* $Id: install.c,v 1.14 2004/07/19 01:33:14 kuehng Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS system libraries @@ -31,6 +31,8 @@ #include #include #include +#include +#include #include #include @@ -248,6 +250,41 @@ CreateTempDir(LPCWSTR VarName) RegCloseKey (hKey); } +BOOL ProcessSysSetupInf(void) +{ +#define SECTIONBUF_SIZE 4096 + TCHAR *pBuf2; + TCHAR pBuf[SECTIONBUF_SIZE]; + + SetLastError(0); + + DWORD dwBufSize = GetPrivateProfileSection(_T("DeviceInfsToInstall"),pBuf,SECTIONBUF_SIZE,_T("Inf\\SYSSETUP.INF")); + + // fix this first... + if(GetLastError() == ERROR_CALL_NOT_IMPLEMENTED) + return TRUE; + + if(dwBufSize == SECTIONBUF_SIZE-2) + return FALSE; + if(!dwBufSize) + return FALSE; + pBuf2=pBuf; + while(*pBuf2) + { + OutputDebugString(_T("Calling Class Installer for ")); + OutputDebugString(pBuf2); + OutputDebugString(_T("\r\n")); + +// Currently unsupported +// if(!SetupDiInstallClass(NULL,pBuf2,DI_QUIETINSTALL,NULL)) +// return FALSE; + pBuf2+=_tcslen(pBuf2)+1; + } + + return TRUE; +} + + DWORD STDCALL InstallReactOS (HINSTANCE hInstance) { @@ -343,6 +380,11 @@ InstallReactOS (HINSTANCE hInstance) CreateTempDir(L"TEMP"); CreateTempDir(L"TMP"); + if(!ProcessSysSetupInf()) + { + DebugPrint("ProcessSysSetupInf() failed!\n"); + return 0; + } #if 1 InstallWizard (); #endif diff --git a/reactos/media/inf/NET_NIC.inf b/reactos/media/inf/NET_NIC.inf new file mode 100644 index 00000000000..615dea65009 --- /dev/null +++ b/reactos/media/inf/NET_NIC.inf @@ -0,0 +1,24 @@ +; Network.INF +; +; Installation file for the Net class +; +[version] +LayoutFile = layout.inf +signature = "$Reactos$" +Class = Net +ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318} +provider = %Reactos% +DriverVer=10/19/1999,5.00.2157.1 + +[ClassInstall32.NT] +AddReg = NetClass.NT.AddReg + +[NetClass.NT.AddReg] +HKR, , , 0, %DisplayClassName% +HKR, , EnumPropPages32, 0, "NetCfgx.dll,NetPropPageProvider" +HKR, , Icon, 0, "-5" +HKR, , Installer32, 0, "NetCfgx.dll,NetClassInstaller" + +[Strings] +Reactos="Reactos Team" +ClassName="Network adapters" diff --git a/reactos/media/inf/syssetup.inf b/reactos/media/inf/syssetup.inf new file mode 100644 index 00000000000..fafc718b643 --- /dev/null +++ b/reactos/media/inf/syssetup.inf @@ -0,0 +1,16 @@ +; +; For Windows, this file controls various aspects of the Installation and +; Upgrade process. If you know a good documentation about this file, +; please add a link here. +; +; +[Version] +signature="$Reactos$" +ClassGUID={00000000-0000-0000-0000-000000000000} + + +; These .INFs install the device classes +[DeviceInfsToInstall] +; MS uses netnovel.inf as class-installer INF for NICs +; we use a separate one to keep things clean +NET_NIC.inf