精华内容
下载资源
问答
  • Windows内核

    千次阅读 2012-05-10 15:05:14
  • Windows内核文件

    2020-04-20 20:32:17
    Windows内核文件就存放在C盘的Windows文件夹下 https://zhidao.baidu.com/question/496485251.html

    Windows内核文件就存放在C盘的Windows文件夹下


     

    https://zhidao.baidu.com/question/496485251.html

    展开全文
  • Windows内核结构

    2019-04-03 08:28:39
    Windows内核结构 第一篇博客,随便写下练练手:) Windows内核总共分为三层: 与硬件直接打交道的这一层叫做硬件抽象层简称HAL,这一层的用意就是把所有与硬件相关联的代码逻辑隔离到一个专门的模块中,从而做到尽...

    Windows内核结构

    第一篇博客,随便写下练练手:)

    Windows内核总共分为三层:

    1. 与硬件直接打交道的这一层叫做硬件抽象层简称HAL,这一层的用意就是把所有与硬件相关联的代码逻辑隔离到一个专门的模块中,从而做到尽可能的独立于硬件平台。

    2. HAL之上是内核层,有时也称为微内核,这一层包含了基本的操作系统原语和功能,如线程和进程、线程调度、终端和异常的处理、同步对象和各种同步机制(比如自旋锁)

    3. 在内核层之上则是执行体层,这一层的目的是提供一些可供上层应用程序的或内核驱动程序直接调用的功能和语义。
      在这里插入图片描述
      执行体层和内核层位于同一个二进制模块中即内核基本模块:ntoskrnl.exe Windows内核为用户模式代码提供了一组系统服务,供应用程序使用内核的功能。应用程序通常不直接调用这些系统服务,而是通过一组系统DLL,最终通过ntdll.dll切换到内核模式下的执行体API函数中,以调用内核中的系统服务,NTDLL是链接用户模式和内核模式的桥梁。 对于内核提供的每一个系统服务,该DLL都提供了一个相应的存根函数,这些存根函数的名称以“Nt”作为前缀,例如NtCreateProcess、NtOpenFile和NtSetTimer。另外,ntdll还提供了许多系统级别的支持函数,如映像加载器程序函数(“Ldr”为前缀)、系统事件函数(以“Etw”为前缀),以及一般的运行支持函数(以“Rtl”为前缀)和字符串支持函数等。
      执行体API函数接受的参数来源于各种应用程序,因此,为了保证系统的健壮性以及抵御来自用户模式的恶意攻击,所有执行体API函数必须保证参数的有效性。这意味着他们必须在恰当的时候检查参数的值,若是指针的话,还必须保证调用者可以访问指针所指的内存。通常会在服务函数的开始处检查所有的参数。
      检查代码:

    		PreviousMode = KeGetPreviousMode();
              	if (PreviousMode != KernelMode) {	
              		try {			
              		ProbeForWrite(InputInformation,				
              		InputInfomationLength,				
              		sizeof(ULONG));			
              			if (ARGUMENT_PRESENT(ReturnLength))		
              			{
              				ProbeFOrWriteUlong(ReturnLength);
              			}		
              			except(EXCEPTION_EXECUTE_HANDLER)
              			 {			
              		 	return GetExceptionCode();		
              		 	}
              		}	
              	 }
    
    展开全文
  • Windows内核设计思想 完整版.pdf
  • 文章摘录自《Windows内核原理与实现》一书。 设备驱动程序是操纵设备的内核模块,I/O 管理器、即插即用管理器和电源管理器都需要与设备的驱动程序打交道。 在Windows I/O 系统中,设备驱动程序不仅为操作系统提供...

    文章摘录自《Windows内核原理与实现》一书。

    设备驱动程序是操纵设备的内核模块,I/O 管理器、即插即用管理器和电源管理器都需要与设备的驱动程序打交道。

    在Windows I/O 系统中,设备驱动程序不仅为操作系统提供了支持各种 I/O 设备的能力, 也是 Windows 内核本身扩展的基础。Windows 可以动态地加载或卸载设备驱动程序,通过这些驱动程序来调整或扩展内核的功能。 Windows I/O 系统规定了设备驱动程序应遵循的接口, 这组接口是通用的,可适用于所有的内核模式驱动程序。设备驱动程序依据用途不同,可以分为以下三类:

    1.即插即用驱动程序,也称为 WDM驱动程序。 它们通常为了驱动硬件设备而由硬件厂商提供,与 Windows的 I/O 管理器、即插即用管理器和电源管理器一起工作。Windows 自身携带了大量即插即用驱动程序,用于支持各种常见的存储设备、视频适配器、网络适配器以及输入设备等。

    2.内核扩展驱动程序,也称为非即插即用驱动程序。它们扩展内核功能,或者提供了访问内核模式代码和数据的一种途径。它们并没有集成到即插即用管理器和电源管理器的管理框架中。早期的 Windows NT 驱动程序(在引入即插即用机制以前)都属于这一类类型,现在仍然有大量的内核扩展驱动程序。

    3.文件系统驱动程序。它们接收针对文件的 I/O 请求,再进一步将这些请求转变成正真对于储存设备或网络设备的 I/O 请求,从而满足客户的原始请求。文件系统的驱动程序被放在对象管理器的\FileSystem 目录下,其他的驱动程序放在\Driver 目录下。

    Windows 驱动程序模型 (WDM) 在 I/O 模型中增加了对即插即用、电源管理和 Windows 管理规范(WMI)的支持。而且,遵从 WDM 的驱动程序在 Windows 平台(包括 Windows 98/Windows 2000 以后的所有版本) 上至少是源代码兼容的,甚至也可能是二进制兼容的。WDM驱动程序又进一步划分成以下三类

    1.总线驱动程序。顾名思义,总线驱动程序管理一个总线设备,它负责检测总线上附载的所有设备,并通知即插即用管理器关于这些设备情况。总线驱动程序也负责总线的电源管理。

    2.功能驱动程序。功能驱动程序管理具体的设备,在一个设备的设备栈中,功能驱动程序创建的设备对象(即 FDO)相当于操作系统控制该设备的逻辑接口。功能驱动程序是实际管理该设备的功能模块。

    3.过滤驱动程序。在设备栈中,过滤驱动程序位于功能驱动程序之上或之下,它的用途是:监视一个设备的 I/O 请求以及这些请求的处理情况,或者,增加或改变一个设备或另一个驱动程序的行为。例如,病毒扫描工具常常利用过滤驱动来监视被读写的文件数据。

    在WDM中,总线式可供其他设备附载的设备,其中既有像 PCI 和 SCSI 这样的物理总线设备,也有像 HAL这样的虚拟总线设备。总线驱动程序负责检测总线上的设备,并且协助即插即用管理器列举这些设备,而且它也控制该总线的物理配置。相反地,功能驱动程序要简单得多,通常只是控制一个设备的硬件而已。

    在即插即用管理器列举得到的设备树中,每个设备节点都包含一个设备栈,设备栈中的各个设备对象分别由对应的驱动程序创建和实现。图 6.12 显示了不同类型WDM驱动程序在设备栈中的角色,以及它们之间的关系。

    每个设备对象都是由对应的驱动程序创建的,设备的 PDO 是由总线驱动程序创建的,而 FDO 是由功能驱动程序创建的。在PDO和FDO之间,紧挨着PDO,可以由零个或多个总线过滤设备对象,他们由相应的总线过滤驱动程序创建。在总线过滤设备对象和 FDO之间,可以有零个或多个下层过滤设备对象。而在 FDO 之上, 则可以有零个或多个上层过滤设备对象。这些下层或上层过滤设备对象分别由相应的下层或上层过滤驱动程序创建。WDM规定了这样的设备栈结构,即合理地让参与其中的每个驱动程序实现它所负责的那部分功能,也提供了足够的扩展性,允许过滤驱动程序在不同层次上监视或修正一个设备的工作方式。

    对于一个具体的设备而言,FDO代表了它对操作系统的逻辑接口。功能驱动程序往往会创建一个代表相应 PDO 的设备接口(通过I/O 管理器函数 IoRegisterDeviceInterface),因而应用程序或内核其他部分可以通过此设备接口与该设备打交道。对于一些复杂而又通用的设备,例如磁盘设备和网络适配器等,功能驱动程序又被进一步分成多个独立的驱动程序,由它们联合起来管理该 FDO 的 I/O 请求。在这一层意义上, WDM 驱动程序对硬件的支持可以进一步划分为类驱动程序(class driver)和端口驱动程序 (port driver),以及小端口驱动程序(miniport driver).类驱动程序实现了某一种类型的设备的 I/O 处理。对于已经标准化的设备类型,比如磁盘、网络适配器等,提供一个类驱动程序可以为不同厂商生产的设备实现通用的服务。端口驱动程序实现了与某一类型 I/O 端口相关的 I/O 处理,它们并不遵从驱动程的接口请求,而只是一些内核模式的辅助例程。小端口驱动程序则实现了驱动某一特定设备而需要的 I/O 服务。类驱动程序和小端口驱动程序的分工可以看成是针对一个或一类设备的 "通用" 和 "特殊" 的功能部分。类驱动程序实现的是 "通用" 或 "公共" 的 I/O 服务,而小端口驱动程序实现的是针对某一特定设备的 “特殊” 功能部分。

    展开全文
  • 什么是Windows内核编程

    千次阅读 2018-11-09 02:54:38
    什么是Windows内核编程
  • windows内核Api的学习

    千次阅读 2015-07-02 16:50:18
    windows内核api就是ntoskrnl.exe导出的函数。我们可以跟调用应用层的api一样,调用内核api。不过内核api需要注意的是,如果函数导出了,并且函数文档化(也就是可以直接在msdn上搜索到)。ExFreePool函数导出,并且...
  • Linux 内核Windows 内核有什么区别?

    千次阅读 多人点赞 2021-02-20 09:46:29
    对于服务器使用的操作系统基本上都是 Linux,而且内核源码也是开源的,任何人都可以下载,并增加自己的改动或功能,Linux 最大的魅力在于,全世界有非常多的技术大佬为它贡献代码。 这两个操作系统各有千秋,不分...
  • windows内核对象

    2011-09-25 14:30:36
    Index 内核对象进程的内核对象句柄表跨越进程边界共享内核对象 ...内核对象是windows内核分配的一个内存块,该内存块是一种数据结构,存储了该对象的各种信息。 2.内核对象的操作权限 内
  • Windows内核安全与驱动开发

    千次阅读 2015-07-24 16:51:55
    Windows内核安全与驱动开发 本书的前身是《天书夜读——从汇编语言到Windows内核编程》和《寒江独钓——Windows内核安全编程》。与Windows客户端安全软件开发相关的驱动程序开发是本书的主题。书中的程序使用...
  • windows内核驱动有什么收发数据包的方法?windows内核驱动有什么收发数据包的方法?
  • linux内核和windows内核的一些区别

    千次阅读 2017-06-14 12:48:22
    LINUX 和 WINDOWS 内核的区别 [声明:欢迎转载,转载请注明出自CU ACCESSORY http://linux.chinaunix.net/bbs/thread-1153868-1-1.html] 关于LINUX和WINDOWS的口水站已经很多了。本文企图从技术角度来比较...
  • windows 内核函数前缀解析

    千次阅读 2016-10-10 14:48:12
    windows 内核函数前缀解析
  • Windows 内核的版本

    千次阅读 2013-12-10 10:54:57
    正如上一节所介绍,Windows 内核经过了20 年的发展,其体系结构并没有大的变化。而Windows 内核中的各个组件在经过了长期发展以后,变得更加优化和成熟。下页表1.1列出了Windows 内核的版本以及相应的操作系统。 表...
  • WINDOWS内核对象及其理解

    千次阅读 2017-01-10 14:03:24
    WINDOWS内核对象   一.前言   Windows中有很多像进程对象、线程对象、文件对象等等这样的对象,我们称之为Windows内核对象。内核对象是系统地址空间中的一个内存块,由系统创建并维护,这个内存对象是一个数据...
  • Windows内核使用RtlAppendUnicodeToString时,如果追加内容有中文,会出现乱码
  • windows内核原理与实现

    千次阅读 2018-02-03 17:16:57
    2.windows内核的基本概念  2.1处理器模式 intelx86处理器:0-最高级特权,cpu处在内核模式,可以访问当前进程的地址空间和系统空间;3-最低特权, 处在用户模式, 只能访问当前进程的地址空间。 2.2内存...
  • Windows内核模式下套接字结构

    千次阅读 2017-03-27 17:02:59
    Windows内核模式下套接字结构。
  • Windows内核情景分析-概述

    千次阅读 2018-08-06 22:47:18
    现在的windows内核包含了两大部分,一部分是本来意面上的操作系统内核,另一部分则是移到了内核中的视窗服务,前者对应ntoskrnl.exe后者win32k.sys;后者部分为了保证效率。windows操作系统包含多个子系统,最常用...
  • 探究Windows内核你知多少

    千次阅读 2018-11-06 14:42:50
    Windows内核  如上所述,现代操作系统的一个明显特征就是用户空间和系统空间的划分,从UNIX时代以来,人们一直把存在于系统空间的代码和数据的集合称为“内核(Kernel)”,因此内核是有明确边界的。空间的不同,...
  • Windows内核函数的命名

    千次阅读 2013-09-04 19:54:21
    Windows内核情景分析--采用开源代码ReactOS(上、下册)》本书通过分析ReactOS的源代码介绍了Windows内核各个方面的结构、功能、算法与具体实现。本小节为大家介绍Windows内核函数的命名。 AD:   1.5 ...
  • windows internals 的中文译本 windows内核原理与实现
  • 收集的有关windows内核的相关的知识和内幕,其中包括了一些来自微软内部的资料和培训材料,是研究windows内核特别是NT技术的重要材料!
  • WINDOWS内核对象

    万次阅读 热门讨论 2006-07-25 23:08:00
    WINDOWS内核对象 一.前言 Windows中有很多像进程对象、线程对象、文件对象等等这样的对象,我们称之为Windows内核对象。内核对象是系统地址空间中的一个内存块,由系统创建并维护。内核对象为内核所拥有,而不为...
  • 学习中,经常会碰到Windows内核对象这一个概念,例如Mutex就是一个内核对象,我想问一下他与普通的类创建的对象有什么区别
  • Windows内核编程笔记(一)

    千次阅读 2016-04-27 21:19:08
    介绍了使用VMWare或者Hyper-V虚拟机搭建传统的Windows内核编程开发调试环境的方法,并利用VS2015新建了一个极其简单的NT式驱动程序HelloWorld,通过介绍HelloWorld的安装、调试和设置DbgPrint过滤等知识,概要展现一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 279,230
精华内容 111,692
关键字:

windows内核