Win9x的启动和关机过程的过程是怎样的?我想做一个软件,在启动前加身份认证,关机是捕获关机消息。
解决方案 »
- 急:请问如何在VC6中使用PNG图片,实现异形窗口透明?
- 关于DEBUG与RELEASE的问题。为什么在DEBUG模式下内存不涨,而在Release模式下内存不释放?
- atl写的程序,客户调用的时候出现一个联结错误
- 旋转按钮控件在设置Set buddy integer后出现Debug Assertion Failed!错误!
- 怎样把程序做成window服务(后台运行),100分马上出贴
- 菜问题:Frame主窗体显示之前,如何弹出password对话框?
- 在线等,一个校问题大虾出招!
- 求救 组件创建实例失败
- 硬盘抢救!!!大家帮忙!
- 请问:#pragma pack(push , pop)是做什么用的?
- fatal erro c1010:这个提示是啥意思啊?
- 怎样把工具条集成到IDE中
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,这时,启动程序结束,装载阶段开始
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);
}
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