- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
windows程序设计9,windows程序设计pdf,windows核心编程,mfcwindows程序设计,windows程序设计下载,windows程序设计教程,windows程序设计第6版,windows程序设计chm,游戏软件开发基础,世界编程语言排行榜
Windows程序设计基础 驱动程序的基本组成 1 入口点例程 2 卸载例程 3 打开关闭例程 * * 第九章内核模式程序设计 9.1Windows操作系统体系结构 安全管理子系统 Win32环境子系统 其他环境子系统 NTDLL 系统服务派遣器、内核模式可调用接口、I/O管理器、设备和文件系统驱动、Win32 USER和GDI、图形驱动、本地过程调用、配置管理器、进程和线程、虚拟内存、安全引用监视器、电源管理器、即插即用管理器、对象管理器、文件系统管理器 内核 硬件抽象层 用户模式 内核模式 Win2000/xp组件结构图 运行在用户模式下的子系统和运行在内核模式下的核心构成了操作系统环境。Win32子系统是最重要的环境子系统,包括客户方DLL(子系统DLL)和CSRSS(子系统进程)。Win32子系统在核心提供的本地服务器上执行Win32 API。 核心包括硬件抽象层、内核、执行层和系统调用接口。执行层组成核心的主要部分,包含I/O管理器、对象管理器、安全引用监视器和虚拟内存管理器、进程管理器、本地过程调用等。 环境子系统和子系统DLL 在Windows2000下有两种类型的子系统:构成整体所需要的子系统和环境子系统。 构成整体所需要的子系统,比如安全管理器子系统,执行一些必须的操作系统任务。 环境子系统使不同的API集能够在Windows机器上使用。环境子系统的的作用是将一些基础的Windows可执行系统服务暴露给应用程序。用户应用程序并不直接调用系统服务,而是经由一个或多个子系统DLL进行,这些库导出公开的接口,供链接到子系统的应用程序调用。例如Win32子系统DLL(Kernel.dll、User32.dll、Gdi32.dll等)实现了Win32 API函数。 子系统的工作机制 当应用程序调用子系统DLL中的函数时,会发生下述事件之一: 函数完全在用户模式子系统DLL内部实现。换句话说,没有消息被发送到环境子系统进程,没有执行层的系统服务被调用,函数完全在用户模式执行,结果返回给调用者。这样函数的例子有GetCurrentProcess(总返回-1,代表当前进程)和GetCurrentProcessId。 函数需要一次或多次对Windows执行层进行调用。例如Win32 ReadFile和WriteFile函数将分别调用下层内部WindowsI/O系统服务NtReadFile和NtWriteFile。 函数需要环境子系统进程完成一些工作。环境子系统运行在用户模式,负责维护客户应用程序的状态。这样一个到环境子系统的客户/服务请求产生。 Win32子系统 包括以下组件: 环境子系统进程(Csrss.exe)包含以下支持: 控制台窗口 进程和线程的创建、删除 对16位Dos虚拟机进程的支持 其他辅助函数,如GetTempFile、DefineDosDevice、ExitWindowsEx和几个自然语言支持函数。 Win32子系统 内核模式设备驱动(Win32k.sys)包含: 窗口管理器。它控制窗口显示,管理屏幕输出,从键盘、鼠标和其他设备收集输入,传递用户消息到应用程序。 图形设备接口。这是图像输出设备的函数库。包含的函数有:绘制线条、文本和图形,图像管理。 Win32子系统 子系统DLL将公开的Win32 API函数转换为对相应的未公开的Ntoskrnl.exe和Win32k.sys中内核模式系统服务的调用。 图形设备驱动是硬件相关的图形显示驱动、打印驱动和视频驱动。 Ntdll.dll 它是特殊的系统支持库。主要被子系统Dll使用。主要包含两类函数: 1)到Windows 2000执行层系统服务的分派占位函数。 2)子系统、子系统DLL和其他本地镜像使用的内部支持函数。 第一组函数提供了访问Win2000执行层系统服务的接口,可以从用户模式调用。共有200个这样的函数,如NtCreateFile、NtSetEvent等。这些函数的大多数功能可以通过Win32 API访问。 对于每一个这样的函数,Ntdll包含一个名字相同的入口点。函数内部代码包含转向内核模式的指令,以调用系统服务派遣器,派遣器检查传递给它的参数,调用实际的内核模式系统服务,服务的真正代码包含在Ntoskrnl.exe中。 Ntdll也包含许多支持函数,如镜像装载器(以Ldr开头的函数)、堆管理器和Win32子系统进程通信函数(以Csr开头的函数),还有一般运行库例程(以Rtl开头的函数)。它也包括用户模式异步过程调用派遣器和异
文档评论(0)