操作系统
文章平均质量分 71
jyl_sh
多年从事IT项目的开发和管理工作,主要从事过电力、电信、邮政、教育、金融等行业的IT系统的开发建设及项目管理工作
展开
-
windows内核开发学习笔记四十九:安全管理强制访问模型
以上就是SRM中自主f访问控制的实现过程。SRM的强制访问过程是通过特权检查来实施的,sePrivilegeCheck调位于base\ntos\se\privileg.c文件中的SepPrivilegeCheck函数执行实际的特权检查。其参数Token代表了当前线程的安全环境,如同SepAccessCheck函数也需要代表调用线程的令牌一样;参数RequirePrivileges和RequiredPrivilegeCount合起来指明了调用线程要请求一组特权;参数PrivilegeSetCo...原创 2021-07-08 18:35:01 · 763 阅读 · 1 评论 -
windows内核开发学习笔记四十八:安全管理自主访问模型
接着上一篇博文学习安全管理,现在我们来学习对象管理器如何让使用SRM的安全检查的,当一个进程打开一个对象时,对象管理器在名字空间中查到目标对象后,但是在返回给句柄调用者以前,它调用\base\ntos\ob\obse.c文件中的ObCheckObjectAccess函数检查访问许可。ObCheckObjectAccess是对象管理器的函数,它将对象管理器与SRM的安全机制连接起来。它首先调用ObGetObjectSecurity函数以获得目标对象的SD(安全描述符),数据类型为SECURIT...原创 2021-07-08 18:32:06 · 649 阅读 · 0 评论 -
windows内核开发学习笔记四十七:安全管理
windows系统有严格的安全模型,既实现了以对象为基础的自主访问控制(discretionary access control)又实现了系统级的强制访问控制(mandatory access control)。在自主访问的控制模型中,对象的所有者授权或拒绝哪些用户可以访问该对像。基于对象的访问控制并不能保护系统的所有操作,因为操作并没有与一个特定的对象联系在一起,如系统停机(shutdown)、备份文件核目录、交互式登陆到系统中等;甚至有些操作针对整个系统,并不与特定用户账号相关联,如账户...原创 2021-07-08 09:32:14 · 627 阅读 · 1 评论 -
windows内核开发学习笔记四十六:事件追踪(ETW)
Windows提供了统一的跟踪和记录事件的机制,称为ETW(Event Tracing For Windows)。用户模式应用程序和内核模式驱动程序都可以使用ETW来记录事件。ETW是直接由内核支持的事件记录机制。在它的框架结构中,共有三种组件:控制器(Control):负责启动、停止或配置事件记录会话。 提供者(Provider):负责向ETW注册自己的事件类,并接受控制器的命令,以便启动或者停止它们所负责的事件类的记录过程。 消费者(Consumer):负责有针对性地读取它们想要...原创 2021-07-07 13:30:02 · 3926 阅读 · 0 评论 -
windows内核开发学习笔记四十五:内核配置管理器
配置管理器是执行体中的组件,它的实现依赖于内存管理器和缓存管理器(以及文件系统),这就意味着它必须要在这些组件初始化以后才能正常工作;然而在系统初始化的早期(比如I/O子系统的初始化),windows已经需要使用注册表中的配置信息了,但此时配置管理器尚未被初始化。windows的做法是,在内核初始化以前,内核加载器(ntldr)已经将整个HKLM\SYSTEM储巢作为一个只读文件加载到了内存中,因而配置管理器在完全初始化以前只需要直接把巢室索引加上该储巢的内存映射地址,就可以得到巢室的内存地...原创 2021-07-06 16:56:09 · 748 阅读 · 0 评论 -
windows内核开发学习笔记四十四:注册表存储结构-储巢
上一篇文章学习了注册表的逻辑结构,接下来我这篇文章来学习注册表的存储结构。注册表实际存储是由一组储巢构成,每个储巢包含了一个由键和值构成的层次结构。下面表是windows的各个储巢的注册表路径和文件路径。一个系统的储巢列表存放在HKLM\SYSTEM\CurrentControlSet\Control\hivelist键下。当系统初始化时,HKLM\SYSTEM总是被先加载进来,然后配置管理器找到hivelist键,继续加载其他的储巢,并创建注册表的根键,将这些储巢连接起来,就建立起了完整的...原创 2021-07-05 17:19:40 · 642 阅读 · 0 评论 -
windows内核开发学习笔记四十三:注册表逻辑结构
Windows系统的很多组件都是可以配置的原创 2021-07-05 13:46:29 · 986 阅读 · 0 评论 -
windows内核开发学习笔记四十二:内核对象管理目录及接口
windows内部维护了一个对象层次目录(即系统全局名字空间),其根目录对象是由全局变量ObpRootDirectoryObject来定义的。在根目录之下,系统内置了一些子目录,通过查询NtCreateDirectoryObject函数可以看到CallBack、ArcName、Device、Driver、FileSystem、KernelObjects、ObjectTypes、GLOBAL??和Security子目录的创建过程,下面的是创建Driver子目录的代码://创建driver目...原创 2021-07-04 21:03:48 · 702 阅读 · 0 评论 -
windows内核开发学习笔记四十一:内核对象管理机理
对象管理器是执行体中的组件,主要管理执行体对象。执行体对象也可能封装了一个或多个内核对象。原创 2021-07-03 21:21:16 · 490 阅读 · 3 评论 -
windows内核开发学习笔记四十:内核概念之同步处理
现代操作系统中,由于多处理器、多核或者中断等各种并发(concurrency)因素的存在,同样的代码有可能被并发执行,而数据也可能被并发访问。在这种情况下,对于可能被并发访问的数据进行必要的同步(synchronization)保护是一种常见的编程实践。windows操作系统提供了多种同步机制,使得系统代码或者应用程序代码能够选择恰当的手段来保护其代码和数据。根据执行环境中的IRQL值大于APC_LEVEL或者等于PASSIVE_LEVEL,可以将同步机制分为:不依赖于线程调度的同步机制 和...原创 2021-06-29 12:11:17 · 600 阅读 · 0 评论 -
windows内核开发学习笔记三十九:内核概念之中断和异常
中断(interrupt)是处理器与外部设备打交道的重要途经;而异常(exception)则是处理器的正常指令流在执行过程中产生一些特殊事件,需要紧急处理才能继续原来的指令流。它们都会打断一个正常的指令流,但区别在于,中断的发生与当前指令流并无实质的联系,而异常则是当前指令流执行的直接结果。而且,中断是异步的,而异常是同步的。 尽管中断和异常的触发来源和方式不相同,Intel x86处理器内部使用同一套陷阱机制来处理中断和异常,它利用IDT(Interrupt Descri...原创 2021-06-29 10:11:25 · 815 阅读 · 0 评论 -
windows内核开发学习笔记三十八:内核概念之进程和线程管理
前面在windows内核开发学习笔记三十五:系统线程和系统进程博文中介绍了系统进程和系统线程,涉及了一些线程和进程的概念,在本文更进一步的介绍进程和线程管理的相关知识。 进程(process)定义了一个执行环境,包括他自己的私有的地址空间、一个句柄表,以及一个安全环境;线程(thread)则是一个控制流,有自己的调用栈(call stack),记录了它的执行历史,每个进程都包含一个或多个线程,当进程被初始创建时系统为该进程创建第一个线程;当最后一个线程结束时,进程也随之结束...原创 2021-06-28 17:24:58 · 717 阅读 · 0 评论 -
windows内核开发学习笔记三十七:内核概念之内存管理
Intel x86体系结构既支持段式内存管理,也支持页式内存管理,然而,windows没有使用段式内存管理方案,而只是简单地将32位虚拟内存空间按照0~4GB的线性地址空间来看待。任何一个进程都定义了它自己的完整4GB地址空间,但是,其中的2GB~4GB之间的部分是所有进程共享的,称为系统地址空间;0~2GB部分是进程私有的,称为进程地址空间。但是对于一些对内存大小有特殊要求的应用程序,如数据库,对私有空间要求越大越好,因此需要在windows的引导选项”/3GB"对进程空间进行设置以获得3...原创 2021-06-28 15:07:56 · 618 阅读 · 1 评论 -
windows内核开发学习笔记三十六:内核概念之内核模式
windows内核中的各个组件并非单纯的独立模块,相反地组件之间不可避免地包含着复杂的依赖关系,甚至存在着交叉调用。原创 2021-06-28 11:44:28 · 538 阅读 · 1 评论 -
windows内核开发学习笔记三十五:系统线程和系统进程
在 在windows中,每个线程代表一个指令执行序列,同时也是一个调度单元。进程定义了一个执行环境,有自己的独立地址空间。每个线程都必定依附一个进程。windows内核除了接受来自应用程序的系统服务调用,它自己也有一些线程用于各种用途,这些线程运行在一个特殊的进程环境中,称为system进程(注意与操作系统的关键进程--系统进程的区别)。system进程的线程被称为系统线程,其中有一组系统辅助线程(system worker thread)代表操作系统或者其他应用进程来完成一些特殊的工作。...原创 2021-06-27 22:18:38 · 483 阅读 · 0 评论 -
windows内核开发学习笔记三十四:windows子系统之图形设备接口
windows的图形引擎也是在windows子系统中提供的,有以下两个方面特点:一是它提供了一套与设备无关的编程接口-GDI,使得应用程序可以适应各种底层显示设备的差异;二是应用程序与图形驱动程序之间的通信足够高效,从而即使在频繁输出和刷新图形元素的情况下,windows也能够为用户提供良好的视觉效果。 在技术上,windows子系统定义了一个稳定的图形体系结构,以便于第三方图形设备硬件厂商可以方便地将他们的视频显示器和打印设备集成到windows中,win32k.sys 通...原创 2021-06-27 18:46:43 · 523 阅读 · 1 评论 -
windows内核开发学习笔记三十三:windows子系统之窗口管理
windows子系统的用户界面管理有一个层次结构,通常应用程序只是在一个默认的桌面运行。每个子系统会话都有自己的会话空间,属于某个会话的资源将从该会话空间中分配。当用户登录到windows中时,操作系统将为该用户建立一个会话;即使用户通过远程桌面或者终端服务连接到一个系统中,系统也会为该用户建立一个单独的会话。在一个会话中,有一个交互式窗口站,可能还有非交换式窗口站。在交互式窗口站中通常有三个桌面:登录桌面、默认桌面和屏幕保护桌面。通常运行的图形界面应用程序运行在默认桌...原创 2021-06-27 17:01:54 · 668 阅读 · 0 评论 -
windows内核开发学习笔记三十二:windows子系统
windows支持三个环境子系统:OS/2、POSIX和windows(win32)。原创 2021-06-27 14:51:59 · 1129 阅读 · 0 评论 -
windows内核开发学习笔记三十一:内核的关键组件之网络
在windows系统开发之初,网络并不是系统的标准配置,随着网络技术的普及逐渐演变为系统的标准配置,为应用程序提供了多种网络的API,可以供在安装时根据硬件的配置需求做出适当的选择,下面就是windows平台上的主要的网络:windows套接字:简称winsock,实现并扩展了BSD套接字标准。最新版本winsock2.0,支持异步网络I/O、服务质量(Qos)规范、可扩展名字空间以及多点消息传输等新特性。 WinInet:这个是一个高层次的网络API,支持包括Gopher、FTP和HTT...原创 2021-06-26 23:06:21 · 700 阅读 · 1 评论 -
windows内核开发学习笔记三十:内核的关键组件之文件系统及存储管理
在在xian 在现代操作系统中,文件系统是外部存储设备的标准接口,它为应用程序使用这些设备中的数据提供了统一的抽象。原创 2021-06-25 18:12:24 · 552 阅读 · 0 评论 -
windows内核开发学习笔记二十九:内核的关键组件之设备驱动程序
前面介绍了执行体、内核、硬件设备抽象三个内核核心功能,这三个功能,位于内核模块ntoskrnl.exe和HAL中,其中执行体和微内核共存于内核模块ntoskrnl.exe中。除了这三部分外,其他的模块几乎都是以驱动程序的形式存在的。windows操作系统中的设备驱动程序,不一定对应着物理设备,也可以是虚拟设备,甚至完全与设备无关的仅仅是内核的扩展模块。从软件的角度而言,可以把设备驱动程序看成是windows内核的一种扩展机制,系统通过设备驱动程序来支持新的物理设备或者扩展功能。 设备...原创 2021-06-25 14:47:34 · 695 阅读 · 0 评论 -
windows内核开发学习笔记二十八:内核的关键组件之执行体(Executive)
执行体是内核模块的上层部分,在大的方面看,执行体包含以下组件:进程和线程管理器,负责创建进程和线程,以及终止进程和线程。对于进程和线程的底层支持是在内核层中提供的,执行体在内核层的基础上又添加了一些语义和功能。 内存管理器。此组件提供了虚拟内存功能,既负责系统地址空间的内存管理,又为每个进程提供了一个私有的地址空间,并且也支持进程间的内存共享。 安全引用监视器,该组件强制在本地计算机上实施安全策略,守护操作系统的资源,执行对象的保护和审计。 I/O管理器。实现与设备无关的输入和输出功能,负责将I/原创 2021-06-25 11:29:15 · 1119 阅读 · 1 评论 -
windows内核开发学习笔记二十七:内核的关键组件之内核(微内核)
内核(微内核)这个其实就是内核的核心部分了,它负责线程调度和终端,异常的处理,在多处理器的情况下,还负责多处理器之间的协调,从而优化系统的性能。这层的核心任务是:让系统中所有的处理器尽可能地忙和高效。windows的内核按照面向对象的思想来设计,它管理两种类型的对象:分发器对象(sipatcher object)和控制对象。分发器对象实现了各种同步功能,这些对象的状态会影响线程的调度。windows内核的分发器对象有:事件,突变体,信号量,进程,线程,队列和定时器等。控制对象用于控制内核的操作。.原创 2021-06-24 18:53:09 · 938 阅读 · 0 评论 -
windows内核开发学习笔记二十六:内核的关键组件之HAL抽象层
HAL(Hardware Abstraction Layer,硬件抽象层)Windows NT的一个目标是使操作系统可跨平台移植。理想情况下,当一种新机器问世时,它应该可以仅仅使用新机器的编译器来重新编译这个操作系统,就让他首次运行。但是,现实中并不能这样做。虽然上层的操作系统能够完全移植(因为它们的处理大多是内部数据结构),但底层处理的是设备寄存器、中断、DMA和其他的硬件特性,这些都是因机器而不同的。即使大部分底层代码是用C语言编写的,它也不能仅仅从X86上拿出来放到Alpha上,然后重新...原创 2021-06-24 17:22:41 · 1022 阅读 · 0 评论 -
windows内核开发学习笔记二十五:两种内核模式切换的安全检测
前面几篇文章已经介绍了Windows的架构、运行模式、核心架构等,本篇接着介绍windows的两种运行模式切换等方面的原理和技术。从上一章节可以可以知道,在内核层最上面的是执行体API,这一层负责接收来自应用层的各种程序的访问,而且是绝大部分是通过Ntdll.dll桥来调用的。因为应用程序是运行在用户模式下的,为了保证这种调用和访问的健壮性,抵御来自用户模式的错误调用或者恶意攻击,必须保证执行体API参数的有效性。这就是说要保证这些参数值的合规性,若是指针参数,还要保证指针所指的内存的有效。...原创 2021-06-24 14:52:20 · 446 阅读 · 0 评论 -
windows内核开发学习笔记二十四:windows内核架构
从上图上可以看出,windows内核主要层次划分为三个层次,以及windows子系统、文件系统、网络、设备驱动程序等几个部分。硬件抽象层(Hardware Abstraction Layer,简称HAL):主要是把所有与硬件相关联的代码隔离到一个专门模块中,从而使上面的层次尽可能做到独立于硬件平台。 内核层或微内核层(micro-kernel):位于HAL硬件抽象层之上,主要包含了基本的操作系统原语和功能,如线程和进程、线程调度、中断和异常的处理、同步对象和各种同步机制。 执行体层(execu...原创 2021-06-23 16:55:37 · 1447 阅读 · 0 评论 -
windows内核开发学习笔记二十三:windows操作系统的基本架构
windows的设计核开发,从一建立开始之初就本着可扩展性和安全性的良好设计思路进行开发的,一直在随着硬件发展而不断进行演进和开发。 windows的系统结构采用双模式结构(dual mode),即内核模式和用户模式;操作系统的核心运行在内核模式(kernel mode)下,应用程序运行在用户模式(user mode)下。在两种模式下运行的权限和访问的范围不一样,当应用程序需要使用系统内核或核的扩展模块(内核驱动)提供的服务时,应用程序需要通过硬件指令从用户模式切换到内核模式中...原创 2021-06-23 13:01:40 · 1014 阅读 · 1 评论 -
windows内核开发学习笔记二十二:现代操作系统的基本结构
一、现代操作系统的功能特点 (1) 计算机硬件与用户软件之间的中间件程序集合 。 (2) OS是一个资源管理程序 。 (3) OS是一个控制调度程序。 (4) OS一般有一个内核(kernel)程序,开机后一直运行 (5) 提供用户和计算机之间的接口二、 现代操作系统的五大组成部分:处理器管理,内存管理,设备管理,文件管理,用户接口三、操作系统的四个基本特征:并发性,共享性,虚拟性,不确定性四、分时操作系统的基本特征:交互性、多用户同时性、独立性,...原创 2021-06-22 17:31:09 · 1215 阅读 · 1 评论 -
windows内核开发学习笔记二十一:补充基本概念的学习——钩子函数
windows内核开发学习笔记二十一:补充基本概念的学习——钩子函数 Windows操作系统是建立在事件驱动的消息处理机制之上,系统各部分之间的沟通也都是通过消息的相互传递而实现的。钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。通常情况下,应用程序只能处理当前进程的消息,如果需要对其它进程的...原创 2021-05-26 19:52:01 · 1054 阅读 · 0 评论 -
windows内核开发学习笔记二十:补充基本概念的学习——回调函数
windows内核开发学习笔记二十:补充基本概念的学习——回调函数 回调函数由系统调用,所以可以认为它属于 WINDOWS 系统,不要把它当作你的某个类的成员函数,回调函数 是一个程序员不能显式调用的函数;通过将回调函数 的地址传给调用者从而实现调用。回调函数使用是必要的,在我们想通过一个统一接口实现不同的内容,这时用回掉函数非常合适。比如,我们为几个不同的设备分别写了不同的显示函数:void TVshow(); void ComputerShow(); void NoteBookSh...原创 2021-05-26 18:57:08 · 977 阅读 · 0 评论 -
windows内核开发学习笔记十九:补充基本概念的学习——指针函数
windows内核开发学习笔记十九:补充基本概念的学习——指针函数今天学习内核编程,要补充一些基本的知识,以便后面学习时的概念的基本理解。今天介绍的是关于函数指针的概念。定义顾名思义,函数指针是关于函数的指针,函数指针虽然也是指针,但它的定义方式却和其他指针看上去很不一样,下面实例说明如何定义的:/* 方法1 */void (*p_func)(int, int, float) = NULL;/* 方法2 */typedef void (*tp_func)(int, int, flo原创 2021-05-26 18:45:06 · 768 阅读 · 1 评论 -
windows内核开发学习笔记十八:IRP 处理的标准模式
windows内核开发学习笔记十八:IRP 处理的标准模式I/O manager ---> Dispatch routine ---> StartIo routine ---> ISR ---> DPC routine ---> I/O manager5.2.1 建立一个 IRPIRP 的生存期从调用 I/O manager function 建立 IRP 开始,你可以使用下面 4 个 function 来建立一个新的 IRP:(1) IoBuildAsynch..原创 2021-04-15 18:41:49 · 1731 阅读 · 0 评论 -
windows内核开发学习笔记十七:IRP 和 IO_STACK_LOCATION 的交互
windows内核开发学习笔记十七:IRP 和 IO_STACK_LOCATION 的交互 前面两篇学习笔记分别介绍了IRP和IO_STACK_LOCATION,整个设备栈来处理这个IRP,但是每个设备都应该有自己的参数信息,这个参数信息就是通过IO_STACK_LOCATION 来保管的,那么IRP是怎么保管IO_STACK_LOCATION的呢?本文我们来分析一下IRP和IO_STACK_LOCATION交互作用的整个流程。 I/O manager ---> ...原创 2021-04-15 17:55:43 · 1882 阅读 · 0 评论 -
windows内核开发学习笔记十六: IO_STACK_LOCATION
windows内核开发学习笔记十六: IO_STACK_LOCATIONIO_STACK_LOCATION结构定义了一个I/Ostacklocation,是每个IRP关联的I/Ostack的其中一个入口。在IRP中的每个I/Ostacklocation都有一些通用的成员和一些与请求相关的成员。任何内核模式程序在创建一个IRP时,同时还创建了一个与之关联的IO_STACK_LOCATION结构数组:数组中的每个堆栈单元都对应一个将处理该IRP的驱动程序,另外还有一个堆栈单元供IRP的...原创 2021-04-15 16:55:50 · 1537 阅读 · 0 评论 -
windows内核开发学习笔记十五:IRP结构
windows内核开发学习笔记十五:IRP结构 IRP(I/O Request Package)在windows内核中,有一种系统组件——IRP,即输入输出请求包。当上层应用程序需要访问底层输入输出设备时,发出I/O请求,系统会把这些请求转化为IRP数据,不同的IRP会启动I/O设备驱动中对应的派遣函数。一、IRP类型由于IRP是响应上层应用程序的。可想而知,IRP类型是与上层对底层设备的访问类型相对应。文件相关的I/O函数如:CreateFile/ReadFile/WriteFile/Clo.原创 2021-04-15 14:59:38 · 2843 阅读 · 0 评论 -
windows内核开发笔记十四:DRIVER_OBJECT和DEVICE_OBJECT的关系
DRIVER_OBJECT和DEVICE_OBJECT的关系 DRIVER_OBJECT是驱动程序在内核中的数据结构,每个驱动程序有唯一DRIVER_OBJECT,IO管理器使用驱动程序对象代表每个设备驱动程序,驱动程序描述了驱动程序的载入到内存什么地方,驱动程序的大小和它的主要入口点(MajorFunction数组);驱动程序对象有一个DeviceObject域指向一个设备对象链表,每个设备对象代表一个设备。 DEVICE_OBJECT是物理设备或逻辑设备在内核中的数据结构...原创 2021-03-30 11:08:48 · 1479 阅读 · 0 评论 -
windows内核开发笔记十三:DeviceObject结构
前一节学习了DriverObject结构,这一节开始学习设备结构设备对象(DEVICE_OBJECT)是在内核中唯一接收请求的实体.大部分消息都是以请求(IRP)方式传递的,而任何一个请求都是发送被某个设备对象的.设备对象是驱动对象结构的第三个参数对象.内核程序是以一个驱动对象表示的,所以一个设备对象总是属于一个驱动对象.typedef struct DECLSPEC_ALIGN(MEMORY_ALLOCATION_ALIGNMENT) _DEVICE_OBJECT { CSH...原创 2021-03-29 15:26:15 · 1321 阅读 · 0 评论 -
windows内核开发笔记十二:DriverObject结构
windows内核开发笔记十二:DriverObject结构 学习好驱动开发,对于内核的结构的了解非常重要,只有熟悉了内核结构,才能更得心应手,每一个驱动对象代表着一个已经装载的内核模式下的驱动, 指向驱动对象的指针是驱动程序中以下例程的输入参数之一: DriverEntry, AddDevice, Reinitialize(可选例程),Unload(可选例程)。驱动对象是一个半透明对象,驱动编写者必须熟悉它的某些成员对象,以实现驱动的初始化功能和卸载功能(如果该驱动能够卸载)。本节的学...原创 2021-03-29 11:21:16 · 1667 阅读 · 0 评论 -
华为鸿蒙系统HarmonyOS学习之十三:第一个程序HelloWorld
华为鸿蒙系统HarmonyOS学习之十三:第一个程序一、创建的项目启动DevEco Studio启动后进入主页面点击创建项目,发现现在支持有多种类型下一步,开始创建项目。点Next,输入自己的工程名,与工程路径,这里选择存储在了C盘,C盘设置了项目工程存储目,目录的存储盘。而SDK版本,现在只有一个API Version3可以选择。Finsh后,就会自动创建一个工程了。 Finish后,工程就建好了,这时,会自动下载一个gradle的最新包,这是一个自动化构建...原创 2021-03-23 16:44:44 · 1869 阅读 · 1 评论 -
windows内核开发笔记十一:IRQL级别调用说明
windows内核开发笔记十一:IRQL级别调用说明IRQL是Interrupt ReQuest Level,中断请求级别。处理器在一个IRQL上执行线程代码。IRQL是帮助决定线程如何被中断的。在同一处理器上,线程只能被更高级别IRQL的线程能中断。每个处理器都有自己的中断IRQL。常见的IRQL级别有四个:Passive、APC、 Dispatch、DIRQL。PASSIVE_LEVELIRQL最低级别,没有被屏蔽的中断,线程执行用户模式,可以访问分页内存。APC_LEVEL只有原创 2021-03-22 15:32:18 · 3305 阅读 · 1 评论