Windows内核源码详尽分析-DPC篇
深入研究计算机操作系统内核Windows内核原理解析
![深入研究计算机操作系统内核Windows内核原理解析](https://img.taocdn.com/s3/m/bef964b4d1d233d4b14e852458fb770bf78a3bfb.png)
深入研究计算机操作系统内核Windows内核原理解析计算机操作系统是指支持计算机软硬件运行的基本软件系统,其中内核是操作系统的核心部分。
作为广泛应用的操作系统之一,Windows 内核在计算机领域中具有重要地位。
本文将深入研究Windows内核的原理解析,以帮助读者更好地理解计算机操作系统内核的工作原理。
一、Windows操作系统的发展历程Windows操作系统的发展经历了多个版本和起伏。
自20世纪80年代中期开始推出的Windows 1.0版本以图形用户界面为特点,为个人计算机用户带来了更加友好的操作界面。
随着版本的不断升级,Windows 操作系统逐渐成熟,并在个人计算机市场上占据主导地位。
二、Windows内核的概述Windows内核是Windows操作系统的核心组成部分,负责管理计算机硬件资源和提供系统服务。
Windows内核采用了微内核的设计思想,将核心的功能模块化,以实现更高的灵活性和可扩展性。
Windows内核包括以下几个主要组件:1. 进程管理:负责管理计算机上的进程,调度和分配资源,实现进程的并发执行。
2. 内存管理:负责管理计算机内存的分配和回收,以及虚拟内存的管理,提供内存保护机制。
3. 文件系统:负责管理磁盘上的文件和目录,提供文件读写和文件共享的功能。
4. 设备驱动程序:提供与硬件设备的通信接口,实现对硬件设备的操作和控制。
5. 网络通信:提供网络通信功能,实现计算机之间的数据传输和通信。
三、Windows内核的工作原理分析1. 进程管理Windows内核通过进程管理来实现系统的多任务处理。
每个进程都有自己的地址空间和调度优先级。
内核根据调度算法来选择需要执行的进程,并为其分配CPU时间片。
当一个进程处于等待状态时,内核将其挂起,切换到其他可执行的进程,保证系统的整体性能。
2. 内存管理Windows内核通过内存管理来管理计算机的物理内存和虚拟内存。
物理内存管理负责将物理内存划分成多个页框,提供页面分配和回收的功能。
《Windows驱动开发技术详解》之Windows内核函数
![《Windows驱动开发技术详解》之Windows内核函数](https://img.taocdn.com/s3/m/69c27f39905f804d2b160b4e767f5acfa1c78343.png)
《Windows驱动开发技术详解》之Windows内核函数内核模式下字符串操作ANSI_STRING和UNICODE_STRING分别定义如下:以UnicodeString类型对象进⾏初始化为例,代码如下:输出:进⾏复制字符串操作,代码如下:输出:但是如果这⾥改为:加载驱动运⾏就会蓝屏。
Why?其实,RltFreeUnicodeString是⽤来释放利⽤申请的堆空间初始化的UnicodeString类型对象的,⽽RtlInitUnicodeString对UniStr1进⾏初始化时,只是让Buffer指向了⼀个常量区。
进⾏ANSI_STRING字符串与UNICODE_STRING字符串相互转换操作,代码如下:注意这⾥要利⽤RtlFreeUnicodeString释放通过RtlAnsiStringToUnicodeString得到的UniStr2。
为什么这个需要释放?我们利⽤Windbg跟踪下代码。
⾸先,跟踪时要逐⼀,这⾥的勾如果不去掉,就是在源码下单步跟踪,⽽不是在汇编指令⾥单步跟踪:在RtlUnicodeStringToAnsiString函数中,有这么⼀个系统API此时的参数是正好是传⼊的字节数的⼤⼩。
⽽这个API最终调⽤了:所以,我们要利⽤RtlFreeUnicodeString进⾏释放。
内核模式下的⽂件操作:创建⽂件:代码⼊下:1 VOID FILEOPERATION(){2 OBJECT_ATTRIBUTES ObjAttributes;3 IO_STATUS_BLOCK iostatus;4 HANDLE hfile;5 UNICODE_STRING logFileUnicodeString;67 RtlInitUnicodeString(&logFileUnicodeString, L"\\??\\C:\\1.log");8 InitializeObjectAttributes(&ObjAttributes,9 &logFileUnicodeString,10 OBJ_CASE_INSENSITIVE,11 NULL,12 NULL);13//创建⽂件14 NTSTATUS status = ZwCreateFile(&hfile, GENERIC_WRITE,15 &ObjAttributes,16 &iostatus,17 NULL,18 FILE_ATTRIBUTE_NORMAL,19 FILE_SHARE_READ,20 FILE_OPEN_IF,//这⾥是FILE_OPEN_IF则不论⽂件是否存在都可以Create成功,⽽如果改为FILE_OPEN,则只当⽂件存在时create成功。
深入了解 Windows Server 2008 内核变化
![深入了解 Windows Server 2008 内核变化](https://img.taocdn.com/s3/m/19d47b2a2af90242a895e5e7.png)
深入了解Windows Server 2008 内核变化内存管理和SMB 2.0 NTFS 自修复功能、Windows 硬件错误报告体系和驱动程序验证程序I/O 完成端口、线程池和NUMA 的可伸缩性Hyper-V 虚拟化Windows Server 2008 是最新版本的Microsoft 服务器平台,它包含许多系统级更改,这些更改涉及操作系统的所有功能领域:从内存管理到线程调度,从网络连接到安全(这里只列出了少数几个)。
由于Windows Server®2008 和Windows Vista®SP1 的内核相同,因此它包含许多我曾经在之前的《TechNet 杂志》文章:“深入了解Windows Vista 内核”第1-3 部分(2007 年2 月、3 月和4 月)和“深入了解Windows Vista 用户帐户控制”(2007 年6 月)中介绍过的增强功能。
只有其中的少数功能仅特定于客户端且并未包含在Windows Server 2008 中,如SuperFetch、ReadyBoost、ReadyDrive、Ready Boot 和多媒体类计划程序服务(MMCSS)。
因此,我将不再重复介绍Windows Vista 中已介绍过且Windows Server 2008 中同样包含的重要内核变化,如I/O 优先级排列、新的引导体系结构BitLocker TM、代码完整性和强制完整性级别。
我将重点介绍之前这些文章中未涉及到的关键变化,包括与可靠性、性能、可伸缩性以及新的Microsoft 管理程序计算机虚拟化技术Hyper-V TM相关的变化。
同样,与之前的文章一样,本文的范围仅限于操作系统内核Ntoskrnl.exe 以及与其紧密关联的系统组件的变化。
例如,本文不会介绍安装(WIM 或Windows®映像格式和基于组件的服务)、管理(组策略和Active Directory®改进)、常规诊断和监控(Windows 诊断基础结构)、核心网络(新的防火墙和TCP/IP 实现)、Server Core 或服务器角色的变化。
WINCE---内核(kernel)---内存架构(memory archtitecture)学习
![WINCE---内核(kernel)---内存架构(memory archtitecture)学习](https://img.taocdn.com/s3/m/7fceee78a417866fb84a8ef4.png)
WINCE---内核(kernel)---内存架构(memory archtitecture)学习1.WINCE内存模型图1 WINCE5.0和WINCE6.0内存模型对比图WINCE6.0之前的WINCE操作系统支持的进程最多只有32个,并且每个进程只有32MB的虚拟内存空间,并且所有的进程共享相同的4GB地址空间。
在WINCE6.0中,内核进程占用4GB虚拟内存空间的高2GB,每个用户进程都有独立拥有低端的2GB虚拟内存空间,WINCE6.0支持的最大进程数达到32000个。
进程数量的实际限制是受物理内存的大小来决定的。
之前的WINCE版本,当前的应用在slot0执行,在WINCE6.0中,抛弃了原来的按Slot分配的方式,而是只要你需要你就可以创建内存,每个都有2GB的有效虚拟内存空间。
因为虚拟内存访问是通过内存管理单元MMU转化为物理内存的访问,所以虚拟内存代码是依赖于CPU的。
ARM和x86处理器使用硬件页表OEMAddressTable,所以硬件可以直接访问虚拟内存单元。
WINCE支持的其他CPU使用一个软件转换旁路缓冲区TLB(translation look-aside buffer,可理解为页表缓冲或是快表)miss handler,这需要完里面填充虚拟内存的内容。
WINCE6.0基于下面的目标来设计虚拟内存管理:⑴每个进程具有大容量的虚拟内存。
⑵不存在进程数量的限制。
⑶进程直接相互保护。
⑷最低程度降低使虚拟内存管理依赖CPU的代码。
⑸有效的虚拟内存分配⑹有效的TLB选中处理机制(miss handling)。
2.WINCE虚拟内存分配下面来看WINCE6.0虚拟内存地址空间图,先看内核模式下的虚拟内存地址空间分配。
图2 内核模式虚拟内存空间分配图⑴静态映射到虚拟内存,有缓冲的,范围为0x80000000~0xA0000000,大小为512MB,通过CPU的cache直接访问物理内存,这段也就是BSP包中g_oalAddressTable映射表对应于物理内存到虚拟内存的映射关系。
《Windows内核编程》基本数据结构
![《Windows内核编程》基本数据结构](https://img.taocdn.com/s3/m/48c79749852458fb770b561f.png)
《Windows内核编程》基本数据结构学习各种高级外挂制作技术,马上去百度搜索(魔鬼作坊),点击第一个站进入,快速成为做挂达人。
驱动对象:每个驱动程序都会有唯一的驱动对象与之对应,并且这个驱动对象是在驱动加载时被内核中的对象管理程序所创建的。
驱动对象用DRIVER_OBJECT数据结构表示,它作为驱动的一个实例被内核加载,并且内核对一个驱动只加载一个实例。
确切地说,是由内核中的I/O管理器负责加载的,驱动程序需要在DriverEntry中初始化。
驱动对象的结构定义如下(wd m.h):typedef struct_DRIVER_OBJECT{//结构的类型和大小CSHORT Type;CSHORT Size;//每个驱动程序会有一个或多个设备对象,其中,每个设备对象都有一个指针指向下一个驱动对象//最后一个设备对象指向空。
DeviceObject指向驱动对象的第一个设备对象。
通过Devic eObject,就//可以遍历驱动对象中的所有设备对象了。
PDEVICE_OBJECT DeviceObject;ULONG Flags;//The following section describes where the driver is loaded.The count //field is used to count the number of times the driver has had its//registered reinitialization routine invoked.PVOID DriverStart;ULONG DriverSize;PVOID DriverSection;PDRIVER_EXTENSION DriverExtension;//记录驱动设备的名字,用UNICODE字符串记录,该字符串一般/Driver/[驱动程序名称]UNICODE_STRING DriverName;//设备的硬件数据库键名,也是UNICODE字符串记录。
windows内核原理与实现
![windows内核原理与实现](https://img.taocdn.com/s3/m/4c599a1a650e52ea55189818.png)
在windows中,用户代码和内核代码有各自的运行环境,而且他们可以访问的内存空间也不相同。在32为系统中,内核代码可以访问当前进程的整个4GB虚拟地址空间,而用户代码只能访问底端的2GB虚拟地址(或3GB,如果打开了内核启动开关/3GB的话)。用户模式的代码只能访问2GB一下的虚拟内存地址空间,2GB以上车更为系统地址空间。实际上在两者之间有一块特殊的64KB地址空间,位于0x7fff0000—0x7fffffff,两种模式下都不能访问。
在内核模块ntoskrnl.exe中的下层部份(上层部份为执行体),最接近于HAL层,负责线程调度和中断、异常的处理。对于多处理器系统,他还负责同步处理器之间的行为以优化系统的性能。这一层的核心人物是让系统中的所有处理器尽可能的忙和高效。内核层可在多个处理器伤病发执行,他的代码以C语言为主。
执行体:
本地安全权威子系统进程(lsass.exe):负责本地系统安全策略,例如允许那些用户登录到本地系统中、口令策略、 授予用户和用户组的特权,以及系统安全审计设置,同时也负责认证用户的身份,以及将安全审 计消息发送到系统的时间日志中。
shell进程(explorer.exe):windows默认的shell,提供了系统玉用户打交道的各种界面
windows采用了双模式结构来保护操作系统本身,以避免被应用程序的错误所波及。操作系统核心运行在内核模式(kernel mode)下,应用程序的代码运行在用户模式下。每当应用程序需要用到系统内核或内核的扩展模块(内核驱动程序)所提供的服务时,应用程序通过硬件指令从用户模式切换到内核模式中,当系统内核完成了所请求的服务以后,控制权又回到用户模式代码。
系统线程和系统进程:
在windows中,每个线程代表一个指令执行序列,同时也是一个调度单元;进程定义了一个执行环境,有自己独立的地址空间。每个线程都必定依附于一个进程。windows内核除了接受来自应用程序的系统服务调用,它自己也有一些线程用于各种用途。浙西县城运行在一个特殊的进程环境中,称为system进程。他的线程被称为系统线程,其中有一组系统辅助线程(system worker thread),他们代表操作系统或者其他的应用进程来完成一些特殊的工作。
windows源码分析(10)-设备驱动篇
![windows源码分析(10)-设备驱动篇](https://img.taocdn.com/s3/m/e6bf1123effdc8d376eeaeaad1f34693daef10e1.png)
设备驱动设备栈:从上层到下层的顺序依次是:过滤设备、类设备、过滤设备、小端口设备【过、类、过滤、小端口】驱动栈:因设备堆栈原因而建立起来的一种堆栈老式驱动:指不提供AddDevice的驱动,又叫NT式驱动Wdm驱动:指提供了AddDevice的驱动驱动初始化:指IO管理器加载驱动后,调用驱动的DriverEntry、AddDevice函数设备栈中上层设备与下层设备的绑定关系不是一对一,而是一对多。
一个设备可以同时绑定到N个下层设备上去,而一个下层设备,也可以同时被N个上层设备绑定,但注意形式上只可被一个上层设备绑定,因为设备对象的AttachedDevice字段指的就是那个形式上绑定在它上面的设备。
相关结构定义:typedef struct _DRIVER_OBJECT {CSHORT Type;//本结构的类型CSHORT Size;//本结构的实际长度PDEVICE_OBJECT DeviceObject;//设备对象链(第一个设备对象)ULONG Flags;//驱动标志//下面两个字段经常用于检测SSDT hook、DispactcRoutine hook等PVOID DriverStart;//本驱动的sys模块在内存中的起始地址ULONG DriverSize;//长度PVOID DriverSection;//实际上是一个LDR_DATA_TABLE_ENTRY*指针,指向它的模块描述符结构PEXTENDED_DRIVER_EXTENSION DriverExtension;//标准驱动扩展(所有驱动都有一个标准驱动扩准) UNICODE_STRING DriverName;//“Driver\服务名”或“FileSystem\服务名”(也在对象头中保存) PUNICODE_STRING HardwareDatabase;//注册表硬件配置键路径struct _FAST_IO_DISPATCH *FastIoDispatch;//用于文件系统的一组快速IO例程PDRIVER_INITIALIZE DriverInit;//sys文件的oep(一般就是DriverEntry,当然可以是其他名字)PDRIVER_STARTIO DriverStartIo;//StartIO irp队列机制专用函数PDRIVER_UNLOAD DriverUnload;//驱动的卸载例程PDRIVER_DISPATCH MajorFunction[IRP_MJ_MAXIMUM_FUNCTION + 1];//各irp的派遣函数} DRIVER_OBJECT, *PDRIVER_OBJECT;每个驱动对象都有一个标准的驱动扩展,且紧跟在驱动对象后面。
windows_XP系统内核文件分析
![windows_XP系统内核文件分析](https://img.taocdn.com/s3/m/9a17b44cf7ec4afe04a1dfd6.png)
windows XP系统内核文件分析[精简系统做个参考]——转自eaglelin 当然, 精简系统是要付出代价的. 不要贪得无厌, 免得系统坏了修不好啊.Windows XP个别System32 文件System32 文件夹下个别要移除的文件我们就要删除另外600 个system32 文件...我们要一次把它们全都解决掉.以下是我所删除的System32 文件列表, 另外还有相关的批处理文件.我不会把自己用的批处理文件给别人的.我已经厌倦别人认为我的批处理文件就是最适合他们的. 其实并不是这么回事.这里有个很简单的例子能够说明原因.我在我用的批处理文件中定义了要删除winfax.dll (Microsoft 传真API 支持DLL), 因为我没有传真机. 你直接用我的批处理文件的话, 就会把你的系统中的传真相关文件删掉. 这样, 你的传真机无法正常工作的话. 你就会骂我.到底需要移除哪些System32 文件, 这应该由你自己来决定. 我已经尽力把相关信息提供给你了, 这些应该可以帮助你决定应当删除哪些文件.如果你想创建你自己的批处理文件的话,请仔细查看相关移除信息, 我会把相应部分的批处理脚本贴上去的, 然后你可以将其粘贴到你自己的批处理文件中.我在我的批处理文件中添加了一个防止出现意外的功能...这些文件会被移动并会被保存下来(没有直接将其删除...) 备份至C:/backup.在这个backup 文件夹中有个名为"smart placement"的子文件夹. 其出现的顺序与XP 中的顺序相同. 首先你会看到WINDOWS 文件夹. 在WINDOWS 文件夹中你可以看到system32 文件夹.我创建这个所谓的”smart placement”就是为了让你明白相关备份文件的来源. 如你所见, 这些批处理文件也可用于其它文件夹中的文件. 反正, Backup 文件夹中的结构与XP 的相同.请确保在你使用任何注册表清理工具之前, 应当先把Backup 文件夹中的文件临时删掉...注册表清理工具可能会把注册表中的路径指向backup 文件夹中的相关路径.将用得到的部分脚本复制粘贴到记事本中. 然后将其另存.代码:________________________________________IF NOT EXIST "c:/backup/WINDOWS/system32" md c:/backup/WINDOWS/system32MOVE c:/WINDOWS/system32/6to4svc.dll c:/backup/WINDOWS/system32/MOVE c:/WINDOWS/system32/aaaamon.dll c:/backup/WINDOWS/system32/MOVE c:/WINDOWS/system32/acledit.dll c:/backup/WINDOWS/system32/MOVE c:/WINDOWS/system32/admparse.dll c:/backup/WINDOWS/system32/________________________________________C:/WINDOWS/system32:12520437.cpx ...代码页转换表.12520850.cpx ... 代码页转换表.6to4svc.dll ....在IP4网络上提供IPv6 连接的服务aaaamon.dll ....Aaaa Monitor Dllacledit.dll ....访问控制列表编辑器ac3filter.cpl ..ac3filter 控制面板扩展属于我所安装用于看电影的AC3Filter 编解码器.ahui.exe .......应用程序兼容用户界面ALSNDMGR.CPL ...Realtek AC97 音频控制面板我用RTLCPL.EXE (Realtek 音频控制面板) 作为代替.amcompat.tlb ...ansi.sys .......apcups.dll .....APC 智能提供程序APPEND.EXE .....(Append). 允许应用程序在当前文件夹中打开指定目录中的数据文件. 此工具源于MS-DOS 5.0.asctrls.ocx ....Active Setup 控件A T.EXE .........(AT). 用于设置在指定时间和日期执行任务. 需要运行计划任务服务. atkctrs.dll ....Windows NT AppleTalk 性能计数器dllATMADM.EXE .....(A TM). ATM 呼叫管理器.auditusr.exe ... 设置每用户审核策略atmfd.dll ......Windows NT OpenType/Type 1 字体驱动atmlib.dll .....Windows NT OpenType/Type 1 API 库.atmpvcno.dll ...Atm Epvc Install DLLatrace.dll .....Async Trace DLLATTRIB.EXE .....(文件属性). 显示或更改文件属性(只读, 存档, 隐藏, 或系统). AUTOCONV.EXE ...(自动转换). 用于将FAT 分区格式转为NTFS.autodisc.dll ...Windows AutoDiscovery API , 自动收取邮件AUTOFMT.EXE ...(自动格式化). 用于转换文件系统的工具.AUTOLFN.EXE ....长文件名转换工具. 用于DOS模式下. 能够自动将长文件名转换为8.3 格式.-------------------------------------------------------batt.dll .......电池类安装程序如果你使用笔记本的话, 那么设备管理器会需要这个文件来访问你的电池属性.-------------------------------------------------------bidispl.dll ....Bidispl DLLbios1.rom ......bios4.rom ......bitsprx2.dll ...后台智能传输服务代理bitsprx3.dll ... 后台智能传输服务2.0 代理blastcln.exe ...Blaster/Nachi 移除工具BOOTOK.EXE .....(启动确认). 在一次成功地登录系统之后, “上次正确的配置”会用它保存配置参数.BOOTVRFY.EXE ...(启动验证). “上次正确的配置”会用它验证一个引导选择. browsewm.dll ...BrowseWM Playerbthci.dll ......蓝牙类别安装程序bthprops.cpl ...蓝牙控制面板小程序(无线公司)bthserv.dll ....蓝牙支持服务btpanui.dll ....蓝牙PAN 用户界面-------------------------------------------------------capesnpn.dll ...Microsoft 证书模板管理扩展ccfgnt.dll .....Internet 配置库certmgr.dll ....证书管理工具certmgr.msc .... 内容-> 分级审查-> 启用RTCSHARE.EXE ...(RTC 程序共享). 实时时钟组件.rtipxmib.dll ...Microsoft Router IPX MIB subagentRUNAS.EXE ......(运行方式). 这个工具可用一个新用户名和密码执行一个进程. 一般, 可用来在低权限用户登录的系统上以高权限的管理员身份来运行一个程序.safrdm.dll .....Microsoft 帮助中心桌面管理器safrslv.dll ....Microsoft 帮助中心会话处理程序SA VEDUMP.EXE ...(转储). 当系统出现STOP 错误时, 可用于将内存中的内容转储为文件. sbe.dll ........DirectShow 流缓冲滤镜sbeio.dll ...... 流缓冲输入输出DLLSC.EXE .........( Windows NT 服务管理). 一个服务管理工具.scrobj.dll .....Windows (r) 脚本组件运行时scrrun.dll .....Microsoft (r) 脚本运行时SDBINST.EXE ....(Installer). AppFix 和AppHelp 安装程序.sendcmsg.dll ....发送控制台消息sdhcinst.dll ...Secure Digital Host 控制器类别控制器sdpblb.dll .....Microsoft Sdpblbsecupd.sig .....security.dll ...安全支持提供程序接口senscfg.dll ....SENS 安装设置工具serialui.dll ...串行端口属性页面setup.bmp ......SETUP.EXE ......(Setup). Windows 安装程序setupdll.dll ...Windows 2000 安装DLLSETVER.EXE .....(设置版本). 用于定义报告给某个应用程序关于DOS 的版本.sfc.exe ........(Windows 2000 系统文件检查工具). 用于验证XP 的文件是否存在以及是否正确.sfc_os.dll ...(Windows 文件保护). 用于保护Windows 的系统文件.sfmapi.dll .....Windows NT Macintosh 文件服务客户端SHARE.EXE ......(Share). 能让两个程序同时使用一个文件的DOS 工具.shellstyle.dll ..Windows 外壳样式资源DllSHMGRATE.EXE ... Windows XP 用户数据转移工具.SHRPUBW.EXE ....(共享文件夹创建工具). 用于在Windows XP 系统上创建共享文件夹. shscrap.dll ....外壳碎片对象句柄SHUTDOWN.EXE ...(远程关机工具). 允许关闭或重启本地或远程电脑.sigtab.dll .....文件完整性设置SIGVERIF.EXE ...(文件签名验证工具). 验证所选文件是否经过认证.simpdata.tlb ....sisbkup.dll ....单实例存储备份支持功能skdll.dll ......序列号SKEYS.EXE ......(序列号). 一个可提供支持序列号功能的系统服务.slayerxp.dll ...”兼容性”选项卡外壳扩展DLLsmbinst.exe ....系统管理BIOS 驱动安装程序softpub.dll ....Softpub Forwarder DLLSORT.EXE .......(Sort). 用于整理键盘输入并将结果写入一个文件或是显示在屏幕上. spmsg.dll ......Service Pack 消息spnike.dll .....用于Nike 设备的MDM 设备接口spnpinst.exe ...点对点定制安装SPRESTRT.EXE ...重启时还原注册表sprio600.dll ... Rio 600 的MDM 设备接口sprio800.dll ... Rio 800 的MDM 设备接口spxcoins.dll ...Specialix MPS NT 升级协同安装程序srvsvc.dll .....服务器服务DLLsti_ci.dll .....静止图像类别安装程序sti.dll ........ 静止图像设备客户端DLLstimon.exe ..... 静止图像设备监视器storage.dll ....OLE 2.1 16/32 相互操作库strmfilt.dll ...流滤镜库SUBST.EXE ......(虚拟). 可将一个路径虚拟为一个分区.svcpack.dll ....Windows 2000 Service Pack 安装程序SYNCAPP.EXE ....(同步). 公文包用于同步所含文件的工具.synceng.dll ....Windows 公文包引擎syncui.dll .....Windows 公文包资源文件SYSEDIT.EXE .....(系统编辑器). 一个用于打开编辑system.ini, win.ini, config.sys, 和autoexec.bat 的编辑器.sysinv.dll .....Windows 系统清单SYSKEY.EXE .....(Windows XP 帐户数据库管理器). 用于设置Windows XP 帐户数据库的安全特性.sysmon.ocx .....系统监视控件sysprint.sep ...sysprtj.sep ....SYSTRAY.EXE ....(系统栏). 系统栏提供程序. 它能控制任务栏和系统栏. 但是, 没它的话, 也没有什么不正常的地方.t2embed.dll ....t2embedtaskman.exe ....任务管理器(不是平时使用的那个. 平时那个是: "taskmgr.exe")tdc.ocx ........TDC ActiveX 控件TELNET.EXE .....(Telnet). 一个Telnet 客户端, 可用于访问远程Telnet 服务器系统.tftp.exe .......简单文件传输协议应用程序toolhelp.dll ...Windows 调试工具助手库traffic.dll ....Microsoft 网络交通控制1.0 DLL .......将文件夹列为树形结构tsbyuv.dll .....东芝视频解码器typelib.dll ....OLE 2.1 16/32 相互操作库ufat.dll .......FAT 工具DLLumandlg.dll ....UManDlg DLLunimdm.tsp .....unimdmat.dll ...通用调制解调器服务提供程序AT 微型驱动ureg.dll .......注册表工具DLLusbmon.dll .....标准动态打印端口监视器DLLUSER.EXE .......(Windows 用户界面核心组件). 用于保持Win16 的兼容性. 不是一个有效的Win32 应用程序.v7vga.rom .......vbajet32.dll ...Visual Basic 应用程序开发环境- Expression 服务加载器vcdex.dll ......32 位MSCDEX 虚拟设备驱动vdmredir.dll ...DOS 虚拟机网络接口库verifier.dll ...标准应用程序验证提供程序dllVERIFIER.EXE ...(驱动验证管理器). 可用它探测一个驱动的操作是否会导致系统冲突. vfpodbc.dll ....vfpodbcvga256.dll .....256 色VGA/SVGA 显示驱动vga64k.dll .....32K/64K 色VGA/SVGA 显示驱动View Channels.scf ..(查看频道).vjoy.dll .......32 位手柄虚拟设备驱动(我没有手柄)w32topl.dll ....Windows NT Topology 维护工具wavemsp.dll ....Microsoft Wave MSPwdl.trm ........webvw.dll ......网页视图外壳扩展库WEXTRACT.EXE ...(Win32 Cab 自解压程序创建工具). 用于提取Cab 压缩包中的文件. wiasf.ax .......WIA 流快照滤镜wifeman.dll ....Windows WIFE 接口核心组件 ........用于保持兼容性win87em.dll ....winbrand.dll ...Windows Branding 资源WINCHA T.EXE ....简单的聊天工具winfax.dll .....Microsoft 传真API 支持DLL (我没有传真机.)winhelp.hlp ....WINHLP32.EXE ...(Windows 帮助). 用于打开帮助文件.WINMSD.EXE .....(Windows XP 诊断工具或是系统信息工具). Windows XP 诊断工具. winnls.dll .....Windows IME 接口核心组件winntbbu.dll ...Windows 安装画面DLLwinoldap.mod ...winshfhc.dll ...文件风险评估winsock.dll ....Windows Socket 16-Bit DLLwinstrm.dll ....Streams DLLwkssvc.dll .....Workstation 服务DLLwmidx.dll ......Windows Media 索引DLLwmiprop.dll ....WDM 动态属性页面协同安装程序wmv8ds32.ax ....(文件版本: 8.0.0.4000). Windows Media 视频解码器V8wmvds32.ax .....Windows Media 视频解码器WOWDEB.EXE .....(WOW 调试程序). WOW 调试程序. Win16 调试助手wowexec.exe ....Windows Win16 程序启动工具wowfax.dll .....Windows 3.1 兼容传真驱动DLLwowfaxui.dll ...Windows 3.1兼容传真驱动DLLWPABALN.EXE ....(Windows 产品激活). Windows 产品激活气球提示器.WRITE.EXE ......写字板, 支持纯文本和RTF 文档.有Word 就不用它了wscntfy.exe ....Windows 安全中心通知程序wscui.cpl ...... 安全中心控制面板小程序WSCRIPT.EXE ....(脚本宿主). 基于Windows 的脚本宿主.wshatm.dll .....Windows 套接层助手DLLwshbth.dll .....Windows套接层助手DLLwshcon.dll .....Microsoft (r) Windows 脚本控制器wshisn.dll .....NWLINK2套接层助手DLLwshnetbs.dll bios Windows套接层助手DLLwshom.ocx ......Windows 脚本宿主运行时库WshRm.dll ......用于PGM 的Windows套接层助手wsnmp32.dll ....Microsoft WinSNMP v2.0 Manager APIxactsrv.dll ....下级API 服务器DLLxcopy.exe ......加强版的复制命令xenroll.dll ....XEnrollxpob2res.dll ...Service Pack 2 OOB 消息............350 个没有删除的System32 文件...以及原因............我为什么不删除这些文件是有很多重要原因的, 其中有许多文件要经常用到. 我会把为什么不想删除这些文件的原因列在下面.NVDVD 需要以下文件acelpdec.ax 音频解码器以下是NVDVD 安装的文件:DolbyHph.dll .....杜比耳机引擎license.955200 ...... 设置-> 高级页面上的适配器, 监视器和疑难解答选项卡需要以下文件:deskadp.dll ....高级显示适配器属性deskmon.dll .... 高级显示监视器属性deskperf.dll ... 高级显示性能属性-------------------------------------------------硬件设备管理器需要以下文件:devmgr.dll .....设备管理器MMC 管理工具dmocx.dll ......树形视图OCX-------------------------------------------------Windows 默认磁盘碎片整理工具需要以下文件:虽然我用PerfectDisk 整理磁盘, 但是我发现需要保留Windows 默认的磁盘碎片整理工具才能安装PerfectDisk.你的电脑在用过一段时间之后, 磁盘上的文件分布就会比较乱, 也就产生了不少磁盘碎片, 这会导致访问操作文件变慢. 用磁盘碎片整理工具将其整理一遍之后, 就会好多了. DFRGNTFS.EXE ..(NTFS 磁盘碎片整理工具). 用于整理NTFS 分区.dfrgres.dll .... 磁盘碎片整理工具资源模块dfrgsnap.dll ... 磁盘碎片整理管理工具模块dfrgui.dll ..... 磁盘碎片整理用户界面模块vssapi.dll ....Microsoft® 卷影复制请求方/写入方服务API DLL-------------------------------------------------DivX.dll .......DivX® 编解码器for Windowsdivxdec.ax .....DivX® 解码滤镜-------------------------------------------------我所安装的第三方编解码器, 以避免播放损坏的视频时画面定格DivXAF.ax ......DivX 反定格滤镜-------------------------------------------------添加或删除模块所需的文件:duser.dll ......Windows DirectUser 引擎-------------------------------------------------ELS.DLL ........事件查看器管理工具EVENTVWR.EXE ...(事件查看器). 事件查看器的可执行文件.-------------------------------------------------服务窗口所需的文件filemgmt.dll .....服务和共享文件夹mfc42u.dll .....MFCDLL 共享库-------------------------------------------------用于维护字体文件夹的特殊结构, 且用于显示字体图标:fontext.dll ....Windows 字体文件夹外壳扩展FONTVIEW.EXE ..(字体查看器). 用于在窗口中查看字体示例.-------------------------------------------------用于安全模式下, 避免图像看起来像是被撕裂了一样:framebuf.dll ...帧缓冲显示驱动-------------------------------------------------framedyn.dll ...WMI SDK 提供程序框架我把wbem 文件夹中的framedyn.dll 移动到system32 中了, 然后又把wbem 文件夹以及其中的内容都删掉了.有时当你运行系统还原时会出现错误, 它会提示你, 没有framedyn.dll 的话, 将无法运行系统还原.没有"framedyn.dll" 的话, 当你右击我的电脑时会出错. 将其保留到system32 文件夹中可避免出错.-------------------------------------------------glu32.dll ......(OpenGL 工具库DLL). OpenGL 3D 图形渲染函数库.-------------------------------------------------GRPCONV.EXE .....(组转换). 将Microsoft Windows 3.x 的程序管理器组转换为开始菜单项目.没有GRPCONV.EXE 的话, 我就无法安装Microsoft 的文件检查工具以检查正确的DVD 编解码器.-------------------------------------------------Acronis True Image 所需的文件hhctrl.ocx .....Microsoft® HTML 帮助控件-------------------------------------------------hid.dll .....(Hid 用户库文件).Realtek’s 音频配置工具需要此文件(C:/WINDOWS 中的soundman.exe)-------------------------------------------------html.iec .......(Microsoft HTML 转换器) 用于将从网页上复制的文本粘贴到写字板中. (用于保留网页文本格式?)-------------------------------------------------我需要以下第三方解码器来回放某些格式的视频.I263_32.DRV ....Intel I.263 视频驱动2.55.012系统默认MP3 解码器:l3codecx.ax .....MPEG Layer-3 音频解码器-------------------------------------------------以下文件属于Internet Explorerimgutil.dll ....IE 图像解码插件DLLMSCTF.DLL ......MSCTF 服务器DLLMSIMTF.DLL .....Active IMM 服务器DLLpngfilt.dll ....IE PNG 图像解码插件-------------------------------------------------IMAPI.EXE .....(刻录服务).通过IMAPI 管理光盘刻录, 可用Nero 等代替.-------------------------------------------------Plus! MP3 Audio Converter LE所需用于将.mp3 转为.wma 的编解码器:IMC32.ACM ......Intel MSACM 音频编解码器l3codeca.acm ...(MPEG Layer-3 音频编解码器).。
WindowsXP系统内核文件分析
![WindowsXP系统内核文件分析](https://img.taocdn.com/s3/m/4a340222b80d6c85ec3a87c24028915f804d8468.png)
WindowsXP系统内核⽂件分析regsvc.dll .....远程注册表服务REGWIZ.EXE .....(注册向导). 令注册 XP 的过程⾃动化.regwizc.dll .... 注册向导的相关模块rend.dll .......Microsoft 集合控件REPLACE.EXE ....(Replace). ⽤于替换⽂件的命令⾏⼯具.rnr20.dll ......Windows Socket2 命名空间 DLLroutetab.dll ...Microsoft 路由表 DLLrpcns4.dll .....Remote Procedure Call 命名服务客户端rsmps.dll ......RSM 代理存根rsaci.rat ...... <-- 属于 msrating.dll. 你可在以下位置查看分级选项:Internet 选项 -> 内容 -> 分级审查 -> 启⽤RTCSHARE.EXE ...(RTC 程序共享). 实时时钟组件.rtipxmib.dll ...Microsoft Router IPX MIB subagentRUNAS.EXE ......(运⾏⽅式). 这个⼯具可⽤⼀个新⽤户名和密码执⾏⼀个进程.⼀般, 可⽤来在低权限⽤户登录的系统上以⾼权限的管理员⾝份来运⾏⼀个程序.safrdm.dll .....Microsoft 帮助中⼼桌⾯管理器safrslv.dll ....Microsoft 帮助中⼼会话处理程序SAVEDUMP.EXE ...(转储). 当系统出现 STOP 错误时, 可⽤于将内存中的内容转储为⽂件.sbe.dll ........DirectShow 流缓冲滤镜sbeio.dll ...... 流缓冲输⼊输出 DLLSC.EXE .........( Windows NT 服务管理). ⼀个服务管理⼯具.scrobj.dll .....Windows (r) 脚本组件运⾏时scrrun.dll .....Microsoft (r) 脚本运⾏时SDBINST.EXE ....(Installer). AppFix 和 AppHelp 安装程序.sendcmsg.dll ....发送控制台消息sdhcinst.dll ...Secure Digital Host 控制器类别控制器sdpblb.dll .....Microsoft Sdpblbsecupd.sig .....security.dll ...安全⽀持提供程序接⼝senscfg.dll ....SENS 安装设置⼯具serialui.dll ...串⾏端⼝属性页⾯setup.bmp ......SETUP.EXE ......(Setup). Windows 安装程序setupdll.dll ...Windows 2000 安装 DLLSETVER.EXE .....(设置版本). ⽤于定义报告给某个应⽤程序关于 DOS 的版本.sfc.exe ........(Windows 2000 系统⽂件检查⼯具). ⽤于验证 XP 的⽂件是否存在以及是否正确.sfc_os.dll ...(Windows ⽂件保护). ⽤于保护 Windows 的系统⽂件.sfmapi.dll .....Windows NT Macintosh ⽂件服务客户端SHARE.EXE ......(Share). 能让两个程序同时使⽤⼀个⽂件的 DOS ⼯具.shellstyle.dll ..Windows 外壳样式资源DllSHMGRATE.EXE ... Windows XP ⽤户数据转移⼯具.SHRPUBW.EXE ....(共享⽂件夹创建⼯具). ⽤于在 Windows XP 系统上创建共享⽂件夹.shscrap.dll ....外壳碎⽚对象句柄SHUTDOWN.EXE ...(远程关机⼯具). 允许关闭或重启本地或远程电脑.sigtab.dll .....⽂件完整性设置SIGVERIF.EXE ...(⽂件签名验证⼯具). 验证所选⽂件是否经过认证.simpdata.tlb ....sisbkup.dll ....单实例存储备份⽀持功能skdll.dll ......序列号SKEYS.EXE ......(序列号). ⼀个可提供⽀持序列号功能的系统服务.slayerxp.dll ...”兼容性” 选项卡外壳扩展DLLsmbinst.exe ....系统管理 BIOS 驱动安装程序softpub.dll ....Softpub Forwarder DLLSORT.EXE .......(Sort). ⽤于整理键盘输⼊并将结果写⼊⼀个⽂件或是显⽰在屏幕上.spnike.dll .....⽤于 Nike 设备的 MDM 设备接⼝spnpinst.exe ...点对点定制安装SPRESTRT.EXE ...重启时还原注册表sprio600.dll ... Rio 600 的 MDM 设备接⼝sprio800.dll ... Rio 800 的 MDM 设备接⼝spxcoins.dll ...Specialix MPS NT 升级协同安装程序srvsvc.dll .....服务器服务 DLLsti_ci.dll .....静⽌图像类别安装程序sti.dll ........ 静⽌图像设备客户端 DLLstimon.exe ..... 静⽌图像设备监视器storage.dll ....OLE 2.1 16/32 相互操作库strmfilt.dll ...流滤镜库SUBST.EXE ......(虚拟). 可将⼀个路径虚拟为⼀个分区.svcpack.dll ....Windows 2000 Service Pack 安装程序SYNCAPP.EXE ....(同步). 公⽂包⽤于同步所含⽂件的⼯具.synceng.dll ....Windows 公⽂包引擎syncui.dll .....Windows 公⽂包资源⽂件SYSEDIT.EXE .....(系统编辑器). ⼀个⽤于打开编辑 system.ini, win.ini, config.sys, 和 autoexec.bat 的编辑器.sysinv.dll .....Windows 系统清单SYSKEY.EXE .....(Windows XP 帐户数据库管理器). ⽤于设置Windows XP 帐户数据库的安全特性.sysmon.ocx .....系统监视控件sysprint.sep ...sysprtj.sep ....SYSTRAY.EXE ....(系统栏). 系统栏提供程序. 它能控制任务栏和系统栏. 但是,没它的话, 也没有什么不正常的地⽅.t2embed.dll ....t2embedtaskman.exe ....任务管理器 (不是平时使⽤的那个. 平时那个是:"taskmgr.exe")tdc.ocx ........TDC ActiveX 控件TELNET.EXE .....(Telnet). ⼀个 Telnet 客户端, 可⽤于访问远程Telnet 服务器系统.tftp.exe .......简单⽂件传输协议应⽤程序toolhelp.dll ...Windows 调试⼯具助⼿库traffic.dll ....Microsoft ⽹络交通控制 1.0 DLL .......将⽂件夹列为树形结构tsbyuv.dll .....东芝视频解码器typelib.dll ....OLE 2.1 16/32 相互操作库ufat.dll .......FAT ⼯具 DLLumandlg.dll ....UManDlg DLLunimdm.tsp .....unimdmat.dll ...通⽤调制解调器服务提供程序 AT 微型驱动ureg.dll .......注册表⼯具 DLLusbmon.dll .....标准动态打印端⼝监视器DLLUSER.EXE .......(Windows ⽤户界⾯核⼼组件). ⽤于保持 Win16 的兼容性. 不是⼀个有效的 Win32 应⽤程序.v7vga.rom .......vbajet32.dll ...Visual Basic 应⽤程序开发环境- Expression 服务加载器vcdex.dll ......32 位MSCDEX 虚拟设备驱动vdmredir.dll ...DOS 虚拟机⽹络接⼝库verifier.dll ...标准应⽤程序验证提供程序dllVERIFIER.EXE ...(驱动验证管理器). 可⽤它探测⼀个驱动的操作是否会导致系统冲突.vfpodbc.dll ....vfpodbcvga256.dll .....256 ⾊ VGA/SVGA 显⽰驱动vga64k.dll .....32K/64K ⾊ VGA/SVGA 显⽰驱动View Channels.scf ..(查看频道).vjoy.dll .......32 位⼿柄虚拟设备驱动 (我没有⼿柄)w32topl.dll ....Windows NT Topology 维护⼯具wavemsp.dll ....Microsoft Wave MSPwebvw.dll ......⽹页视图外壳扩展库WEXTRACT.EXE ...(Win32 Cab ⾃解压程序创建⼯具). ⽤于提取 Cab 压缩包中的⽂件.wiasf.ax .......WIA 流快照滤镜wifeman.dll ....Windows WIFE 接⼝核⼼组件 ........⽤于保持兼容性win87em.dll ....winbrand.dll ...Windows Branding 资源WINCHAT.EXE ....简单的聊天⼯具winfax.dll .....Microsoft 传真 API ⽀持 DLL (我没有传真机.)winhelp.hlp ....WINHLP32.EXE ...(Windows 帮助). ⽤于打开帮助⽂件.WINMSD.EXE .....(Windows XP 诊断⼯具或是系统信息⼯具). Windows XP 诊断⼯具.winnls.dll .....Windows IME 接⼝核⼼组件winntbbu.dll ...Windows 安装画⾯ DLLwinoldap.mod ...winshfhc.dll ...⽂件风险评估winsock.dll ....Windows Socket 16-Bit DLLwinstrm.dll ....Streams DLLwkssvc.dll .....Workstation 服务 DLLwmidx.dll ......Windows Media 索引 DLLwmiprop.dll ....WDM 动态属性页⾯协同安装程序wmv8ds32.ax ....(⽂件版本: 8.0.0.4000). Windows Media 视频解码器 V8 wmvds32.ax .....Windows Media 视频解码器WOWDEB.EXE .....(WOW 调试程序). WOW 调试程序. Win16 调试助⼿wowexec.exe ....Windows Win16 程序启动⼯具wowfax.dll .....Windows 3.1 兼容传真驱动 DLLwowfaxui.dll ...Windows 3.1兼容传真驱动DLLWPABALN.EXE ....(Windows 产品激活). Windows 产品激活⽓球提⽰器. WRITE.EXE ......写字板, ⽀持纯⽂本和 RTF ⽂档.有 Word 就不⽤它了wscntfy.exe ....Windows 安全中⼼通知程序wscui.cpl ...... 安全中⼼控制⾯板⼩程序WSCRIPT.EXE ....(脚本宿主). 基于 Windows 的脚本宿主.wshatm.dll .....Windows 套接层助⼿ DLLwshbth.dll .....Windows套接层助⼿DLLwshcon.dll .....Microsoft (r) Windows 脚本控制器wshisn.dll .....NWLINK2套接层助⼿DLLwshnetbs.dll bios Windows套接层助⼿DLLwshom.ocx ......Windows 脚本宿主运⾏时库WshRm.dll ......⽤于 PGM 的 Windows套接层助⼿wsnmp32.dll ....Microsoft WinSNMP v2.0 Manager APIxactsrv.dll ....下级 API 服务器 DLLxcopy.exe ......加强版的复制命令xenroll.dll ....XEnrollxpob2res.dll ...Service Pack 2 OOB 消息............350 个没有删除的 System32 ⽂件...以及原因............我为什么不删除这些⽂件是有很多重要原因的, 其中有许多⽂件要经常⽤到. 我会把为什么不想删除这些⽂件的原因列在下⾯.NVDVD 需要以下⽂件acelpdec.ax ⾳频解码器以下是 NVDVD 安装的⽂件:DolbyHph.dll .....杜⽐⽿机引擎license.955200 ...... <-- 在我把这个看起来⽆害的⽂件删除之后,当我重启电脑时就会提⽰内存出错,还会在事件查看器中显⽰程序错误. 即使我将其放回system32 ⽂件夹中, 错误仍然存在.msxml3a.dll ....XML 资源⽂件-------------------------------------------------Needed for Regeditaclui.dll .....Security Descriptor Editorclb.dll .....Column List Box重启电脑需要以下⽂件AUTOCHK.EXE ..(⾃动检查磁盘). 如果存储卷被标记为杂乱的话 (有坏簇, 错误区块, 或是有其它损坏), 那么在 WinXP 启动期间就会⾃动运⾏这个程序. bootvid.dll .....VGA 启动驱动csseqchk.dll ....CSSeqChkdpcdll.dll ......Dpcdll Modulehal.dll ........(硬件抽象层). 隐藏 Windows 应⽤程序处理硬件问题的复杂性.kdcom.dll .......内核调试程序硬件扩展 DLLshgina.dll .....Windows 外壳⽤户登录 <-- 这个⽂件⽤于从你的桌⾯上重启电脑.进⼀步讲, ⼀旦你将其删除或是将其从 system32 ⽂件夹中移⾛,那么即使你将其放回, 也照样⽆法从你的桌⾯重新启动.USERINIT.EXE ..(⽤户初始化). 在⽤户登录之后, ⽤于确定操作系统的环境.-------------------------------------------------安装 Yahoo Messenger 需要以下⽂件AVICAP32.dll .....AVI 捕获类当我安装 Yahoo Messenger 时,弹出以下错误对话框:"⽆法启动这个程序, 因为没有找到AVICAP32.dll. 请安装此⽂件以解决这个问题."然⽽, 即使出现了这个消息, 也能成功安装 Yahoo Messenger.-------------------------------------------------这些⽂件属于 Windows Media Player 10avifil32.dll .....Microsoft AVI ⽂件⽀持库 <-- Plus! MP3 AudioConverter LE 需要此⽂件blackbox.dll ..BlackBox DLLLOGAGENT.EXE ..(Windows Media Player ⽇志代理). 可记录 Windows Media Player 出现的错误.MsPMSP.dll ....Microsoft Media 设备服务提供程序MSSCP.dll .....Windows Media 安全内容提供程序msvfw32.dll ...Microsoft Video for Windows DLLMSWMDM.dll ....Windows Media 设备管理器核⼼qasf.dll ......DirectShow ASF ⽀持wmadmod.dll ...Windows Media ⾳频解码器wmadmoe.dll ...Windows Media ⾳频编码器/转换器WMASF.DLL ......Windows Media ASF DLLWMDMLOG.dll ...Windows Media 设备管理器⽇志程序WMDMPS.dll ....Windows Media 设备管理器 Proxy Stubwmnetmgr.dll ..Windows Media ⽹络插件管理器 DLLWMP.DLL ........Windows Media Player 核⼼wmp.ocx ......Windows Media Playerwmpasf.dll ....Windows Media Filter Shimwmpcd.dll .....Windows Media Playerwmpcore.dll ...Windows Media Playerwmpdxm.dll ....Windows Media 6.4 Player ShimWMPLOC.DLL .....Windows Media Playerwmpshell.dll ..Windows Media Player 启动程序wmpui.dll .....Windows Media Playerwmsdmod.dll ...Windows Media 屏幕解码器WMVCORE.DLL ....Windows Media 回放/认证 DLLwmvdmod.dll ...Windows Media 视频解码器-------------------------------------------------------NLS ⽂件 = 多国语⾔资源⽂件. 字符集转换; 本地语⾔服务驱动(字体或字体映射).就我的 U.S.English (美国英⽂) 设置⽽⾔, 保留了以下NLS ⽂件:c_437.nlsc_932.nlsc_936.nls?简体中⽂代码页c_1250.nlsc_1251.nlsc_1252.nls?ANSI Latin 代码页c_1255.nlsc_28591.nlsc_28592.nlsC_28595.NLSc_28605.nlsctype.nlsl_intl.nlslocale.nlssortkey.nlssorttbls.nlsunicode.nls-------------------------------------------------.cab ⽂件夹cabview.dll ....Cab ⽂件查看器外壳扩展-------------------------------------------------我需要 cards.dll 来玩纸牌游戏cards.dll ......纸牌游戏相关 DLL-------------------------------------------------Windows Update 需要以下⽂件CDM.DLL ........Windows Update CDM StubDCIMAN32.DLL ...DCI 管理器dssenh.dll .....Microsoft Enhanced DSS 和 Diffie-Hellman 加密提供程序iuengine.dll ...Windows Update 控制引擎JSCRIPT.DLL ....Microsoft (r) JScriptlicdll.dll .....Licdll Modulepidgen.dll .....Pid3.0 ⽣成器rasapi32.dll ....远程访问 APIrasman.dll ......远程访问连接管理器wshext.dll .....Microsoft (r) Windows 脚本宿主外壳扩展WUAPI.DLL ......Windows Update 客户端 APIwuauclt1.exe ...Windows Update ⾃动更新客户端WUAUCLT.EXE ....(Windows Update). ⾃动更新客户端wuaucpl.cpl ....⾃动更新控制⾯板WUAUENG1.DLL ...Windows Update ⾃动更新引擎WUCLTUI.DLL ....Windows Update 客户端⽤户界⾯插件wupdmgr.exe ....Windows Update 管理器WUWEB.DLL ......Windows Update ⽹络控件----------------------------------------------以下⽂件属于 CHKDSKCFGMGR32.DLL ...配置管理转发器 DLLCHKDSK.EXE ..(检查磁盘). ⼀个磁盘检查⼯具, 可⽤于搜索和修复磁盘错误. dskquota.dll ...Windows 外壳磁盘配额⽀持 DLLdskquoui.dll ...Windows外壳磁盘配额⽤户界⾯DLLfmifs.dll ......FM IFS ⼯具 DLLifsutil.dll ....IFS ⼯具 DLLMFC42.DLL ......MFCDLL 共享库rshx32.dll ....安全外壳扩展twext.dll ......上⼀版本属性页⾯ULIB.DLL .......⽂件⼯具⽀持 DLLuntfs.dll ....., .NTFS ⼯具 DLL-------------------------------------------------CMD.EXE ....(命令⾏).可提供 Windows NT 下的命令⾏提⽰符 (MS-DOS 外壳解释程序).-------------------------------------------------Cryptographic 加密服务需要以下⽂件crtdll.dll .....加密管理器cryptsvc.dll ...加密服务-------------------------------------------------⽂件的摘要选项卡需要以下⽂件:cryptext.dll ...加密外壳扩展docprop.dll ....OLE Doc ⽂件属性页⾯docprop2.dll ...Microsoft DocProp 外壳扩展我没有删掉所有的 DirectX ⽂件...只是接近全部.我保留了⼀些 DirectX ⽂件, 因为NVDVD 需要它们.我发现 WMP 10 另外需要 2 个DirectX ⽂件: "dsound.dll" 和 "quartz.dll"我不在我的电脑上玩游戏, 因此我把别的 DX ⽂件都删掉了.以下保留的⽂件属于 Direct3D:d3d8thk.dll ....Microsoft Direct3D OS Thunk Layerd3d9.dll .......Microsoft Direct3Dd3dim700.dll ...Microsoft Direct3D以下保留的⽂件属于DirectShow that:devenum.dll ....设备枚举.msdmo.dll ......DMO 运⾏时qdvd.dll .......DirectShow DVD 回放运⾏时quartz.dll .....(DirectShow 运⾏时). <-- WMP 10 需要此⽂件.以下保留的⽂件属于 DirectX:ddraw.dll ......Microsoft DirectDrawdsound.dll .....(DirectSound). <-- WMP 10 需要此⽂件.ksuser.dll .....⽤户 CSA 库-------------------------------------------------------电脑管理控制台devmgmt.msc ......设备管理器dfrg.msc .........磁盘碎⽚整理eventvwr.msc .....事件查看器services.msc .....服务查看器-------------------------------------------------观看 Yahoo 电影预告⽚所需⽂件davclnt.dll ....Web DAV (⽹络⽂件夹) 客户端 DLLdbghelp.dll ....(Windows 图像助⼿). <-- 并不是真的需要⽤它来观看 Yahoo电影预告⽚,只是保留它可以避免程序提⽰⽆法找到dbghelp.dll...没有dbghelp.dll 也可正常播放电影.dispex.dll .....Microsoft (r) DispExhhsetup.dll ....Microsoft? HTML 帮助iepeers.dll ....Internet Explorer 对等对象mmcshext.dll ...MMC 外壳扩展 DLLperfos.dll .....Windows 系统性能对象 DLLssdpapi.dll ....SSDP 客户端 API DLLupnp.dll .......通⽤即插即⽤ API-------------------------------------------------显⽰属性 -> 设置 -> ⾼级页⾯上的适配器, 监视器和疑难解答选项卡需要以下⽂件:deskadp.dll ....⾼级显⽰适配器属性deskmon.dll .... ⾼级显⽰监视器属性deskperf.dll ... ⾼级显⽰性能属性-------------------------------------------------硬件设备管理器需要以下⽂件:devmgr.dll .....设备管理器 MMC 管理⼯具dmocx.dll ......树形视图 OCX-------------------------------------------------Windows 默认磁盘碎⽚整理⼯具需要以下⽂件:虽然我⽤ PerfectDisk 整理磁盘, 但是我发现需要保留 Windows 默认的磁盘碎⽚整理⼯具才能安装PerfectDisk.你的电脑在⽤过⼀段时间之后, 磁盘上的⽂件分布就会⽐较乱, 也就产⽣了不少磁盘碎⽚, 这会导致访问操作⽂件变慢. ⽤磁盘碎⽚整理⼯具将其整理⼀遍之后,就会好多了.DFRGNTFS.EXE ..(NTFS 磁盘碎⽚整理⼯具). ⽤于整理 NTFS 分区. dfrgres.dll .... 磁盘碎⽚整理⼯具资源模块dfrgsnap.dll ... 磁盘碎⽚整理管理⼯具模块dfrgui.dll ..... 磁盘碎⽚整理⽤户界⾯模块vssapi.dll ....Microsoft? 卷影复制请求⽅/写⼊⽅服务API DLL-------------------------------------------------DivX.dll .......DivX? 编解码器 for Windowsdivxdec.ax .....DivX? 解码滤镜我所安装的第三⽅编解码器, 以避免播放损坏的视频时画⾯定格DivXAF.ax ......DivX 反定格滤镜-------------------------------------------------添加或删除模块所需的⽂件:duser.dll ......Windows DirectUser 引擎-------------------------------------------------ELS.DLL ........事件查看器管理⼯具EVENTVWR.EXE ...(事件查看器). 事件查看器的可执⾏⽂件.-------------------------------------------------服务窗⼝所需的⽂件filemgmt.dll .....服务和共享⽂件夹mfc42u.dll .....MFCDLL 共享库-------------------------------------------------⽤于维护字体⽂件夹的特殊结构, 且⽤于显⽰字体图标:fontext.dll ....Windows 字体⽂件夹外壳扩展FONTVIEW.EXE ..(字体查看器). ⽤于在窗⼝中查看字体⽰例.-------------------------------------------------⽤于安全模式下, 避免图像看起来像是被撕裂了⼀样:framebuf.dll ...帧缓冲显⽰驱动-------------------------------------------------framedyn.dll ...WMI SDK 提供程序框架我把 wbem ⽂件夹中的 framedyn.dll 移动到 system32 中了, 然后⼜把wbem ⽂件夹以及其中的内容都删掉了.有时当你运⾏系统还原时会出现错误, 它会提⽰你, 没有framedyn.dll 的话, 将⽆法运⾏系统还原.没有 "framedyn.dll" 的话, 当你右击我的电脑时会出错. 将其保留到 system32⽂件夹中可避免出错.-------------------------------------------------glu32.dll ......(OpenGL ⼯具库 DLL). OpenGL 3D 图形渲染函数库.-------------------------------------------------GRPCONV.EXE .....(组转换). 将 Microsoft Windows 3.x 的程序管理器组转换为开始菜单项⽬.没有GRPCONV.EXE 的话, 我就⽆法安装Microsoft 的⽂件检查⼯具以检查正确的DVD 编解码器.-------------------------------------------------Acronis True Image 所需的⽂件hhctrl.ocx .....Microsoft? HTML 帮助控件-------------------------------------------------hid.dll .....(Hid ⽤户库⽂件).Realtek’s ⾳频配置⼯具需要此⽂件 (C:/WINDOWS 中的soundman.exe)-------------------------------------------------html.iec .......(Microsoft HTML 转换器) ⽤于将从⽹页上复制的⽂本粘贴到写字板中. (⽤于保留⽹页⽂本格式?)-------------------------------------------------我需要以下第三⽅解码器来回放某些格式的视频.I263_32.DRV ....Intel I.263 视频驱动 2.55.012系统默认 MP3 解码器:l3codecx.ax .....MPEG Layer-3 ⾳频解码器-------------------------------------------------以下⽂件属于 Internet Explorerimgutil.dll ....IE 图像解码插件DLLMSCTF.DLL ......MSCTF 服务器 DLLMSIMTF.DLL .....Active IMM 服务器 DLLpngfilt.dll ....IE PNG 图像解码插件-------------------------------------------------IMAPI.EXE .....(刻录服务).通过 IMAPI 管理光盘刻录, 可⽤ Nero 等代替.-------------------------------------------------Plus! MP3 Audio Converter LE所需⽤于将 .mp3 转为 .wma 的编解码器:IMC32.ACM ......Intel MSACM ⾳频编解码器l3codeca.acm ...(MPEG Layer-3 ⾳频编解码器). <- 系统默认的 MP3 解码器sl_anet.acm .... MS ACM ⾳频编解码器msg723.acm .....Microsoft G.723.1 CODEC for MSACMmsaud32.acm ....(⽂件版本: 8.0.0.4487). Windows Media Audio wmspdmoe.dll ...Windows Media Audio 9 语⾳编码器-------------------------------------------------inetcomm.dll ..(Microsoft Internet Messaging API). 当你点击 Outlook Express 的快捷⽅式时, Windows 将⽆法找到位于C:/Program Files/Outlook Express的 "msoe.dll".inetres.dll ....(Microsoft Internet Messaging API 资源⽂件). 当你点击Outlook Express 的快捷⽅式时, Windows 将⽆法找到位于C:/ProgramFiles/Outlook Express的"msoeres.dll".Outlook Express 所需的其它⽂件acctres.dll ....Microsoft Internet 帐户管理器资源⽂件mapistub.dll ...(Extended MAPI 1.0 for Windows NT).当你选择将 Outlook Express 设为默认的邮件处理程序时就会需要这个⽂件.mshtmler.dll ...(Microsoft (R) HTML 编辑组件的资源DLL). <-- ⽤于向邮件中插⼊图⽚:msident.dll ....Microsoft 标识管理器msidntld.dll ...Microsoft 标识管理器MSOEACCT.DLL ...Microsoft Internet 帐户管理器MSOERT2.DLL ....Microsoft Outlook Express RT Libsendmail.dll ...(发送邮件).-------------------------------------------------⽤于访问 Internet 选项inetcplc.dll ..Internet 控制⾯板-------------------------------------------------没有此⽂件将⽆法打开 *.chm 帮助⽂件. 你会看到类似以下错误: "⽆法打开⽂件: mkMSITStore".itss.dll ...Microsoft? InfoTech 存储系统库⽂件-------------------------------------------------kbdus.dll .....美国键盘布局-------------------------------------------------安装 Realtec AC’97 ⾳频驱动时会需要以下⽂件:ksproxy.ax ....WDM Streaming ActiveMovie Proxy-------------------------------------------------⽤于正常访问控制⾯板中的⽤户帐号:localsec.dll ..本地⽤户和组 MMC 管理⼯具C:/WINDOWS/system32:12520437.cpx ...代码页转换表.12520850.cpx ... 代码页转换表.6to4svc.dll ....在 IP4⽹络上提供IPv6 连接的服务aaaamon.dll ....Aaaa Monitor Dllacledit.dll ....访问控制列表编辑器ac3filter.cpl ..ac3filter 控制⾯板扩展属于我所安装⽤于看电影的 AC3Filter 编解码器.ahui.exe .......应⽤程序兼容⽤户界⾯ALSNDMGR.CPL ...Realtek AC97 ⾳频控制⾯板我⽤ RTLCPL.EXE (Realtek ⾳频控制⾯板) 作为代替.amcompat.tlb ...ansi.sys .......apcups.dll .....APC 智能提供程序APPEND.EXE .....(Append). 允许应⽤程序在当前⽂件夹中打开指定⽬录中的数据⽂件. 此⼯具源于 MS-DOS 5.0.asctrls.ocx ....Active Setup 控件AT.EXE .........(AT). ⽤于设置在指定时间和⽇期执⾏任务. 需要运⾏计划任务服务.atkctrs.dll ....Windows NT AppleTalk 性能计数器 dllATMADM.EXE .....(ATM). ATM 呼叫管理器.auditusr.exe ... 设置每⽤户审核策略atmfd.dll ......Windows NT OpenType/Type 1 字体驱动atmlib.dll .....Windows NT OpenType/Type 1 API 库.atmpvcno.dll ...Atm Epvc Install DLLATTRIB.EXE .....(⽂件属性). 显⽰或更改⽂件属性 (只读, 存档, 隐藏, 或系统).AUTOCONV.EXE ...(⾃动转换). ⽤于将 FAT 分区格式转为 NTFS. autodisc.dll ...Windows AutoDiscovery API , ⾃动收取邮件AUTOFMT.EXE ...(⾃动格式化). ⽤于转换⽂件系统的⼯具.AUTOLFN.EXE ....长⽂件名转换⼯具. ⽤于 DOS模式下. 能够⾃动将长⽂件名转换为8.3 格式.-------------------------------------------------------batt.dll .......电池类安装程序如果你使⽤笔记本的话, 那么设备管理器会需要这个⽂件来访问你的电池属性. -------------------------------------------------------bidispl.dll ....Bidispl DLLbios1.rom ......bios4.rom ......bitsprx2.dll ...后台智能传输服务代理bitsprx3.dll ... 后台智能传输服务 2.0 代理blastcln.exe ...Blaster/Nachi 移除⼯具BOOTOK.EXE .....(启动确认). 在⼀次成功地登录系统之后, “上次正确的配置” 会⽤它保存配置参数.BOOTVRFY.EXE ...(启动验证). “上次正确的配置” 会⽤它验证⼀个引导选择. browsewm.dll ...BrowseWM Playerbthci.dll ......蓝⽛类别安装程序bthprops.cpl ...蓝⽛控制⾯板⼩程序 (⽆线公司)bthserv.dll ....蓝⽛⽀持服务btpanui.dll ....蓝⽛ PAN ⽤户界⾯-------------------------------------------------------capesnpn.dll ...Microsoft 证书模板管理扩展ccfgnt.dll .....Internet 配置库certmgr.dll ....证书管理⼯具certmgr.msc .... <-- 证书管理控制台.cdosys.dll .....Microsoft CDO for Windows Librarycdfview.dll ....频道定义⽂件⽂件查看器cewmdm.dll .....Windows CE WMDM 服务提供程序CHARMAP.EXE ....(字符映射表). ⽤于显⽰某个字体所能显⽰的所有字符.-------------------------------------------------------以下⽂件没有⽤批处理⽂件删除. 需要⼿动删除它们:cdplayer.exe.manifestlogonui.exe.manifestncpa.cpl.manifestnwc.cpl.manifestsapi.cpl.manifestWindowsLogon.manifest-------------------------------------------------------ChCfg.exe ......?? (我拿它没办法.) .......⽤于更换系统代码页的⼯具cmos.ram .......CHKNTFS.EXE ....(NTFS 驱动器检查⼯具). ⽤于检查 NTFS 分区的完整性. ckcnv.exe ......Cookie 转换⼯具cnvfat.dll .....FAT ⽂件系统转换⼯具 DLLcomcat.dll .....Microsoft C 运⾏时库⽂件comctl32.ocx ...Windows 通⽤控件 ActiveX 控件 DLLCOMP.EXE .......(⽐较). ⽤于⽐较两个⽂件之间的差别.compatUI.dll patUI Modulecompobj.dll ....OLE 2.1 16/32 互⽤性-------------------------------------------------------compstui.dll ...通⽤属性表⽤户界⾯DLL没有这个⽂件的话, 你可能⽆法访问打印机属性或是打印机参数.-------------------------------------------------------CONFIG.TMP .....confmsp.dll ....Microsoft IP 会议媒体服务提供程序CONIME.EXE .....(输⼊法控制台). 这个输⼊法控制台⽤于转换字符.control.exe ....Windows 控制⾯板 (这个不是实际上的控制⾯板.) CONVERT.EXE ....(转换). ⽤于将分区格式从 FAT 转为 NTFS 以及从 NTFSv4 转为 NTFSv5.corpol.dll .....Microsoft COM 运⾏时执⾏引擎country.sys ....cryptdlg.dll ...Microsoft 通⽤证书对话框cryptext.dll ...加密外壳扩展cryptnet.dll ...加密⽹络相关 APICSCRIPT.EXE ....(基于命令⾏的脚本宿主). 能让你通过命令⾏运⾏ VBScript和 JScript 脚本.ctfmon.exe ....CTF 加载器 (在你安装⼿写识别, 语⾳识别, 输⼊法编辑器之后, 就会在任务栏上显⽰⼀个语⾔栏. 还有, 如果你添加了第⼆种语⾔或是键盘布局, 也会导致显⽰语⾔栏的.)ctl3d32.dll ....Ctl3D 3D Windows 控件ctl3dv2.dll ....Ctl3D 3D Windows NT(WOW) 控件Dcache.bin .....dbgeng.dll .....符号调试引擎DEBUG.EXE ......(调试程序). 命令⾏下的调试⼯具.DEFRAG.EXE .....(磁盘碎⽚整理). ⽤于整理磁盘碎⽚的命令⾏⼯具. desktop.ini ....DFRGFAT.EXE ....(FAT 碎⽚整理⼯具). ⽤于整理 FAT 分区上的磁盘碎⽚. dgnet.dll ......Dgnet Moduledgrpsetu.dll ...Digi RealPort? 驱动升级dgsetup.dll ....DGSETUP DLLdhcpmon.dll ....DHCP Monitor Dlldhcpsapi.dll ...DHCP Server API Stub DLLDIANTZ.EXE .....(Cab 打包程序). ⽤于将⽂件打包为 .cab ⽂件.digest.dll .....Digest SSPI 认证包DLLHOST.EXE ....(COM+ 服务器进程). COM+ 进程管理器.DLLHST3G.EXE ...(COM 代替品). ⼀个 COM+ 进程组件.dmconfig.dll ...逻辑磁盘管理器配置库DOSKEY.EXE .....(DOS 键盘). MS-DOS 5.0 键盘输⼊历史记录器,能提供宏. DOSX.EXE .......(DOS 扩展器). ⼀个 DOS 虚拟机 (VDM), 提供标准模式. DRWATSON.EXE ...(Dr. Watson).16位的程序错误监测和记录⼯具. DRWTSN32.EXE ...(Dr. Watson 32). 32位的程序错误监测和记录⼯具. dsauth.dll .....⽤于服务的DS 认证 .......edit.hlp .......EDLIN.EXE ......(编辑⾏). 基于 DOS 的编辑器.emptyregdb.dat ..encdec.dll .....XDSCodec & Encypter/Decrypter 标识滤镜EqnClass.Dll ...Equinox 多端⼝串⾏协同安装程序esent97.dll ....Microsoft(R) Windows NT(TM) 服务器数据库存储引擎esentprf.dll ... 服务器数据库存储性能库esentprf.hxx ...esentprf.ini ...esentutl.exe ... 服务器数据库存储⼯具EUDCEDIT.EXE ...(私有字符编辑器). ⼀个造字程序, 可让你创建⼤约6400 个私有字符.EXE2BIN.EXE ....(Exe to Bin). 基于 DOS, ⽤于将 .exe ⽂件转为.bin ⽂件. EXPAND.EXE .....(Expand). ⽤于展开 Cab 压缩包中的某些⽂件.expsrv.dll .....Visual Basic 运⾏时⽂件extmgr.dll .....扩展管理器EXTRAC32.EXE ...(CAB ⽂件提取⼯具). ⽤于解压缩 Cab 压缩包exts.dll .......调试器扩展FASTOPEN.EXE ...(快速打开). ⼀个 DOS ⼯具, ⽤于改善系统性能, 加速访问经常⽤到的⽂件.fc.exe .........⽂件⽐较⼯具fe客户端.dll ...Windows NT ⽂件加密客户端接⼝find.exe .......查找字符串 (Grep) 的⼯具findstr.exe .... 查找字符串 (QGrep) 的⼯具fldrclnr.dll ...桌⾯清理向导fltlib.dll .....筛选库fltMc.exe ......筛选管理器控制程序fontsub.dll ....字体设置DLLFORCEDOS.EXE ...(强制 DOS). 强制在 Windows XP 下将包含 OS/2 和 DOS 代码的程序运⾏在 DOS 模式下. .....Disk Format Utility格式化命令fsmgmt.msc .....Microsoft 通⽤控制台⽂档 (共享⽂件夹)fsquirt.exe ....(属于蓝⽛)fsusd.dll ......摄像头设备 DLLFSUTIL.EXE .....(FSUtil). ⼀个卷管理⼯具. 重分析点管理和稀疏⽂件控制FTP.EXE ........(FTP). 命令⾏模式下的 FTP ⼯具.ftsrch.dll .....Microsoft? ⽂本搜索g711codc.ax ....Intel G711 CODECgcdef.dll ......游戏控制器的默认表GDI.EXE ........(物理设备接⼝). ⼀个核⼼系统组件, 可以提供 Win16 图形设备接⼝API l库, 以实现向后兼容.glmf32.dll .....OpenGL Metafiling DLLgpkcsp.dll .....Gemplus 加密服务提供程序gpkrsrc.dll ....Gemplus 加密服务提供程序资源⽂件 ...代码页⼯具 ...h323.tsp .......h323msp.dll ....Microsoft H.323 媒体服务提供程序hccoin.dll B 协同安装程序HELP.EXE .......(帮助). 显⽰ Windows XP 命令的基本常规帮助信息. hidphone.tsp ...hlink.dll ......Microsoft 超链接库hnetmon.dll ....家庭⽹络监视 DLLhnetwiz.dll ....⽹络安装向导homepage.inf ...hotplug.dll ....⽤于安全移除硬件, ⽐如, U 盘HSFCISP2.dll ...HSF 协同安装程序httpapi.dll ....HTTP 协议堆栈 APIiccvid.dll .....(Cinepak? Codec) ⽤于显⽰ ’’Cinepak’’ 格式的媒体⽂件. (⾮常古⽼的 AVI 编解码格式.)IE4UINIT.EXE ...(IE 安装⼯具). IE 5.0 每⽤户安装⼯具.iedkcs32.dll ...Microsoft Internet Explorer 定制 DLLieencode.dll ...Microsoft 字符编码iernonce.dll ...带⽤户界⾯的扩展 RunOnce 处理库iesetup.dll ....IOD 版本映射ieuinit.inf ....IEXPRESS.EXE ...(⾃解压和⾃安装创建程序). ⽤于创建⾃解压包或是⾃安装程序包.ifmon.dll ......IF Monitor DLLigmpagnt.dll ...Microsoft IGMP subagentils.dll ........⽤户位置服务组件模块imeshare.dll ...Microsoft Office IME 共享属性库inetmib1.dll ...Microsoft MIB-II subagentinitpki.dll ....Microsoft 受信赖的安装和设置input.dll ......(⽂本输⼊ DLL). 语⾔和区域设置需要这个⽂件来显⽰相关对话框inseng.dll .....(安装引擎). Active Setup 安装引擎, 允许打开或执⾏ cab⽂件. ⽤于控制安装.instcat.sql ....⽤于安装编录intl.cpl .......区域和语⾔设置iologmsg.dll ...IO ⽇志 DLLipconf.tsp .....iprop.dll ......OLE 属性集ir32_32.dll ....ir41_32.ax .....Intel Indeo? Video 4.5ir41_qc.dll ....Intel Indeo? 视频快速压缩编码器 (⽂件版本: 4.30.62.2)ir41_qcx.dll ...Intel Indeo?视频快速压缩编码器 (⽂件版本: 4.30.62.2)ir50_32.dll ....Intel Indeo? video 5.10 (⽂件版本: 5.2562.15.55)ir50_qc.dll ....Intel Indeo? 5.10视频快速压缩编码器(⽂件版本: 5.0.63.48)ir50_qcx.dll ...Intel Indeo? 5.10 视频快速压缩编码器 (⽂件版本:5.0.63.48 )irclass.dll ....Infrared Class 协同安装程序isrdbg32.dll ...ISR 32 位调试引擎ivfsrc.ax ......Intel Indeo? 视频IVF 源滤镜 5.10itircl.dll .....Microsoft? InfoTech IR Local DLLitss.dll .......Microsoft? InfoTech 存储系统库⽂件iyuv_32.dll ....Intel Indeo(R) Video YUV Codec (⽂件版本:5.1.2600.2180)jet500.dll .....JET 引擎 DLLjgaw400.dll ....JG ⾳频接⼝ DLL (AOL ⽂件)jgdw400.dll ....JG ART DLL (AOL ⽂件)jgmd400.dll ....JG MIDI Player DLL (AOL ⽂件)jgpl400.dll ....JG ART Player DLL (AOL ⽂件)jgsd400.dll ....JG ART DLL (AOL ⽂件)jgsh400.dll ....JG 幻灯⽚播放器 DLL (AOL ⽂件)jobexec.dll ....Active Setup 任务执⾏程序joy.cpl ........游戏控制器控制⾯板⼩程序jsproxy.dll ....JScript 代理⾃动配置kd1394.dll .....核⼼调试程序IEEE 1394 HW Extension DLL .......key01.sys ......keyboard.sys ...keymgr.dll .....存储的⽤户名和密码kmddsp.tsp .....KRNL386.EXE ....(Kernel 386). 包含了⽤于 Win16 增强模式下的核⼼Kernel例程.l3codecp.acm ...MPEG Audio Layer-3 Codec for MSACM (系统默认的 MP3 解码器)LABEL.EXE ......(卷标). ⽤于显⽰, 编辑, 或更改驱动器的卷标.lanman.drv .....laprxy.dll .....Windows Media Logagent Proxylicmgr10.dll ...ActiveX 许可管理器LIGHTS.EXE .....(Lights). 在 Win 9x 下通过监视 COM 端⼝来提供对于调制解调器状态的设置.LNKSTUB.EXE ....(Win95-Winnt 迁移⼯具). ⽤于把 Windows 95 升级⾄Windows. ....localui.dll ....本地监视⽤户界⾯ DLLLOCATOR.EXE ....(Locator). 向 Windows XP 的环境添加对于 Remote Procedure Calls (RPCs) 的⽀持.loghours.dll ...计划对话框lpk.dll ........会话注销⼯具lusrmgr.msc ....lusrmgr.msc = 本地⽤户和⽤户组. ⽆法在 Home 版 XP上使⽤这个管理⼯具. ⽤于管理电脑上的⽤户帐号.MAKECAB.EXE ....(Cab ⽂件创建⼯具). ⽤于创建 .cab 压缩包⽂件.mapi32.dll .....Extended MAPI 1.0 for Windows NTmcastmib.dll ...Microsoft 多播⼦代理mcd32.dll ......OpenGL MCD 客户端 DLLmcdsrv32.dll ...MCD 服务器mchgrcoi.dll ...中级更改器协同安装程序mciavi32.dll ... Windows MCI 视频驱动mciole16.dll ...MCIOLE16 - OLE Handler DLL for MCI Objectsmciole32.dll ...MCI OLE DLLmciwave.dll ....MCI 波形⾳频驱动mdhcp.dll ......Microsoft MDHCP 客户端 COM 接⼝mdwmdmsp.dll ...⽤于 MDM 驱动的WMDM 服务提供程序驱动MEM.EXE ........(Memory). ⼀个⽤于显⽰当前内存状态的命令⾏⼯具.mf3216.dll .....32 位⾄ 16 位元⽂件的转换 DLLmfc40.dll ......MFCDLL 共享库 - 零售版mfc40u.dll .....MFCDLL 共享库 - 零售版mfcsubs.dll ....MSCTFIME.IME ...mgmtapi.dll ....Microsoft SNMP 管理器 API (使⽤ WinSNMP)mib.bin ........MIGPWD.EXE .....(迁移 dll). ⽤于 Windows 95 ⾄ Windows NT 的迁移⼯具. miglibnt.dll ...NT 迁移⽀持 dllmlang.dat ......mll_hp.dll .....HP 媒体卷标库mll_mtf.dll ....MTF (Microsoft 磁带格式) 媒体卷标库mll_qic.dll ....QIC113媒体卷标库mmdrv.dll ......多媒体核⼼⽀持驱动mobsync.dll ....Microsoft 同步管理器MOBSYNC.EXE ....(脱机⼯作同步程序). 同步脱机⽹站. .......DOS 命令modex.dll ......ModeX 显⽰驱动 .......Dos 命令moricons.dll ...Windows NT 安装图标资源库MOUNTVOL.EXE ...(卷加载器). 创建, 列出以及修改你的存储卷加载点. mpg4ds32.ax ....(⽂件版本: 8.0.0.4487). Microsoft MPEG-4 视频解码器mplay32.exe ....Windows Media Player 5.1 (⾮常古⽼的媒体播放器.) MRINFO.EXE .....(多播信息). ⽤于查询多播路由器接⼝的命令⾏⼯具. msacm.dll ......Microsoft ⾳频压缩管理器msaatext.dll ... Active Accessibility ⽂本⽀持msadds32.ax ....(⽂件版本: 8.0.0.4487). Windows Media ⾳频解码器msafd.dll ......Microsoft Windows Sockets 2.0 服务提供程序msapsspc.dll ...32 位平台下的 DPA 客户端msaudite.dll ...安全审核事件 DLLmscat32.dll ....MSCAT32 Forwarder DLLMSCTFP.dll .....MSCTFP Server DLLmsdadiag.dll ...Microsoft Data Access - 内建诊断msdart.dll .....Microsoft Data Access - OLE DB 例⾏运⾏时msdatsrc.tlb ...msdtcprf.ini ...msencode.dll ...Microsoft 字符编码器msieftp.dll ....Microsoft Internet Explorer FTP ⽂件夹外壳扩展msimsg.dll .....Windows? Installer 国际消息mslbui.dll .....msnsspc.dll ....MSN Internet Accessmsobjs.dll .....系统对象审核名称MsPMSNSv.dll ...Microsoft 媒体设备服务提供程序msr2c.dll ......Microsoft Forms DLLmsr2cenu.dll ...Microsoft Forms DLLmsratelc.dll ...Internet 分级和本地⽤户管理DLLmsrating.dll ...Internet 分级和本地⽤户管理DLLmsrclr40.dll ...Microsoft Jet公⽂包调解程序msrd2x40.dll ...Microsoft (R) Red ISAMmsrd3x40.dll ...Microsoft (R) Red ISAMmsrecr40.dll ...Microsoft Jet公⽂包调解程序资源库msrepl40.dll ...Microsoft 复制库msrle32.dll ....Microsoft RLE 压缩器msscds32.ax ....(⽂件版本: 8.0.0.4487). Microsoft 屏幕视频解压器msscript.ocx ...Microsoft (r) 脚本控件mssign32.dll ...Microsoft 受信赖签证 APIsmssip32.dll ....MSSIP32 Forwarder DLLmstime.dll .....Microsoft (R) ⽤于 HTML 的定时交互多媒体扩展msswch.dll .....(屏幕键盘). ⽤于 msswchx.exe.msswchx.exe ....msswchx (属于屏幕键盘.)msutb.dll ......MSUTB 服务器 DLL-------------------------------------------------------。
【Windows内核情景分析开源代码ReactOS】
![【Windows内核情景分析开源代码ReactOS】](https://img.taocdn.com/s3/m/de5a880911a6f524ccbff121dd36a32d7375c793.png)
【Windows内核情景分析开源代码ReactOS】Win95以前系统基于Dos,只是在外⾯加了⼀层图形界⾯,不是基于事件响应的,线程也只是分时轮询。
WinNT(new Technology)有了质的改变,才成为现代OS。
现代OS有Linux和WinNT,⼀⼤特征是内核运⾏区和⽤户运⾏区,⽤户运⾏区之间彼此独⽴——线性内存运⾏空间和CPU运⾏状态⽀持独⽴。
满⾜这⼀条才可以真正称为多任务OS,在这基础上才有现代OS特有的进程、IO访问等等功能。
PS:这⼀特征要求CPU硬件也⽀持状态保护,有状态寄存器存储CPU环境,硬件设定⽤户进程永远⽆法直接访问⾼位地址(内核区)。
对应于现代OS,⽀持这点的386系列CPU也是质变的⼀代。
OS结构Windows内核⽐Linux要⼤,是因为它把图形界⾯和视窗机制等功能也包含在内核中了,它把类似于Linux1.0的内核称为“核⼼层”,外围包了⼏层,直到提供给⽤户进程的接⼝层。
⼴义上说,Windows的System32 DLL都算操作系统的⼀部分,这部分供⽤户使⽤,总是运⾏在⽤户区。
这是Windows OS提供给⽤户的真正OS接⼝——Win32API。
当然,它也提供了Linux标准的C Runtime Class软件接⼝界⾯。
但在此之下的实现都对⽤户透明。
OS管理层,是各个管理⼦系统,纵向的,具体的操作可能直接到HAL层和硬件打交道。
核⼼层,⽐较接近于硬件层,类似于Linux1.0的功能,初始化加载核⼼,设备驱动底层中断,异常处理等功能。
核⼼层常驻内存,参与CPU时间⽚轮询,但不允许其它线程抢占,只有执⾏完⼀个CPU时间正常退出。
(早期OS不⽀持多任务,⼀个程序执⾏就会从头执⾏到尾,需要程序员分配PeekMessage;NT系列OS⽀持多⽤户空间,CPU抢占⽅式控制⽤户任务轮流执⾏。
)系统调⽤进程 ——> 调⽤OS API;OS进程管理 ——> 调配进程。
仅从⽤户进程⾓度,OS就像是⼀个被动响应的运⾏时库。
windows内核体系结构与系统机制
![windows内核体系结构与系统机制](https://img.taocdn.com/s3/m/5429dcdcad51f01dc281f150.png)
windows内核体系结构与系统机制每天我们都在使用Windows系统学习、编程、听音乐、玩游戏,Windows的操作想来是很熟练了,可是你又对Windows到底了解多少呢?本系列的目的,就是让你对Windows系统有个更直观、更清楚、更彻底的认识。
虽然我们大多数人看不到Windows的源码,对其内存调度算法这种最深层次的技术内幕不能明窥,但是我们可以做到比现在知道的更多,了解这些之后你会发现在Windows上面开发会轻车熟路,任何木马病毒到了你机器上不过只会成为你的试验品。
鉴于Windows 9X内核早已淘汰,技术过时,在此不予讨论。
主要是针对Windows2000(Windows 5.0)以后版本,尤以2000为主。
要知道xp是Windows 5.1版本,2003也才是5.2版本。
那么,对于本系列提到Windows OS技术,统指Windows 5.X 技术。
分析一个软件,最容易的入手方法就是先搞清楚它的每个文件都是干嘛的。
我们先来让大家对自己正在使用的Windows 操作系统有个直观认识。
请在你使用的Windows 2000或Windows XP上,于WINNT/system32或Windows/system32目录(系统目录)下,找到以下几个文件:HAL.DLL、NTOSKRNL.EXE、NTDLL.DLL、KERNEL32.dll、GDI32.DLL、USER32.DLL。
这几个是Windows系统赖以执行的关键,只要你能在图形界面下操作Windows,这几个文件就肯定在发挥作用。
值得一提的是Windows的图形界面子系统是在内核实现的(知道为什么Linux的图形界面怎么着都没Windows好看好用了吧)。
对这几个文件的功用给出简介如下:HAL.DLL:Hardware Abstraction Layer,硬件抽象层。
Windows 2000也是一个软件系统,与我们平时从事的项目开发工作一样,项目初期需要确定开发目标。
全网最详细的IntelCPU体系结构分析(内核源码)
![全网最详细的IntelCPU体系结构分析(内核源码)](https://img.taocdn.com/s3/m/b76b28fda0c7aa00b52acfc789eb172ded639916.png)
全网最详细的IntelCPU体系结构分析(内核源码)前段meldown漏洞事件的影响,那段时间也正好在读Paul的论文关于内存屏障的知识,其中有诸多细节想不通,便陷入无尽的煎熬和冥想中,看了《计算机系统结构》、《深入理解计算机系统》、《大话处理器》等经典书籍,也在google上搜了一大堆资料,前前后后、断断续续地折腾了一个多月,终于想通了,现在把自己的思想心得记录下来,希望对有这方面困惑的朋友有些帮助。
本文主要关注以下几个问题。
•什么是CPU的流水线?为什么需要流水线?•为什么需要内存屏障?在只有单个Core的CPU中是否还需要内存屏障?•什么是乱序执行?分为几种?•MOB和ROB是干什么的?•load buffer和store buffer的功能是什么?•x86和arm、power中的memory model有什么区别?•MESI主要是做什么的?•meldown漏洞的原理是什么?一、CPU指令的执行过程几乎所有的冯·诺伊曼型计算机的CPU,其工作都可以分为 5 个阶段:取指令、指令译码、执行指令、访存取数、结果写回。
1.取指令阶段取指令(Instruction Fetch,IF)阶段是将一条指令从主存中取到指令寄存器的过程。
程序计数器PC 中的数值,用来指示当前指令在主存中的位置。
当一条指令被取出后,PC 中的数值将根据指令字长度而自动递增:若为单字长指令,则(PC)+1->PC;若为双字长指令,则(PC)+2->PC,依此类推。
2.指令译码阶段取出指令后,计算机立即进入指令译码(Instruction Decode,ID)阶段。
在指令译码阶段,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取操作数的方法。
在组合逻辑控制的计算机中,指令译码器对不同的指令操作码产生不同的控制电位,以形成不同的微操作序列;在微程序控制的计算机中,指令译码器用指令操作码来找到执行该指令的微程序的入口,并从此入口开始执行。
windows源码编译
![windows源码编译](https://img.taocdn.com/s3/m/cd13986059fb770bf78a6529647d27284b7337f0.png)
windows源码编译
摘要:
1.引言
2.Windows 源码编译的准备工作
3.Windows 源码编译的步骤
4.编译过程中可能遇到的问题及解决方案
5.总结
正文:
Windows 源码编译是操作系统开发者和研究人员必须掌握的技能。
本文将详细介绍Windows 源码编译的准备工作、编译步骤以及可能遇到的问题及解决方案。
首先,进行Windows 源码编译的准备工作。
你需要获取Windows 源代码,可以通过官方途径或者第三方资源获取。
同时,确保你的开发环境满足编译需求,安装好所需的开发工具,例如Visual Studio 和Windows SDK。
接下来,我们将介绍Windows 源码编译的步骤。
首先,使用Visual Studio 打开Windows 源码,选择合适的解决方案进行编译。
在编译过程中,你需要配置好编译选项,例如选择目标平台、编译类型等。
编译完成后,将生成的文件复制到Windows SDK 的相应目录中。
在编译过程中,可能会遇到一些问题。
例如,编译器报错、链接器报错等。
针对这些问题,你可以尝试修改编译选项,更新开发工具,或者寻求社区和官方技术支持的帮助。
总之,掌握Windows 源码编译技能对于操作系统开发者和研究人员至关重要。
通过本文的介绍,相信你已经对Windows 源码编译有了更深入的了解。
windows XP系统内核文件分析
![windows XP系统内核文件分析](https://img.taocdn.com/s3/m/e6cc27215901020207409c17.png)
Windows Update 需要以下文件
CDM.DLL ........Windows Update CDM Stub
DCIMAN32.DLL ...DCI 管理器
dssenh.dll .....Microsoft Enhanced DSS 和 Diffie-Hellman 加密提供程序
wmpshell.dll ..Windows Media Player 启动程序
wmpui.dll .....Windows Media Player
wmsdmod.dll ...Windows Media 屏幕解码器
WMVCORE.DLL ....Windows Media 回放/认证 DLL
-------------------------------------------------
我需要 cards.dll 来玩纸牌游戏
cards.dll ......纸牌游戏相关 DLL
-------------------------------------------------
以下保留的文件属于 DirectX:
ddraw.dll ......Microsoft DirectDraw
dsound.dll .....(DirectSound). <-- WMP 10 需要此文件.
ksuser.dll .....用户 CSA 库
-------------------------------------------------------
以下保留的文件属于DirectShow that:
devenum.dll ....设备枚举.
msdmo.dll ......DMO 运行时
Windows内核源码详尽分析-中断处理篇
![Windows内核源码详尽分析-中断处理篇](https://img.taocdn.com/s3/m/8c42c445312b3169a451a4aa.png)
中断处理每个cpu有一张中断表,简称IDT。
IDT的整体布局:【异常->空白->5系->硬】(推荐采用7字口诀的方式重点记忆)异常:前20个表项存放着各个异常的描述符(IDT表不仅可以放中断描述符,还放置了所有异常的异常处理描述符,0x00-0x13)保留:0x14-0x1F,忽略这块号段空白:接下来存放一组空闲的保留项(0x20-0x29),供系统和程序员自己分配注册使用5系:然后是系统自己注册的5个预定义的软中断向量(软中断指手动的INT指令)(0x2A-0x2E 5个系统预注册的中断向量,0x2A:KiGetTickCount, 0x2B:KiCallbaclReturn0x2C:KiRaiseAssertion, 0x2D:KiDebugService, 0x2E:KiSystemService)硬:最后的表项供驱动程序注册硬件中断使用和自定义注册其他软中断使用(0x30-0xFF)下面是中断号的具体的分配情况:0x00-0x13固定分配给异常:0x14-0x1f:Intel保留给他公司将来自己使用(OS和用户都不要试图去使用这个号段,不安全)----------------------以下的号段可用于自由分配给OS、硬件、用户使用----------------------- linux等其他系统是怎么划分这块号段的,不管,我们只看Windows的情况0x20-0x29:Windows没占用,因此这块号段我们也可以自由使用0x2A-0x2E:Windows自己本身使用的5个中断号0x30-0xFF:Windows决定把这块剩余的号段让给硬件和用户使用参见《寒江独钓》一书P93页注册键盘中断时,搜索空闲未用表项是从0x20开始,到0x29结束的,就知道为什么寒江独钓是在这段范围内搜索空白表项了(其实我们也完全可以从0x14开始搜索)Windows系统中,0x30-0xFF这块号段让给了硬件和用户自己使用。
Windows源码分析整理
![Windows源码分析整理](https://img.taocdn.com/s3/m/09f94bc489eb172ded63b7d2.png)
(5)系统登陆过程 [18] 系统首先启动 Winlogon.exe。 [19] 启动 Local Security Authority(Lsass.exe) [20] 屏幕显示出登陆对话框。 [21] 系统执行 Service Controller(Screg.exe)再次扫描注册表 HKEY_LOCAL_MACHINE\
// ……
// 调用内核执行体的初始化例程 try {
ExpInitializeExecutive(Number, LoaderBlock); } except (EXCEPTION_EXECUTE_HANDLER) {
KeBugCheck (PHASE0_EXCEPTION); }
// ……
// 如果是启动 CPU(0 号),动态分配内核堆栈空间和 K 的 IOPM 存储区域 if (Number == 0) {
} KiReleaseQueuedSpinLock(KiQueuedSpinLockContext(LockQueueDisp atcherLock));
二、源码分析 2.1 内核初始化 KiInitializeKernel
这个函数在系统由 bootstrapped 启动后且系统未被初始化之前取得控制权。当新的处理器加 入时,调用这个例程可以初始化处理器相关的数据结构。主要功能是: (1)初始化内核数据结构 (2)初始化处理控制块(Processor Control Block) (3)调用内核执行体初始化例程 (4)最后返回系统启动例程(KiSystemStartup)
下面就是 KiInitializeKernel 的执行流程: 代码:
VOID KiInitializeKernel (
IN PKPROCESS Process,
《Windows核心编程》Word文档
![《Windows核心编程》Word文档](https://img.taocdn.com/s3/m/eaf6aa1ef011f18583d049649b6648d7c1c70828.png)
《Windows核心编程》Word文档这篇笔记是我在读《Windows核心编程》第5版时做的记录和总结(部分章节是第4版的书),没有摘抄原句,包含了很多我个人的思考和对实现的推断,因此不少条款和Windows实际机制可能有出入,但应该是合理的。
开头几章由于我追求简洁,往往是很多单独的字句,后面的内容更为连贯。
海量细节。
第1章错误处理1.GetLastError返回的是最后的错误码,即更早的错误码可能被覆盖。
2.GetLastError可能用于描述成功的原因(CreatEvent)。
3.VS监视窗口err,hr。
4.FormatMessage。
5.SetLastError。
第2章字符和字符串处理1.ANSI版本的API全部是包装Unicode版本来的,在传参和返回是多了一次编码转换。
2.MS的C库的ANSI和Unicode版本之间也是没有互相调用关系的,没有编码转换开销。
3.宽字符函数:_tcscpy,_tcscat,_tcslen。
4.UNICODE宏是Windows API使用的,而MS的C库中,对于非标准的东西用_前缀区分,所以_UNICODE宏是MS的C API使用的。
5.MS提供的避免缓冲区溢出攻击的函数在文件中,包括StringCbCat和StringCchCat等函数(其中Cb表示Count of Byte,Cch表示Count of Character,都用于表示衡量目标缓冲大小的单位);另外中有_tcscpy_s等_s后缀的函数。
在源串过短时,的函数截断,的函数断言。
6.要想接管CRT的错误处理(比如assert),使用_set_invalid_parameter_handler设置自己的处理函数,然后使用_CrtSetReportMode(_CRT_ASSERT, 0);来禁止CRT弹出对话框。
7.Windows也提供了字符串处理函数,但lstrcat、lstrcpy(针对T字符的)已经过时了,因为没考虑缓冲区溢出攻击。
windows核心编程+源代码
![windows核心编程+源代码](https://img.taocdn.com/s3/m/a41d32d97d1cfad6195f312b3169a4517623e574.png)
windows核心编程+源代码
《Windows核心编程+源代码》是一本涵盖Windows操作系统核心编程技术的书籍,其中不仅包括了Windows内核的基础知识,还包括了Windows应用程序开发的相关技术。
本书涵盖的主题包括:Windows内核、进程和线程管理、内存管理、I/O管理、驱动程序开发、网络编程、安全和加密等多个方面。
此外,书中还提供了大量实例和源代码,使读者能够更加深入地理解和掌握Windows核心编程技术。
无论是从事Windows系统开发的专业人士,还是对Windows系统内部机制有浓厚兴趣的读者,都会从本书中受益匪浅。
- 1 -。
Windows内核遍历驱动模块源码分析
![Windows内核遍历驱动模块源码分析](https://img.taocdn.com/s3/m/3770c739ef06eff9aef8941ea76e58fafab04595.png)
Windows内核遍历驱动模块源码分析要获取windows 内核中所有驱动模块信息,调⽤系统服务函数 NtQuerySystemInformation,参数SystemInformationClass 传⼊SystemModuleInformation.NtQuerySystemInformation申明如下:[cpp]1. //2. // System Information Classes.3. //4. typedef enum _SYSTEM_INFORMATION_CLASS {5. SystemBasicInformation,6. SystemProcessorInformation, // obsolete...delete7. SystemPerformanceInformation,8. SystemTimeOfDayInformation,9. SystemPathInformation,10. SystemProcessInformation, //系统进程信息11. SystemCallCountInformation,12. SystemDeviceInformation,13. SystemProcessorPerformanceInformation,14. SystemFlagsInformation,15. SystemCallTimeInformation,16. SystemModuleInformation, //系统模块17. SystemLocksInformation,18. SystemStackTraceInformation,19. SystemPagedPoolInformation,20. SystemNonPagedPoolInformation,21. SystemHandleInformation,22. SystemObjectInformation,23. SystemPageFileInformation,24. SystemVdmInstemulInformation,25. SystemVdmBopInformation,26. SystemFileCacheInformation,27. SystemPoolTagInformation,28. SystemInterruptInformation,29. SystemDpcBehaviorInformation,30. SystemFullMemoryInformation,31. SystemLoadGdiDriverInformation,32. SystemUnloadGdiDriverInformation,33. SystemTimeAdjustmentInformation,34. SystemSummaryMemoryInformation,35. SystemMirrorMemoryInformation,36. SystemPerformanceTraceInformation,37. SystemObsolete0,38. SystemExceptionInformation,39. SystemCrashDumpStateInformation,40. SystemKernelDebuggerInformation,41. SystemContextSwitchInformation,42. SystemRegistryQuotaInformation,43. SystemExtendServiceTableInformation,44. SystemPrioritySeperation,45. SystemVerifierAddDriverInformation,46. SystemVerifierRemoveDriverInformation,47. SystemProcessorIdleInformation,48. SystemLegacyDriverInformation,49. SystemCurrentTimeZoneInformation,50. SystemLookasideInformation,51. SystemTimeSlipNotification,52. SystemSessionCreate,53. SystemSessionDetach,54. SystemSessionInformation,55. SystemRangeStartInformation,56. SystemVerifierInformation,57. SystemVerifierThunkExtend,58. SystemSessionProcessInformation,59. SystemLoadGdiDriverInSystemSpace,60. SystemNumaProcessorMap,61. SystemPrefetcherInformation,62. SystemExtendedProcessInformation,63. SystemRecommendedSharedDataAlignment,64. SystemComPlusPackage,65. SystemNumaAvailableMemory,66. SystemProcessorPowerInformation,67. SystemEmulationBasicInformation,68. SystemEmulationProcessorInformation,69. SystemExtendedHandleInformation,70. SystemLostDelayedWriteInformation,71. SystemBigPoolInformation,72. SystemSessionPoolTagInformation,73. SystemSessionMappedViewInformation,74. SystemHotpatchInformation,75. SystemObjectSecurityMode,76. SystemWatchdogTimerHandler,77. SystemWatchdogTimerInformation,78. SystemLogicalProcessorInformation,79. SystemWow64SharedInformation,80. SystemRegisterFirmwareTableInformationHandler,81. SystemFirmwareTableInformation,82. SystemModuleInformationEx,83. SystemVerifierTriageInformation,84. SystemSuperfetchInformation,85. SystemMemoryListInformation,86. SystemFileCacheInformationEx,87. MaxSystemInfoClass // MaxSystemInfoClass should always be the last enum88. } SYSTEM_INFORMATION_CLASS;//// System Information Classes.//typedef enum _SYSTEM_INFORMATION_CLASS {SystemBasicInformation,SystemProcessorInformation, // obsolete...deleteSystemPerformanceInformation,SystemTimeOfDayInformation,SystemPathInformation,SystemProcessInformation, //系统进程信息SystemCallCountInformation,SystemDeviceInformation,SystemProcessorPerformanceInformation,SystemFlagsInformation,SystemCallTimeInformation,SystemModuleInformation, //系统模块SystemLocksInformation,SystemStackTraceInformation,SystemPagedPoolInformation,SystemNonPagedPoolInformation,SystemHandleInformation,SystemObjectInformation,SystemPageFileInformation,SystemVdmInstemulInformation,SystemVdmBopInformation,SystemFileCacheInformation,SystemPoolTagInformation,SystemInterruptInformation,SystemDpcBehaviorInformation,SystemFullMemoryInformation,SystemLoadGdiDriverInformation,SystemUnloadGdiDriverInformation,SystemTimeAdjustmentInformation,SystemSummaryMemoryInformation,SystemMirrorMemoryInformation,SystemPerformanceTraceInformation,SystemObsolete0,SystemExceptionInformation,SystemCrashDumpStateInformation,SystemKernelDebuggerInformation,SystemContextSwitchInformation,SystemRegistryQuotaInformation,SystemExtendServiceTableInformation,SystemPrioritySeperation,SystemVerifierAddDriverInformation,SystemVerifierRemoveDriverInformation,SystemProcessorIdleInformation,SystemLegacyDriverInformation,SystemCurrentTimeZoneInformation,SystemLookasideInformation,SystemTimeSlipNotification,SystemSessionCreate,SystemSessionDetach,SystemSessionInformation,SystemRangeStartInformation,SystemVerifierInformation,SystemVerifierThunkExtend,SystemSessionProcessInformation,SystemLoadGdiDriverInSystemSpace,SystemNumaProcessorMap,SystemPrefetcherInformation,SystemExtendedProcessInformation,SystemRecommendedSharedDataAlignment,SystemComPlusPackage,SystemNumaAvailableMemory,SystemProcessorPowerInformation,SystemEmulationBasicInformation,SystemEmulationProcessorInformation,SystemExtendedHandleInformation,SystemLostDelayedWriteInformation,SystemBigPoolInformation,SystemSessionPoolTagInformation,SystemSessionMappedViewInformation,SystemHotpatchInformation,SystemObjectSecurityMode,SystemWatchdogTimerHandler,SystemWatchdogTimerInformation,SystemLogicalProcessorInformation,SystemWow64SharedInformation,SystemRegisterFirmwareTableInformationHandler,SystemFirmwareTableInformation,SystemModuleInformationEx,SystemVerifierTriageInformation,SystemSuperfetchInformation,SystemMemoryListInformation,SystemFileCacheInformationEx,MaxSystemInfoClass // MaxSystemInfoClass should always be the last enum} SYSTEM_INFORMATION_CLASS;[cpp]1. NTSTATUS2. NtQuerySystemInformation (3. IN SYSTEM_INFORMATION_CLASS SystemInformationClass,4. OUT PVOID SystemInformation,5. IN ULONG SystemInformationLength,6. OUT PULONG ReturnLength OPTIONAL7. )NTSTATUSNtQuerySystemInformation (IN SYSTEM_INFORMATION_CLASS SystemInformationClass,OUT PVOID SystemInformation,IN ULONG SystemInformationLength,OUT PULONG ReturnLength OPTIONAL)根据泄漏出的widows 2000 部分源代码,NtQuerySystemInformation 有关 SystemModuleInformation的实现部分如下:[cpp]1. case SystemModuleInformation:2. KeEnterCriticalRegion();3. ExAcquireResourceExclusive( &PsLoadedModuleResource, TRUE );4. ReleaseModuleResoure = TRUE;5. Status = ExpQueryModuleInformation( &PsLoadedModuleList,6. &MmLoadedUserImageList,7. (PRTL_PROCESS_MODULES)SystemInformation,8. SystemInformationLength,9. ReturnLength10. );11. ExReleaseResource (&PsLoadedModuleResource);12. ReleaseModuleResoure = FALSE;13. KeLeaveCriticalRegion();14. break;case SystemModuleInformation:KeEnterCriticalRegion();ExAcquireResourceExclusive( &PsLoadedModuleResource, TRUE );ReleaseModuleResoure = TRUE;Status = ExpQueryModuleInformation( &PsLoadedModuleList,&MmLoadedUserImageList,(PRTL_PROCESS_MODULES)SystemInformation,SystemInformationLength,ReturnLength);ExReleaseResource (&PsLoadedModuleResource);ReleaseModuleResoure = FALSE;KeLeaveCriticalRegion();break;在Windows内核实现中,存在两个存储系统加载模块的两个链表,分别是PsLoadedModuleList和 MmLoadedUserImageList,两个全局变量申明如下:[cpp]1. LIST_ENTRY PsLoadedModuleList;//驱动模块列表2. LIST_ENTRY MmLoadedUserImageList;//应⽤程序映像列表LIST_ENTRY PsLoadedModuleList;//驱动模块列表LIST_ENTRY MmLoadedUserImageList;//应⽤程序映像列表Windows就是通过这两个链表将代表系统模块的_LDR_DATA_ENTRY结构链接在⼀起。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DPCDPC不同APC,DPC的全名是‘延迟过程调用’。
DPC最初作用是设计为中断服务程序的一部分。
因为每次触发中断,都会关中断,然后执行中断服务例程。
由于关中断了,所以中断服务例程必须短小精悍,不能消耗过多时间,否则会导致系统丢失大量其他中断。
但是有的中断,其中断服务例程要做的事情本来就很多,那怎么办?于是,可以在中断服务例程中先执行最紧迫的那部分工作,然后把剩余的相对来说不那么重要的工作移入到DPC函数中去执行。
因此,DPC又叫ISR的后半部。
(比如每次时钟中断后,其isr会扫描系统中的所有定时器是否到点,若到点就调用各定时器的函数。
但是这个扫描过程比较耗时,因此,时钟中断的isr会将扫描工作纳入dpc中进行)每当触发一个中断时,中断服务例程可以在当前cpu中插入一个DPC,当执行完isr,退出isr后, cpu 就会扫描它的dpc队列,依次执行里面的每个dpc,当执行完dpc后,才又回到当前线程的中断处继续执行。
typedef struct _KDPC {UCHAR Type; //DPC类型(分为普通DPC和线程化DPC)UCHAR Importance;//该DPC的重要性,将决定挂在队列头还是尾volatile USHORT Number;//第5位为0就表示当前cpu,否则,最低4位表示目标cpu号LIST_ENTRY DpcListEntry;//用来挂入dpc链表PKDEFERRED_ROUTINE DeferredRoutine;//dpc函数PVOID DeferredContext;//dpc函数的参数PVOID SystemArgument1;//挂入时的系统附加参数1PVOID SystemArgument2;//挂入时的系统附加参数2volatile PVOID DpcData;//所在的dpc队列} KDPC, *PKDPC, *RESTRICTED_POINTER PRKDPC;VOIDKeInitializeDpc(IN PKDPC Dpc,//DPC对象(DPC也是一种内核对象)IN PKDEFERRED_ROUTINE DeferredRoutine, //DPC函数IN PVOID DeferredContext)//DPC函数的参数{KiInitializeDpc(Dpc, DeferredRoutine, DeferredContext, DpcObject);}VOIDKiInitializeDpc(IN PKDPC Dpc,IN PKDEFERRED_ROUTINE DeferredRoutine,IN PVOID DeferredContext,IN KOBJECTS Type){Dpc->Type = Type;Dpc->Number = 0;//初始的目标cpu为当前cpuDpc->Importance= MediumImportance;Dpc->DeferredRoutine = DeferredRoutine;Dpc->DeferredContext = DeferredContext;Dpc->DpcData = NULL;//表示该DPC尚未挂入任何DPC队列}DPC初始化构造时的目标cpu默认都是当前cpu。
BOOLEAN KeInsertQueueDpc(IN PKDPC Dpc,IN PVOID SystemArgument1,IN PVOID SystemArgument2) {KIRQL OldIrql;PKPRCB Prcb, CurrentPrcb;ULONG Cpu;PKDPC_DATA DpcData;BOOLEAN DpcConfigured = FALSE, DpcInserted = FALSE;KeRaiseIrql(HIGH_LEVEL, &OldIrql);//插入过程的中断级是最高的,这个过程不会被打断。
CurrentPrcb = KeGetCurrentPrcb();//检查目标cpu号的第5位为1(32 = 00100000),就表示其它cpu,低4位表示cpu号if (Dpc->Number >= 32){Cpu = Dpc->Number - 32;Prcb = KiProcessorBlock[Cpu];}Else //否则,表示当前cpu{Cpu = Prcb->Number;Prcb = CurrentPrcb;//目标cpu就是当前cpu}//if 要插入的是一个线程化dpc并且那个cpu启用了线程化dpc机制if ((Dpc->Type == ThreadedDpcObject) && (Prcb->ThreadDpcEnable))DpcData = &Prcb->DpcData[DPC_THREADED]; //目标cpu的线程化dpc队列elseDpcData = &Prcb->DpcData[DPC_NORMAL];//目标cpu的普通dpc队列KiAcquireSpinLock(&DpcData->DpcLock);//if 尚未挂入任何dpc队列if (!InterlockedCompareExchangePointer(&Dpc->DpcData, DpcData, NULL)){Dpc->SystemArgument1 = SystemArgument1;Dpc->SystemArgument2 = SystemArgument2;DpcData->DpcQueueDepth++;DpcData->DpcCount++;DpcConfigured = TRUE;//不管如何,先把dpc挂到目标cpu的dpc队列中if (Dpc->Importance == HighImportance)InsertHeadList(&DpcData->DpcListHead, &Dpc->DpcListEntry);elseInsertTailList(&DpcData->DpcListHead, &Dpc->DpcListEntry);if (&Prcb->DpcData[DPC_THREADED] == DpcData){if (!(Prcb->DpcThreadActive) && !(Prcb->DpcThreadRequested))线程化DPC,ReactOS目前尚不支持,略}Else //若挂入的是一个普通dpc(最常见),检查是否需要立即发出一个dpc软中断给cpu {//if 目标cpu当前没在执行dpc,并且它尚未收到dpc中断请求if (!(Prcb->DpcRoutineActive) && !(Prcb->DpcInterruptRequested)){if (Prcb != CurrentPrcb)//if 目标cpu是其它cpu{if (((Dpc->Importance == HighImportance) ||(DpcData->DpcQueueDepth >= Prcb->MaximumDpcQueueDepth))&&(!(AFFINITY_MASK(Cpu) & KiIdleSummary) || (Prcb->Sleeping))) {Prcb->DpcInterruptRequested = TRUE;DpcInserted = TRUE; //表示需要立即给cpu发出dpc软中断}}Else //if 目标cpu就是自身cpu,最常见{//一般插入的都是中等重要性的dpc,因此,一般会立即发出一个dpc中断。
if ((Dpc->Importance != LowImportance) ||(DpcData->DpcQueueDepth >= Prcb->MaximumDpcQueueDepth) ||(Prcb->DpcRequestRate < Prcb->MinimumDpcRate)){Prcb->DpcInterruptRequested = TRUE;DpcInserted = TRUE; //表示需要立即给cpu发出dpc软中断}}}}}KiReleaseSpinLock(&DpcData->DpcLock);if (DpcInserted)//if 需要立即发出一个dpc软中断{if (Prcb != CurrentPrcb)KiIpiSend(AFFINITY_MASK(Cpu), IPI_DPC);elseHalRequestSoftwareInterrupt(DISPATCH_LEVEL);//给当前cpu发出一个dpc软中断}KeLowerIrql(OldIrql);//降低irqlreturn DpcConfigured;}如上,这个函数将dpc挂入目标cpu的指定dpc队列(每个cpu有两个dpc队列,一个普通的,一个线程化的)。
然后检查当前是否可以立即向目标cpu发出一个dpc软中断,这样,以在下次降低到DISPATCH_LEVEL 以下时扫描执行dpc(其实上面的这个函数一般用于在isr中调用,但用户也可以随时手动调用)(一般来说,挂入的都是中等重要性的dpc,一般在dpc进队的同时就会顺势发出一个dpc中断.)下面的函数可用于模拟硬件,向cpu发出任意irql级别的软中断,请求cpu处理执行那种中断。
VOID FASTCALLHalRequestSoftwareInterrupt(IN KIRQL Irql)//Irql一般是APC_LEVEL/DPC_LEVEL{ULONG EFlags;PKPCR Pcr = KeGetPcr();KIRQL PendingIrql;EFlags = __readeflags();//保存老的eflags寄存器_disable();//关中断Pcr->IRR |= (1 << Irql);//关键。
标志向cpu发出了一个对应irql级的软中断PendingIrql = SWInterruptLookUpTable[Pcr->IRR & 3];//IRR后两位表示是否有阻塞的apc中断//若有阻塞的apc中断,并且当前irql是PASSIVE_LEVEL,立即执行apc。