reactos操作系统实现(67)

前面分析安装后,就会调用setup.exe程序运行,在入口函数里处理命令行参数newsetup后,就会调用函数newsetup来运行,下面来仔细地分析这个函数是到底做什么事情。如下:

#001  static VOID

#002  RunNewSetup (HINSTANCE hInstance)

#003  {

#004    HMODULE hDll;

#005    PINSTALL_REACTOS InstallReactOS;

#006 

 

这里进行配置参数初始化,比如注册表里参数,固定文件保存的目录等等。

#007    /* some dlls (loaded by syssetup) need a valid user profile */

#008    InitializeProfiles();

#009 

 

这里加载动态连接库syssetup文件。

#010    hDll = LoadLibrary (TEXT("syssetup"));

#011    if (hDll == NULL)

#012      {

#013        DPRINT("Failed to load 'syssetup'!/n");

#014        return;

#015      }

#016 

 

从动态连接库syssetup里获取安装ReactOS的函数InstallReactOS

#017    DPRINT("Loaded 'syssetup'!/n");

#018    InstallReactOS = (PINSTALL_REACTOS)GetProcAddress (hDll, "InstallReactOS");

#019 

#020    if (InstallReactOS == NULL)

#021      {

#022        DPRINT("Failed to get address for 'InstallReactOS()'!/n");

#023        FreeLibrary (hDll);

#024        return;

#025      }

#026 

 

接着运行动态连接库里函数InstallReactOS

#027    InstallReactOS (hInstance);

#028 

 

运行完成后,就开始释放动态连接库。

#029    FreeLibrary (hDll);

#030  }

你可能感兴趣的:(reactos操作系统实现(67))