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 结构体属性介绍相关推荐

  1. KTHREAD 结构体属性介绍

    typedef struct _KTHREAD {//// The dispatcher header and mutant listhead are fairly infrequently// re ...

  2. ETHREAD 结构体属性介绍

    typedef struct _ETHREAD {KTHREAD Tcb;// 线程创建时间LARGE_INTEGER CreateTime;union {// 线程退出时间LARGE_INTEGER ...

  3. Zookeeper C API 基本常量和结构体介绍

    Zookeeper 监视(Watches) 简介 Zookeeper C API 的声明和描述在 include/zookeeper.h 中可以找到,另外大部分的 Zookeeper C API 常量 ...

  4. phpcmsV9 默认主题模板(templates文件目录结构)介绍

    phpcmsV9 默认主题模板(templates文件目录结构)介绍 介绍如下: 介绍如下: 这篇文章则详细的介绍一下系统自带默认模板的文件目录结构.主题模板位于"-\phpcms\temp ...

  5. Ubuntu目录结构简单介绍笔记

    一.Ubuntu目录结构简单介绍 Ubuntu目录结构简单介绍  /根目录   1.boot/启动文件.所有与启动有关的文件都保存在这里 ·grub/ Grub引导器相关的文件 2.dev/设备文件 ...

  6. 下面是html5中新增的结构元素的是,HTML5的新的结构元素介绍

    HTML5的新的结构元素介绍 一.HTML5与HTML4的区别 1. 取消了一些过时的HTML4的标签 其中包括纯粹显示效果的标记,如和 ,它们已经被 CSS完全取代. 其他取消的属性:acronym ...

  7. HTML5的新的结构元素介绍

    HTML5的新的结构元素介绍 一.HTML5与HTML4的区别 1. 取消了一些过时的HTML4的标签 其中包括纯粹显示效果的标记,如<font>和<center>,它们已经被 ...

  8. tomcat的服务器目录在哪个文件夹,Tomcat目录结构详细介绍

    打开tomcat的解压之后的目录可以看到如下的目录结构: 1.Tomcat的bin目录: bin目录主要是用来存放tomcat的命令,主要有两大类,一类是以.sh结尾的(linux命令),另一类是以. ...

  9. 计算机硬件结构简略介绍

    前言 计算机硬件结构简略介绍 一.计算机硬件 从软件开发者的角度来看,计算机硬件有三个部件最为关键,分别是中央处理器CPU. 内存.I/O控制芯片 二.早期 早期计算机,CPU的核心频率不高,和内存的 ...

最新文章

  1. 【java】巨菜博主安装jdk为什么每次都失败?
  2. linux iptables规则组成及用法
  3. PyObject_CallMethod
  4. assert()函数用法总结——转
  5. 【Node】—nrm的简单使用
  6. 基于KMeans的指数择时策略
  7. 卡内基梅隆大学计算机博士申请,2020年卡内基梅隆大学博士申请时间
  8. 微信公众平台的开发流程及其要点
  9. vue 批量下载图片并打包成压缩包
  10. 焱融科技与趋动科技携手解决一站式存算难
  11. android sdk manager 快速下载sdk
  12. 苹果cmsv10仿韩剧TV网电脑加手机高端模板免费下载
  13. java许愿墙_许愿墙 – javaee 项目实战(2)
  14. mysql rollback作用_innodb_rollback_on_timeout的作用
  15. return true return false 的区别
  16. 在FastReport2.8中打开frf文件,选择另存为fr3文件,这时FastReport4是不能打开该文件的。按下述步骤调整:
  17. DataStage_FAQ
  18. 猜数字游戏——Java图形界面
  19. 欢迎进入Hensen_的博客目录(全站式导航)
  20. 如何实现SIMOTION设备与CF卡的绑定

热门文章

  1. java+@api_Java 常用的api
  2. 成功解决AttributeError: module 'tensorflow' has no attribute 'scalar_summary'
  3. ML之回归预测:利用十(xgboost,10-1)种机器学习算法对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值——bug调试记录
  4. BigData:根据最新2018人工智能行业创新企业Top100名单,绘制AI地区热点图,一目了然,看清哪个是AI最热门城市,以及VC最AI的热门领域
  5. Linux绝对路径和相对路径简单介绍
  6. angularJS前台传list数组,后台springMVC接收数组
  7. ASP.NET Core 1.1 Preview 1 简介(包含.NETCore 1.1升级公告)
  8. MyBatis及Spring事务初学总结
  9. greenplum(一)
  10. STM32F103V IWDG 独立看门狗操作