1void CDrawView::OnLButtonDown(UINT nFlags, CPoint point)
2{
3 m_ptOrigin=point;
SetCapture();
4 CView::OnLButtonDown(nFlags, point);
5}
6
7
然后Q在鼠标弹vӞ响应 WM_LBUTTONUP消息Q因此添?/p>
q样便在客户区绘Z一条直Uѝ但是有个缺P是在鼠标移动的q程中,屏幕上没有Q何显C。而我们希望在按下鼠标后,随着鼠标拖动Q可以看C条直UK之移动,在鼠标弹hQ这条直U也定下来。因此,试着dWM_MOUSEMOVE消息响应函数 d之后Q在鼠标UdӞ实有直U绘出,但更大的问题出现了,只见屏幕是都是直Uѝؓ解决此问题,google良久Q终于找C个解军_法——在鼠标UdӞ用异或笔模式l图Q即以与屏幕相反的颜色绘?Pixel is the inverse of the screen color——MSDN)。具体做法是Q记录鼠标移动的上一个点坐标Q在鼠标UdӞ讄异或l图模式Q绘制原来的直线Q再l制新直Uѝ具体代码如下: q样Q绘制直U的效果和windows自带的绘囄序效果差不多了?br />
void CDrawView::OnLButtonUp(UINT nFlags, CPoint point)
2{
if (GetCapture() != this) return;
3 CDC *pDC=GetDC();
4 pDC->MoveTo(m_ptOrigin);
5 pDC->LineTo(point);
6 ReleaseDC(pDC);
ReleaseCapture();
7}
8
void CDrawView::OnMouseMove(UNIT nFlags, CPoint point)
2{
if (GetCapture() != this)
return;
3 CDC *pDC=GetDC();
4 pDC->MoveTo(m_ptPrev);
5 pDC->LineTo(point);
6 ReleaseDC(pDC);
7}
//在CDrawView中定义:
2// CPoint m_ptPrev;
3// CPoint m_ptOld;
4
5void CDrawView::OnLButtonDown(UINT nFlags, CPoint point)
6{
7 m_ptPrev = point;
8 m_ptOld = point;
9 SetCapture();
10 CView::OnLButtonDown(nFlags, point);
11}
12
13void CDrawView::OnLButtonUp(UINT nFlags, CPoint point)
14{
15 if (GetCapture() != this)
16 return;
17 CDC *pDC=GetDC();
18 pDC->MoveTo(m_ptPrev);
19 pDC->LineTo(point);
20 ReleaseDC(pDC);
21 ReleaseCapture();
22}
23
24void CDrawView::OnMouseMove(UINT nFlags, CPoint point)
25{
26 if (GetCapture() != this)
27 return;
28 int oldMode;
29 CDC *pDC=GetDC();
30 oldMode = pDC->GetROP2();
31 pDC->SetROP2(R2_NOT);
32 pDC->MoveTo(m_ptPrev);
33 pDC->LineTo(m_ptOld);
34
35 pDC->MoveTo(m_ptPrev);
36 pDC->LineTo(point);
37 pDC->SetROP2(oldMode);
38 m_ptOld = point;
39 ReleaseDC(pDC);
40}
1. 预引|Pre-BootQ阶D;
2. 引导阶段Q?/p>
3. 加蝲内核阶段Q?br />
4. 初始化内栔RD;
5. 登陆?/p>
每个启动阶段的详l介l?/p>
aQ?预引导阶D?/p>
在按下计机甉|使计机启动Qƈ且在Windows XP专业版操作系l启动之前这D|
_我们UC为预引导QPre-BootQ阶D,在这个阶D里Q计机首先q行Power On Sel
f TestQPOSTQ,POST系l的d存以及其他硬件设备的现状。如果计机pȝ的BI
OSQ基输入/输出pȝQ是x即用的,那么计算机硬件设备将l过验以及完成配|?br />
计算机的基础输入/输出pȝQBIOSQ定位计机的引D备,然后MBRQMaster Boot Re
cordQ被加蝲q运行。在预引导阶D,计算加蝲Windows XP的NTLDR文g?/p>
bQ?引导阶段
Windows XP Professional引导阶段包含4个小的阶Dc?/p>
首先Q计机要经q初始引导加载器阶段QInitial Boot LoaderQ,在这个阶D里Q?br />
NTLDR计机微处理器从实模式转换?2位^面内存模式。在实模式中Q系lؓMS-DOS?br />
?40kb内存Q其余内存视为扩展内存,而在32位^面内存模式中Q系l(Windows XP Pr
ofessionalQ视所有内存ؓ可用内存。接着QNTLDR启动内徏的mini-file system driver
sQ通过q个步骤QNTLDR可以识别每一个用NTFS或者FAT文gpȝ格式化的分区Q以便发
C及加载Windows XP ProfessionalQ到q里Q初始引导加载器阶段q束了?/p>
接着pȝ来到了操作系l选择阶段Q如果计机安装了不止一个操作系l(也就是多
pȝQ,而且正确讄了boot.ini使系l提供操作系l选择的条件下Q计机昄器会?br />
CZ个操作系l选单Q这是NTLDRdboot.ini的结果。(至于操作pȝ选单Q由于暂时条
件不够,没办法截图,但是W者模拟了一个)
在boot.ini中,主要包含以下内容Q?/p>
[boot loader]
timeout=30
default=multiQ?QdiskQ?QrdiskQ?QpartitionQ?Q\WINDOWS
[operating systems]
multiQ?QdiskQ?QrdiskQ?QpartitionQ?Q\WINDOWS="Microsoft Windows XP
Professional" /fastdetect
multiQ?QdiskQ?QrdiskQ?QpartitionQ?Q\WINNT="Windows Windows 2000 Pr
ofessional"
其中QmultiQ?Q表C磁盘控制器QdiskQ?QrdiskQ?Q表C磁盘,partitionQxQ?br />
表示分区。NTLDR是从这里查找Windows XP Professional的系l文件的位置的。(*本文
不会更详l地讲解boot.ini的组成结构,因ؓ其与本主题关pM大,如果想了解,可以?br />
一些专门的|站处查询相关信息。)如果在boot.ini中只有一个操作系l选项Q或者把ti
meoutD?Q则pȝ不出现操作系l选择菜单Q直接引导到那个唯一的系l或者默认的
pȝ。在选择启动Windows XP Professional后,操作pȝ选择阶段l束Q硬件检阶D开
始?/p>
在硬件检阶D中Qntdetect.com收集计机g信息列表q将列表q回到NTLDRQ?br />
q样做的目的是便于以后将q些g信息加入到注册表HKEY_LOCAL_MACHINE下的hardware
中?br />
g完成后Q进入配|选择阶段。如果计机含有多个g配置文g列表Q可?br />
通过按上下按钮来选择。如果只有一个硬仉|文Ӟ计算Z昄此屏q而直接用默
认的配置文g加蝲Windows XP专业版?/p>
引导阶段l束。在引导阶段Q系l要用到的文件一共有QNTLDRQBoot.iniQntdetec
t.comQntokrnl.exeQNtbootdd.sysQbootsect.dosQ可选的Q?/p>
cQ?加蝲内核阶段
在加载内栔RD,ntldr加蝲UCؓWindows XP内核的ntokrnl.exe。系l加载了Window
s XP内核但是没有它初始化。接着ntldr加蝲g抽象层(HALQhal.dllQ,然后Q系l?br />
l箋加蝲HKEY_LOCAL_MACHINE\system键,NTLDRdselect键来军_哪一个Control Set?br />
被加载。控刉中包含设备的驱动E序以及需要加载的服务。NTLDR加蝲HKEY_LOCAL_MACH
INE\system\service\…下start键gؓ0的最底层讑֤驱动。当作ؓControl Set的镜像的
Current Control Set被加载时Qntldr传递控制给内核Q初始化内核阶段开始了?
dQ?初始化内栔RD?/p>
在初始化内核阶段开始的时候,彩色的Windows XP的logo以及q度条显C在屏幕中央
Q在q个阶段Q系l完成了启动?Q务:
内核使用在硬件检时攉到的数据来创ZHKEY_LOCAL_MACHINE\HARDWARE键?br />
内核通过引用HKEY_LOCAL_MACHINE\system\Current的默认值复制Control Set来创?br />
了Clone Control Set。Clone Control Set配置是计机数据的备份,不包括启动中的改
变,也不会被修改?/p>
pȝ完成初始化以及加载设备驱动程序,内核初始化那些在加蝲内核阶段被加载的?br />
层驱动程序,然后内核扫描HKEY_LOCAL_MACHINE\system\CurrentControlSet\service\…
下start键gؓ1的设备驱动程序。这些设备驱动程序在加蝲的时候便完成初始化,如果?br />
错误发生Q内怋用ErrorControl键值来军_如何处理Qgؓ3Ӟ错误标志为危?关键
Q系l初ơ遇到错误会以LastKnownGood Control Set重新启动Q如果用LastKnownGood
Control Set启动仍然产生错误Q系l报告启动失败,错误信息被昄Q系l停止启?br />
Qgؓ2旉误情况ؓ严重Q系l启动失败ƈ且以LastKnownGood Control Set重新启动Q?br />
如果pȝ启动已经在用LastKnownGood|它会忽略错误q且l箋启动Q当值是1的时?br />
错误为普通,pȝ会生一个错误信息,但是仍然会忽略这个错误ƈ且l启动;当值是
0的时候忽略,pȝ不会昄M错误信息而l运?/p>
Session Manager启动了Windows XP高子系l以及服务,Session Manager启动控制
所有输入、输备以及访问显C器屏幕的Win32子系l以及Winlogonq程Q初始化内核?br />
毕?/p>
Zx86 pȝ?Windows XP Professional 的启动文?/p>
文g?nbsp; 文g所处位|?nbsp; 描述
Ntldr pȝ分区根目?nbsp; 操作pȝ装蝲?
Boot.ini pȝ分区根目?nbsp; 该文件指?Windows XP Professional 的安装\径。对
于多引导pȝ Boot.ini 包含一个显C在启动菜单上的操作pȝ选择菜单?/p>
Bootsect.dos (仅适用于多引导pȝ) pȝ分区根目?nbsp; Ntldr 会装蝲此文Ӟ以读?br />
可能包含 MS-DOS, Windows 95, Windows 98, or Windows Me {OS的Windows Xrofessio
nal 多引导系l设定?Bootsect.dos 包含q些操作pȝ的引导扇区,文g属性ؓpȝ?br />
隐藏?
Ntdetect.com pȝ分区根目?nbsp; 此文件将扫描g讄信息Qƈ传递给 Ntldr
Ntbootdd.sys pȝ分区根目?(SCSI 或者ATA {固件本w禁用或者不支持 INT-13 ?br />
断扩展调用的讑֤需要此文g). 该驱动程序用于访问不使用 BIOSQ而连接到 SCSI 或?br />
ATA 的硬盘驱动器Q?The contents of this file depend on the startup controller
used.
Ntoskrnl.exe systemroot\System32 Windows XP Professional操作pȝ的核?(也被?br />
?kernel) 。作?kernel的一部分Q运行在处理器特权模式下的代码,允许直接讉Kp?br />
l数据和g?
在安装Windows XP Professional 操作pȝ期间Q如果是单处理器pȝQsetupE序从操
作系l光盘上复制 Ntoskrnl.exe 文gQ如果是多处理器pȝQSetup 从安装光盘上复制
Ntoskrnlmp.exe q将它重命名为Ntoskrnl.exe.
Hal.dll systemroot\System32 g抽象层动?HAL)链接库文件。HAL abstracts 从操
作系l提取底层硬件信息,q给相同cd的设备,提供公用~程接口?
Microsoft® Windows® XP Professional 操作pȝ光盘包含若干 Hal 文gQSe
tup 适合您系l硬件设|的文g复制到您的计机Qƈ重命名ؓ Hal.dll.
System registry file systemroot\System32\Config\System 此注册表文g包含创徏HK
EY_LOCAL_MACHINE\SYSTEM 注册表键值所需要的数据。该键值包含了操作pȝ启动讑֤?br />
pȝ服务所需要的信息?
Device drivers systemroot\System32\Drivers 一些硬件设备的驱动E序文gQ比如键
盘、鼠标、显卡?
systemroot是众多环境变量之一Q用于将象文件和文g路径q样的字W串兌到变量,
以便 Windows XP Professional应用E序和服务用。例如,通过使用环境变量Q?br />
脚本不同修改可以运行在不同环境讄的计机上。您可以通过在命令行执行
set 命o查看环境变量列表
硬件和g配置文g
q入此阶D,Ntldr 启动Ntdetect.com, 后者将执行基础g扫描。随?Ntldr 扫描
Boot.ini 信息Q以及保存在注册表中的硬件和软g信息Q传送给 Ntoskrnl.exe。Ntdet
ect.com 硬仉|信?(比如 便携计算Z接驳或未接驳讄) 和保存在 Advanced
Configuration and Power Interface (ACPI) 表中的信息?ACPI 兼容Zg允许Window
s XP Professional 设备电源管理功能和讑֤资源需求?/p>
、设|硬仉D在d Boot.ini q完成其d后, Ntldr 启动 Ntdetect.com
。在 x86 pȝ?Ntdetect.com 调用pȝ例行E序攉已经安装的硬件信息,q将攉?br />
信息q回lNtldrQNtldr 这些信息收集后存入内部数据?Q然后启?Ntoskrnl.exe
q将信息传递给它?/p>
Ntdetect.com 所攉的硬件设备的信息如下Q?/p>
信息Zg信息Q比如日期和旉
ȝ和板卡类?
昑֍
键盘
通讯端口
盘
软盘
输入讑֤ (比如鼠标)
q行端口
安装在Industry Standard Architecture (ISA) ȝ上的讑֤
Ntdetect.com 在非ACPI兼容计算机的讑֤扫描中扮演了重要的角艌Ӏ因为在q些cd
的计机上,Zg而不是操作系l决定了分配l设备的资源Q对于用ACPIZg的计机
QWindows XP Professional 对硬件设备分配资源。在q个阶段QNtdetect.com 攉g
信息Q?Windows XP Professional 为桌面计机创徏一个单独的默认g配置文gQ而ؓ
便携计算机创Z个缺省的配置文g。对于便机Q操作系l基于当前计机上硬?br />
状态选择适当的配|文件?/p>
桌面型计机. Profile 1
便携式计机.
Docked Profile
Undocked Profile
g配置文g对于便携式计机是非常有用的Q因些计机的硬件状态通常都不是静
态的Q启动的时候,没有列表在特定的g配置文g中的讑֤驱动是不会被加蝲的?br />
关于创徏和用硬仉|文件的信息Q请参考Windows XP Professional 帮助和支持中
心,也可以参考知识库文档 225810, "How to Create Hardware Profiles on Windows 2
000?Based Mobile Computers," 查找此文档,h询Web Resources 面 http://www.m
icrosoft.com/windows/reskits/webresources 上的知识库链接,同时您也可以查看"Man
aging Devices" ?"Supporting Mobile Users"
核心装蝲阶段Ntldr 负责?Windows 核心?(Ntoskrnl.exe) 和硬件抽象层 (HAL) ?br />
载到内存。您的系l所使用?Hal.dll 文g是可以发生变化的。在安装期间QWindows X
P Professional 安装E序从若q?HAL 文g中选择一个复制到pȝQ?请参看表28.2 关于
q些文g的列? q名ؓHal.dll?/p>
在设备管理器中查看计机描述
在运行对话框Q输?devmgmt.mscQ点ȝ定?
在设备管理器展开计算机察看您计算机的描述?
通过比较讑֤理器中的描q和下面?28.2中的描述, 您可以确定从 Windows XP Profe
ssional 操作pȝ光盘复制到您pȝ中的HAL文g
Table 28.2 关于不同 Hal.dll 文g的描q?/p>
讑֤理器中计算机的描述 复制的HAL文g
ACPI 多处理器 PC Halmacpi.dll
ACPI 单处理器 PC Halaacpi.dll
Advanced Configuration and Power Interface (ACPI) PC Halacpi.dll
MPS 多处理器 PC Halmps.dll
MPS 单处理器 PC Halapic.dll
标准 PC Hal.dll
Compaq SystemPro 多处理器或者完全兼?Halsp.dll
核心层kernel 和硬件抽象层HAL 初始化一lY件组Ӟ他们l称为windows 执行体。Win
dows 执行体扫描储存在注册表control sets中的信息Qƈ启动服务和驱动程序?
关于Windows executive services, h?"Common Stop Messages for Troubleshooti
ng"
控制集Control Sets
Ntldr ?HKEY_LOCAL_MACHINE\SYSTEM 注册表子键中d相关信息Q该子健中的数据创徏
于\System32\Config\ System 文g,故?Ntldr 能够军_哪些讑֤驱动在系l启动时装蝲
?通常Q注册表中存在几个control sets, 其后面的序号取决于系l设定多长时间变更一
ơ。?/p>
提示Q?/p>
如非必要不要直接~辑注册表。注册表~辑器绕开了系l保护机Ӟ您的修改有可能会?br />
坏系l,严重者甚至需要重新安?Windows。如果你必须~辑注册表,请事先作备䆾Qƈ
详细阅读 Microsoft® Windows® 2000 Server Resource Kit 中关?Registry
Reference 的章节http://www.microsoft.com/windows/reskits/webresources.
典型的注册表控制?control set 子键如下Q?/p>
\CurrentControlSet, 一个注册在\Select\Current 中Q指?ControlSetxxx 子键的指
?(xxx 代表一?control set ~号, 比如 001)
\Clone, 一?\CurrentControlSet的拷贝,当您每次启动计算机的时候创建。(gnaw072
5注:此处原文如此Q有待考证Q?
\Select, 包含如下键|
Default, 指针指向pȝ指定用户下次登陆所使用的控刉~号 (比如 001=ControlSet00
1)?如果没有错误发生Q或者ƈ非由 LastKnownGood 启动Ҏ讄Q此 control set ~?br />
号将?Default, Current?LastKnownGood 注册Ҏ影响 (假定当前用户可以成功d
)
Current, 指向此次用于启动pȝ的控刉
Failed, 指向没有成功启动 Windows XP Professional 的控刉。当使用 LastKnownGoo
d 选项启动pȝӞ此项被更?Qgnaw0725注:表示 Windows XP 在其中保存失败启动
生的数据的控件组?此控件组在用L一ơ调?#8220;最q一ơ的正确配置”选项之前q不?br />
际存在。)
LastKnownGood, 指向上次用户会话所使用的控刉 。当用户d的时候,LastKnownGoo
d 控制集被前一ơ用户会话用的讄信息所更新?br />
除非您从Windows Advanced Options菜单中选择Last Known Good ConfigurationQNtldr
用Default 键值所标示的控刉?/p>
核心层用Ntldr 提供的内部数据结构创?HKEY_LOCAL_MACHINE\HARDWARE 子键Q其中包
含在pȝ启动阶段攉的硬件信息。这些数据包含信息包括各U硬件组件和分配l每个设
备的pȝ资源。您可以通过查看在启动过E中昄的进度指C器来监控核心层加蝲q程 ?br />
?Last Known Good Configuration的相关信息,您可以查?"Tools for Troubleshoot
ing"
Windows XP Professional 支持讑֤扩展。新的或者更新的驱动E序q不存在?Windows
XP Professional 操作pȝ光盘上,而是׃g厂商提供。驱动程序是核心模式lgQ?br />
需要Drivers are kernel-mode components required by devices to function within
an operating system. 服务是支持操作系l功能和应用E序的组件。与用户应用E序相比
Q服务可以运行在一个不同的上下文,通常不会提供用户可以讄的选项。服务,比如?br />
机打?Print SpoolerQ不需要用L录即可运行,而且与登陆到pȝ的用h兟뀂Wind
ows XP Professional 驱动E序和服务系l文仉常被存攑֜ systemroot\System32 ?
systemroot\System32\Drivers 目录下,?.exe, .sys, or .dll {扩展名保存?/p>
驱动E序也是服务Q因此在核心层初始化期间QNtldr ?Ntoskrnl.exe 按照存储在HKEY
_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\servicename 注册表子键中的数?br />
来确定装载的驱动E序和服务次序。例如,Ntldr 首先搜烦Services 子键?Start gؓ
0的服务,比如盘控制器。当 Ntldr 启动 Ntoskrnl.exe后,一个Ntoskrnl.exe lg?br />
索ƈ启动驱动E序Q比如网l协议,q些启动?Start gؓ 1.
Table 28.3 Q列Z Start 的|十进Ӟ。Boot cd的驱?(Start gؓ0的项)
文gpȝ驱动E序的Start值始lؓ0Q因为启?Windows XP Professional 需要它们的?br />
持?/p>
?28.3 <服务?gt; Start的赋?
?Startcd 关于 Start 赋值的描述
0 Boot Zx86pȝ Ntldr 或者Itanium IA64ldr上的Zg调用模式指定装蝲的驱动,?br />
果没有错误发生,核心层Kernel启动该驱动E序
1 System 指定在系l核心层 Kernel 初始化期间被 Windows XP Professional boot dri
vers 所调用的驱动程?
2 Auto load 指定在系l启动时被会话管理器 (Smss.exe)或者服务控制器 (Services.ex
e)所加蝲的驱动程序或者服务?
3 Load on demand 指定一个通过用户、进E或者其他服务手动启动的驱动E序或者服?
4 Disabled 指定一个禁止(不启动)的驱动程序或者服务?
?28.4 列出了Type 的一些|十进Ӟ
?28.4 <服务?gt; Type 的赋?/p>
?nbsp; Type 赋值描q?
1 指定一个核心设备驱动程?
2 指定一个文件系l驱动程?(也是一个核心设备驱动程?
4 指定参数传递给讑֤驱动E序
16 指定一个遵循服务控制协议的服务Q该服务可以独立q行在一个进E中Q且可以为服?br />
控制器所启动
32 指定一个可以和其他服务׃nq程的服?
一些驱动程序和服务需要在启动之前定之间的相互依赖关pR通过查看HKEY_LOCAL_MAC
HINE\SYSTEM\CurrentControlSet\Services\servicename下DependOnGroup?DependOnSe
rvice ?Q您可以扑ֈq个依存关系的列表。关于用依赖关p阻止或者gq驱动程?br />
或者服务启动的信息Q请查看 "Temporarily Disabling Services" 。该服务子键也包?br />
了媄响驱动程序和服务如何加蝲的信息,?28.5 中描qC其中的一部分?/p>
?28.5 注册表其?<服务?gt; ?/p>
?描述
DependOnGroup 此组中所描述的项目,臛_有一个在当前服务装蝲前必被加蝲。子?S
YSTEM\CurrentControlSet\Control\ServiceGroupOrder 包含服务l装载次?
DependOnService 此列表中描述的服务,必须在当前服务之前加载?
Description lg描述
DisplayName 指定lg的显C名U?
ErrorControl 控制一个驱动程序错误是需要系l?LastKnownGood 控制集还是提CZ
个错误停止信息?
如果gؓ 0x0 (忽略Q没有错误报?, 不会昄警告信息Ql执行启动?
如果gؓ 0x1 (普通,报告错误), 错误记录到pȝ日志q提C告信息,但l启动过
E?
如果gؓ 0x2 (严重), 事件记录到pȝ日志Q?LastKnownGood 讄Q重新启动系
l,执行启动q程?
如果gؓ 0x3 (关键), 事件记录到pȝ日志Q?LastKnownGood 讄Q重新启动系
l。如果当前启动已l?LastKnownGood 讑֮Q则昄错误停止信息?
Group 指定驱动E序或者服务隶属的l。此设定允讔R动程序或者服务同步启动(比入
Q文件系l驱动程序)注册表子?HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Con
trol\ServiceGroupOrder 中的 List Ҏ定了l项启动序?
ImagePath 如果存在ImagePath,该项用于标示驱动E序或者服务的路径和文件名??br />
可以使用Windows Explorer 核实q些路径和文件名?
ObjectName 指定一个对象名。如?Type Ҏ定一?Windows XP Professional 服务Q?br />
那么它就代表服务q行时用于登陆的帐户名?
Tag 指定一个驱动程序在驱动E序l中的启动顺序?
会话理?br />
当所有标志ؓ Boot ?Startup 数据cd的注册表子键执行完成后, kernel 开始加载会
话管理器 Session ManagerQ由?(Smss.exe) 执行后箋重要的初始化工作Q比如:
创徏pȝ环境变量
启动Windows 子系l核心保护模?(通过 systemroot\System32\Win32k.sys 实现), q将
Windows XP Professional 从文本模式切换至囑Ş模式。基于Windows的应用程序都q行
?Windows 子系l上Q这个环境下允许应用E序讉K操作pȝ功能函数Q比如在屏幕上显
CZ息?
启动 Windows 子系l用h式部?(通过 systemroot\System32\Csrss.exe 实现).
启动登陆理?(通过 systemroot\System32\Winlogon.exe 实现).
创徏辅助虚拟内存|?
为存攑֜下列子键中的文g列表Q执行gq的重命名操作?HKEY_LOCAL_MACHINE\SYSTEM
\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations. 比如Q?br />
当您安装了一个新的驱动程序或者应用程序后Q系l可能会提示您重新启动,以便 Windo
ws XP Professional 能够替换当前正在使用的文件?br />
Windows 子系l和Z它执行的应用E序是用h式进E,它们不能直接讉Kg和设?br />
驱动。用h式进E执行优先低于核心q程Q当操作pȝ需要更多内存的时候,它可?br />
被用户模式下进E用的内存~存到虚拟页面文件。关于用h式和核心模式lg的信
息,请参?Common Stop Messages for Troubleshooting" ?/p>
会话理器Session Manager 搜索注册表Q以获得服务信息Q注册表键值如下:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 包含一个在
服务装蝲之前q行的命令列?nbsp; Autochk.exe 工具?BootExecute 的值和存储?Memo
ry Management 子键中的虚拟内存 (面文g) 讄所指定。Autochk, ?Chkdsk 工具?br />
一个版本,如果操作pȝ到一个文件系l错误,需要在完成启动q程之前q行修复Q?br />
那么׃在启动的时候运行它。关?Autochk ?Chkdsk, "Troubleshooting Disks and
File Systems" ?
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Subsystems
包含一个有效子pȝ的列表。比?Csrss.exe 包含Windows 子系l中的一部分Q用h
式?nbsp;
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\servicename. 服务控制理
器(Service Control ManagerQ?初始化那些设|ؓ启动自动加蝲的服务?br />
d阶段在此阶段Windows 子系l启?Winlogon.exeQ此模块为系l服务,以完成用L
d或者登出的动作?Winlogon.exe 所完成的功能如下:
启动服务子系l?(Services.exe), 也称为服务控制管理器 (SCM).
启动本地安全性授权进E?Local Security Authority (LSA) (Lsass.exe).
在出现开始登陆提C时Q侦?CTRL+ALT+DEL l合键?
囑Ş化识别和验证 Graphical Identification and Authentication (GINA) lg获取?br />
户名和密码,q将q些信息传送给 LSA q行安全验证。如果用h供有效验证,那么通过
使用Kerberos V 5 验证协议或?NTLM 可以或者访问权限。关于安全组件的信息Q比?
LSA, Kerberos V5 协议或?NTLM, Distributed Systems Guide of the Microsoft®
; Windows® 2000 Server Resource Kit.
当服务控制管理器Service Control Manager 初始化自动装载服务项和驱动时QWinlogon
开始初始化安全和认证组Ӟ当用L录后Q系l进行如下动作:
更新控制集Control sets ?控制集ؓ LastKnownGood 注册Ҏ影响Qƈ?Clone 中
的内容一同更新。Clone, 是CurrentControlSet 的一份拷? 当您每次启动计算机时?br />
创徏。当用户d的时候,LastKnownGood 控制集被前一ơ用户会话用的讄信息所?br />
新?
实施{略。组{略{略讑֮开始实施于用户和计机帐户。关于组{略的相关信息,h
?Planning Deployments," "Managing Desktops," ?"Authorization and Access Co
ntrol" Q以及Windows 2000 Server Resource Kit中分布式pȝ指南中关?"Group Pol
icy" 的章节,同时您也可以参考其|站资源站点 http://www.microsoft.com/windows/r
eskits/webresources 上关?Change and Configuration Management Deployment Guid
e 的链接?
q行启动E序?Windows XP Professional 启动登陆脚本Q启动程序组Qƈ且启动在如下
注册表子键和启动目录所兌的服务项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Runonce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer
\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
systemdrive\Documents and Settings\All Users\Start Menu\Programs\Startup
systemdrive\Documents and Settings\username\Start Menu\Programs\Startup
windir\Profiles\All Users\Start Menu\Programs\Startup
windir\Profiles\username\Start Menu\Programs\Startup
windir\Profiles 目录文g夹仅存在于从Windows NT 4.0升的系l上?/p>
直到用户成功登陆到计机后,Windows XP Professional 启动q程最l完成?/p>
x即用即插即用检不与登陆过E同步运作,它依赖于pȝZgQ硬Ӟ讑֤驱动
E序以及操作pȝ功能Q从而能够检和枚D新的讑֤?Windows XP Professional Z
用ACPIZg的设备优化即插即用支持,q且允许增强功能Q比如硬件资源共享?/p>
当即插即用能够很好协调工作时QWindows XP Professional 能够在最用户参与的前提
下,到新的讑֤Q分配系l资源,安装或者请求驱动程序。ACPI Ҏ对于移动用h
非常有用的,q些Ҏ可以很好的支持待机、休眠、冷热插拔等功能?/p>