KPROCESS 结构体属性介绍
typedef struct _KPROCESS {//// The dispatch header and profile listhead are fairly infrequently// referenced.//// 存在 DISPATCHER_HEADER 表明 KPROCESS 是分发器对象,可以被“等待”// 所谓等待,就是指某个线程可以调用 WaitForSingleObject 函数来等待这个 KPROCESS ,// 然后该线程就会处于阻塞(等待)状态。// 进程退出时会变成有信号状态,等待就算成功,线程就继续执行了。DISPATCHER_HEADER Header;// 当该进程参与性能分析时,作为一个节点加入到全局性能分析进程列表 KiProfileListHead 中LIST_ENTRY ProfileListHead;//// The following fields are referenced during context switches.//// 第一项指向页目录表基址;第二项指向超空间(hyper space)的页目录表基址ULONG_PTR DirectoryTableBase[2];#if defined(_X86_)KGDTENTRY LdtDescriptor; // LDT描述符KIDTENTRY Int21Descriptor; // 21号中断描述符,用于兼容dos的系统调用USHORT IopmOffset; // IOPM(I/O权限表)的偏移UCHAR Iopl; // I/O优先级BOOLEAN Unused;#endif#if defined(_AMD64_)USHORT IopmOffset;#endif// 32位整数,表示当前进程正在哪些处理器上运行volatile KAFFINITY ActiveProcessors;//// The following fields are referenced during clock interrupts.//// 初始为0,仅当一个线程结束时才更新其进程的这两个时间值ULONG KernelTime; // 所属线程在内核模式下花的时间ULONG UserTime; // 所属线程在用户模式下花的时间//// The following fields are referenced infrequently.//// 当进程被换出内存后,其所属线程一旦就绪,则被挂到此链表中,并要求换入该进程// 然后将 ReadyListHead 中的所有线程加入到系统全局就绪链表 KiDispatcherReadyListHead 中// 这个操作是在 KiInSwapProcesses 函数中完成的LIST_ENTRY ReadyListHead;// 进程换出内存时,通过此域挂入 KiProcessOutSwapListHead 全局链表// 进程换入内存时,通过此域挂入 KiProcessInSwapListHead 全局链表SINGLE_LIST_ENTRY SwapListEntry;#if defined(_X86_)// 指向处理 Ctrl+C 中断的函数,仅用于VDM(虚拟DOS机)环境下运行的16位程序PVOID VdmTrapcHandler;#elsePVOID Reserved1;#endif// 存储了当前进程所有子线程的链表LIST_ENTRY ThreadListHead;// 自旋锁对象,用于对进程数据的同步访问KSPIN_LOCK ProcessLock;// 指定了该进程的线程可以在哪些CPU上运行,这是32或64位整数,每个位都对应一个处理器(或核)KAFFINITY Affinity;//// N.B. The following bit number definitions must match the following// bit field.//// N.B. These bits can only be written with interlocked operations.//#define KPROCESS_AUTO_ALIGNMENT_BIT 0
#define KPROCESS_DISABLE_BOOST_BIT 1
#define KPROCESS_DISABLE_QUANTUM_BIT 2union {struct {LONG AutoAlignment : 1; // 内存对齐设置,x86不检查此位LONG DisableBoost : 1; // 优先级提升和时限分配相关LONG DisableQuantum : 1; // 优先级提升和时限分配相关LONG ReservedFlags : 29;};LONG ProcessFlags;};SCHAR BasePriority; // 线程基本优先级,默认是8SCHAR QuantumReset; // 线程基本时限重置值,默认是6,每次时钟中断减3// 是否在内存中,共有6种可能的状态:// ProcessInMemory 、ProcessOutOfMemory 、ProcessInTransition 、// ProcessOutTransition、ProcessInSwap 和ProcessOutSwapUCHAR State;// 线程初始化时,用 ThreadSeed 设置其理想的处理器,然后更新 ThreadSeed 以供下一个线程使用UCHAR ThreadSeed;UCHAR PowerState; // 记录电源状态UCHAR IdealNode; // 优先处理器节点,进程初始化时设定BOOLEAN Visited; // WRK 未使用union {KEXECUTE_OPTIONS Flags;UCHAR ExecuteOptions; // 内存执行选项,用于支持NX(内存不可执行)};#if !defined(_X86_) && !defined(_AMD64_)PALIGNMENT_EXCEPTION_TABLE AlignmentExceptionTable;#endifULONG_PTR StackCount;// 当前系统所有活动进程的链表,链表头是 KiProcessListHead / PsActiveProcessHeadLIST_ENTRY ProcessListEntry;
} KPROCESS, *PKPROCESS, *PRKPROCESS;
KPROCESS 结构体属性介绍相关推荐
- KTHREAD 结构体属性介绍
typedef struct _KTHREAD {//// The dispatcher header and mutant listhead are fairly infrequently// re ...
- ETHREAD 结构体属性介绍
typedef struct _ETHREAD {KTHREAD Tcb;// 线程创建时间LARGE_INTEGER CreateTime;union {// 线程退出时间LARGE_INTEGER ...
- Zookeeper C API 基本常量和结构体介绍
Zookeeper 监视(Watches) 简介 Zookeeper C API 的声明和描述在 include/zookeeper.h 中可以找到,另外大部分的 Zookeeper C API 常量 ...
- phpcmsV9 默认主题模板(templates文件目录结构)介绍
phpcmsV9 默认主题模板(templates文件目录结构)介绍 介绍如下: 介绍如下: 这篇文章则详细的介绍一下系统自带默认模板的文件目录结构.主题模板位于"-\phpcms\temp ...
- Ubuntu目录结构简单介绍笔记
一.Ubuntu目录结构简单介绍 Ubuntu目录结构简单介绍 /根目录 1.boot/启动文件.所有与启动有关的文件都保存在这里 ·grub/ Grub引导器相关的文件 2.dev/设备文件 ...
- 下面是html5中新增的结构元素的是,HTML5的新的结构元素介绍
HTML5的新的结构元素介绍 一.HTML5与HTML4的区别 1. 取消了一些过时的HTML4的标签 其中包括纯粹显示效果的标记,如和 ,它们已经被 CSS完全取代. 其他取消的属性:acronym ...
- HTML5的新的结构元素介绍
HTML5的新的结构元素介绍 一.HTML5与HTML4的区别 1. 取消了一些过时的HTML4的标签 其中包括纯粹显示效果的标记,如<font>和<center>,它们已经被 ...
- tomcat的服务器目录在哪个文件夹,Tomcat目录结构详细介绍
打开tomcat的解压之后的目录可以看到如下的目录结构: 1.Tomcat的bin目录: bin目录主要是用来存放tomcat的命令,主要有两大类,一类是以.sh结尾的(linux命令),另一类是以. ...
- 计算机硬件结构简略介绍
前言 计算机硬件结构简略介绍 一.计算机硬件 从软件开发者的角度来看,计算机硬件有三个部件最为关键,分别是中央处理器CPU. 内存.I/O控制芯片 二.早期 早期计算机,CPU的核心频率不高,和内存的 ...
最新文章
- 【java】巨菜博主安装jdk为什么每次都失败?
- linux iptables规则组成及用法
- PyObject_CallMethod
- assert()函数用法总结——转
- 【Node】—nrm的简单使用
- 基于KMeans的指数择时策略
- 卡内基梅隆大学计算机博士申请,2020年卡内基梅隆大学博士申请时间
- 微信公众平台的开发流程及其要点
- vue 批量下载图片并打包成压缩包
- 焱融科技与趋动科技携手解决一站式存算难
- android sdk manager 快速下载sdk
- 苹果cmsv10仿韩剧TV网电脑加手机高端模板免费下载
- java许愿墙_许愿墙 – javaee 项目实战(2)
- mysql rollback作用_innodb_rollback_on_timeout的作用
- return true return false 的区别
- 在FastReport2.8中打开frf文件,选择另存为fr3文件,这时FastReport4是不能打开该文件的。按下述步骤调整:
- DataStage_FAQ
- 猜数字游戏——Java图形界面
- 欢迎进入Hensen_的博客目录(全站式导航)
- 如何实现SIMOTION设备与CF卡的绑定
热门文章
- java+@api_Java 常用的api
- 成功解决AttributeError: module 'tensorflow' has no attribute 'scalar_summary'
- ML之回归预测:利用十(xgboost,10-1)种机器学习算法对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值——bug调试记录
- BigData:根据最新2018人工智能行业创新企业Top100名单,绘制AI地区热点图,一目了然,看清哪个是AI最热门城市,以及VC最AI的热门领域
- Linux绝对路径和相对路径简单介绍
- angularJS前台传list数组,后台springMVC接收数组
- ASP.NET Core 1.1 Preview 1 简介(包含.NETCore 1.1升级公告)
- MyBatis及Spring事务初学总结
- greenplum(一)
- STM32F103V IWDG 独立看门狗操作