- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
经过分析,我了解到即使是 _KPROCESS 对象也可以是 ActiveProcessLinks 列表的成员。 _EPROCESS 和 _KPROCESS 对象有什么区别?什么时候造一个,一个不造?它们之间的概念差异是什么?
最佳答案
这是简化的,但 Windows 操作系统的内核模式部分分为三部分:HAL、内核和执行子系统。执行子系统处理一般的 O/S 策略和操作。内核处理低级操作(例如自旋锁、线程切换)以及调度的进程架构特定细节。 HAL 处理在处理器架构的特定实现中出现的差异(例如,中断是如何在此 x86 实现上路由的)。 Windows Internals 一书中对此进行了更详细的解释。
当您创建一个新的 Win32 进程时,内核和执行子系统都希望跟踪它。例如,内核想知道进程中线程的优先级和关联性,因为这会影响调度。执行子系统想要跟踪流程,因为例如,安全执行子系统想要将 token 与流程相关联,以便我们稍后进行安全检查。
内核用来跟踪进程的结构是KPROCESS。执行子系统用来跟踪它的结构是 EPROCESS。作为实现细节,KPROCESS 是 EPROCESS 的第一个字段,因此执行子系统分配 EPROCESS 结构,然后调用内核来初始化它的 KPROCESS 部分。最后,这两个结构都是表示用户进程实例的进程对象的一部分。 Windows Internals 一书中也应该涵盖所有这些内容。
-斯科特
关于windows - _EPROCESS 对象和 _KPROCESS 对象有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5790587/
经过分析,我了解到即使是 _KPROCESS 对象也可以是 ActiveProcessLinks 列表的成员。 _EPROCESS 和 _KPROCESS 对象有什么区别?什么时候造一个,一个不造?它
我是一名优秀的程序员,十分优秀!