Win9x的启动和关机过程的过程是怎样的?我想做一个软件,在启动前加身份认证,关机是捕获关机消息。

解决方案 »

  1.   

    win9x的启动过程在这:http://www.65888.com/soft/info/608.htm
    NT的给你贴上:
    NT启动过程是什么日期:2002-2-1 8:42:37
    出处:- 
    作者:Pconline feeing 
     
      首先,NT启动所需文件是:  
       
      Ntldr-这是一个隐藏的,只读的系统文件,用来装载操作系统Boot.ini-这是一个只读的系统文件,用来在基于Intel x86的计算机上建立启动装载操作系统选择菜单的文件Bootsect.dos-这是个隐藏的系统文件,如果另外的操作系统被选择,则被Ntldr装载到内存。  
      Ntdetect.com-这是个隐藏的,只读系统文件。,用于检测可用的硬件并建立一个硬件列表。  
      Ntbootddd.sys-这个文件仅被从SCSI磁盘启动的系统使用。  
       
      共同的启动序列文件是:  
       
      Ntoskrnl.exe-Windows NT 的内核System-这个文件是系统配置设置的集合。  
      Device drivers-这些是支持各种设备驱动器的文件  
      Hal.dll-硬件抽象层软件  
       
       
      启动序列如下:  
       
      1、电源自检程序开始运行  
      2、主引导记录被装入内存,并且程序开始执行  
      3、活动分区的引导扇区被装入内存  
      4、Ntldr从引导扇区被装入并初始化  
      5、将处理器的实模式改为32位平滑内存模式  
      6、Ntldr开始运行适当的小文件系统驱动程序。小文件系统驱动程序是建立在NTLDR内部的,它能读FAT或NTFS。  
      7、Ntldr读boot.ini文件  
      8、Ntldr装载所选操作系统 
      *如果WindowsNT被选择,Ntldr运行Ntdetect.com  
      *对于其他的操作系统,Ntldr装载并运行Bootsect.dos然后向它传递控制.  
      windows NT过程结束.  
      9.Ntdetect.com 搜索计算机硬件并将列表传送给Ntldr,以便将这些信息写进HKE Y_LOCAL_MACHINEHARDWARE中.   
      10.然后Ntldr装载Ntoskrnl.exe,Hal.dll和系统信息集合  
      11.Ntldr搜索系统信息集合,并装载设备驱动配置以便设备在启动时开始工作  
      12.Ntldr把控制权交给Ntoskrnl.exe,这时,启动程序结束,装载阶段开始 
      

  2.   

    谢谢yintongshun(踏雪有痕), 我主要想了解Windows的装载过程,比如哪个进程调用哪个进程?
      

  3.   

    DWORD dwVersion;
    TOKEN_PRIVILEGES tkp;
    HANDLE hToken;
        
    dwVersion = GetVersion();
    if(dwVersion < 0x80000000)
    {//NT

           if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) 
    {
    MessageBox("OpenProcessToken failed!");
    }
            LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid); //获得本地机唯一的标识
    tkp.PrivilegeCount = 1;  
    tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 
            AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES) NULL, 0); //调整获得的权限

    if (GetLastError() != ERROR_SUCCESS) 
    {
                MessageBox("AdjustTokenPrivileges enable failed!");
    }

    BOOL fResult =InitiateSystemShutdown( 
    "Lf",                 
    "WINDOWS将在上面的时间内关机,请做好保存工作!",  // 显示的消息
    10,                                // 关机所需的时间
    TRUE,                                 
    TRUE);                             //设为TRUE为重起,设为FALSE为关机

            if(!fResult) 
            { 
    MessageBox("InitiateSystemShutdown failed."); 

        } else
    {//95
    ExitWindowsEx(EWX_FORCE | EWX_SHUTDOWN,0);
    }
      

  4.   

    看进程调用的话那你看看《WINDOWS95系统核心编程》吧
      

  5.   

    Gina.dll的问题:
    http://www.vchelp.net/vchelp/zart/cad_key.asp?type_id=25&class_id=1&cata_id=2&article_id=84&search_term=http://www.winmag.com.cn/forum/itemdisplay.asp?boardid=6&id=6190http://www.vckbase.com/document/viewdoc.asp?id=242