当前位置: 首页 > 编程日记 > 正文

WMI技术介绍和应用——查询正在运行的线程信息

本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。

一般来说,如果试图枚举系统中的线程。需要先枚举系统中的进程,然后再枚举每个进程中的线程。而WMI给我们提供了一种比较简便的枚举线程信息的方法。(转载请指明出于breaksoftware的csdn博客)

如何使用WMI枚举所有线程的所有信息?

CSynQueryData recvnotify(L"root\\CIMV2",L"SELECT * FROM Win32_Thread" ); 
recvnotify.ExcuteFun();


        以下我粗略介绍下各个属性的应用。

如何使用WMI枚举正在运行的线程的占用时间?

CSynQueryData recvnotify(L"root\\CIMV2",L"SELECT ElapsedTime FROM Win32_Thread" );    
recvnotify.ExcuteFun();


        该时间是以毫秒(Milliseconds)为单位。

如何使用WMI枚举正在运行的线程的句柄

    CSynQueryData recvnotify(L"root\\CIMV2",L"SELECT Handle FROM Win32_Thread" );recvnotify.ExcuteFun();


        MSDN中说明,该句柄具有所有访问权限。
        如何使用WMI枚举正在运行的线程的内核时间?

    CSynQueryData recvnotify(L"root\\CIMV2",L"SELECT KernelModeTime FROM Win32_Thread" );recvnotify.ExcuteFun();

该时间以100纳秒为单位。

如何使用WMI枚举枚举正在运行的线程基础等级?

    CSynQueryData recvnotify(L"root\\CIMV2",L"SELECT PriorityBase FROM Win32_Thread" );recvnotify.ExcuteFun();


        该值是线程基数等级,可以选0~31之间的值。值越高,代表该线程等级越高。

如何使用WMI枚举枚举正在运行的线程动态等级?

CSynQueryData recvnotify(L"root\\CIMV2",L"SELECT Priority FROM Win32_Thread" );    
recvnotify.ExcuteFun();


        该等级是个动态调整的等级。系统通过该等级决定哪个线程享有CPU资源。除了动态等级,还有个基础等级概念。线程在初始化阶段会将动态等级设置成基础等级值。然后根据需要提升或者降低动态等级。只有基础等级在0~15的线程的动态等级才会被调整。而系统并不会提升基础等级在16~31的线程的动态等级。

如何使用WMI枚举所有正在等待非CPU资源的线程的等待原因?

    CSynQueryData recvnotify(L"root\\CIMV2",L"SELECT ThreadWaitReason FROM Win32_Thread Where ThreadState = 6" );recvnotify.ExcuteFun();

此处要说明两个字段的含义。TreadWaitReason字段代表线程等待的原因,而该字段只有在ThreadState为6时有效。ThreadState为6时代表该线程在等待非CPU资源。我们看下ThreadState的值说明

ValueMeaning
0Initialized — It is recognized by the microkernel.
1Ready — 该线程已经做好准备运行,等待下一个CPU资源。
2Running — 该线程正在运行。
3Standby — 该线程正准备运行。在一个时刻只有一个线程可以处于这种状态。
4Terminated — 该线程已经完成执行
5Waiting — 该线程还没做好运行的准备。当它处于Ready状态时,它将会被调度。
6Transition — 该线程在等待非CPU资源。
7Unknown — 该线程状态未知。

我们再看下TreadWaitReason字段的说明

ValueMeaning

0

Executive

1

FreePage

2

PageIn

3

PoolAllocation

4

ExecutionDelay

5

FreePage

6

PageIn

7

Executive

8

FreePage

9

PageIn

10

PoolAllocation

11

ExecutionDelay

12

FreePage

13

PageIn

14

EventPairHigh

15

EventPairLow

16

LPCReceive

17

LPCReply

18

VirtualMemory

19

PageOut

20

Unknown

如何使用WMI枚举线程状态(ThreadState)不是5(Waiting)的线程所在的进程ID?

    CSynQueryData recvnotify(L"root\\CIMV2",L"SELECT ProcessHandle FROM Win32_Thread Where ThreadState <> 5" );recvnotify.ExcuteFun();


        更多关于线程的信息可以参略Win32_Thread。

相关文章:

开源生态也难逃“卡脖子”危机?中国AI开发者的警醒和突围

开源不是一个新名词&#xff0c;也不是一个新行动。软件时代&#xff0c;开源推动了全球范围的创新技术成果落地&#xff0c;从而促进全球信息技术发生了全局性、持续性的重大变革&#xff0c;这使它甚至成为一条非常关键且成功的技术路线。随着AI时代的来临&#xff0c;阿里、…

Linux下应用软件的安装

对于刚刚接触Linux的朋友来说,安装一些应用软件是一件头疼的事,因为在Linux下安装应用软件和Windows下截然不同的&#xff0c;下面介绍一下Linux下安装应用软件来解决刚刚接触Linux而不会安装软件朋友的困惑.Linux下软件包有两种比较常见的形式,一种是以 RPM、deb包为代表的智能…

Hibernate 的 session.load()使用方法

2019独角兽企业重金招聘Python工程师标准>>> protected Person getOne(int id){ Session session HibernateSessionFactory.getSession(); Person person new Person(); try{ session.load(person, id); }catch(Exception e){ e.printStackTrace(); }final…

WMI技术介绍和应用——查询桌面信息

本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。 在Windows操作系统中&#xff0c;存在很多Windows Station。而每一个Windows Station又存在一个或者多个Windows Desktop。我们一般所说的桌面只是这些众多桌面中的一个。以下内容将介…

联泰集群发布水晶系列工作站,用于深度学习场景

北京时间2019年12月26日&#xff0c;联泰集群在北京正式发布了水晶系列工作站产品 W722、W7224和W5232。 联泰集群硬件产品技术中心总监刘振锋、软件产品技术中心总监孙建军、硬件产品技术中心工程师肖学文分别从应用方向、水晶工作站一体化软件平台及水晶系列产品硬件方面对本…

航空黑客私人YY

坐飞机从从云南飞回老家广州~~~当然绝对支持深圳航空啦!嘎嘎!为啥?当然是服务好 MM太PL了!呵呵!而且在看杂志的同时还看到了一则新闻 内容如下 近日&#xff0c;深圳航空公司与瑞士OnAir公司在香港签约&#xff0c;合作推动在飞机上实现万米高空的自由通信。2008年奥运会前&am…

Redis安装整理(window平台) +php扩展redis

window平台Redis安装 redis windows安装文件下载地址:http://code.google.com/p/servicestack/wiki/RedisWindowsDownload#Download_32bit_Cygwin_builds_for_Windows我选择的redis为最新版的安装文件&#xff0c;见下图&#xff1a; Redis安装文件解压后&#xff0c;有以下…

WMI技术介绍和应用——查询环境变量

本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。 我们可以通过系统属性查看当前系统和当前用户的环境变量。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 如何使用WMI枚举所有环境变量的信息&#xff1f; CSynQue…

想学新的编程语言?考虑下Go吧

作者 | Lewis Fairweather译者 | 弯月&#xff0c;责编 | Elle来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;【导读】快速的运行时、高效的并发、简单易学的语法&#xff0c;这些都是Go语言最吸引人的特性。以下为译文&#xff1a;Go语言的入门门槛之低令我感到惊…

oracle学习总结三(bulk collect用法)

通过bulk collect减少loop处理的开销发表人:logzgh | 发表时间: 2006年五月19日, 10:56采用bulk collect可以将查询结果一次性地加载到collections中。而不是通过cursor一条一条地处理。可以在select into,fetch into,returning into语句使用bulk collect。注意在使用bulk coll…

MQTT的学习研究(五) MQTT moquette 的 Blocking API 发布消息服务端使用

参看官方文档&#xff1a; http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp?topic/com.ibm.mq.amqtat.doc/tt00000_.htm * Java 为 MQ Telemetry Transport 创建异步发布程序 *在此任务中&#xff0c;您将遵循教程来修改第一个发布程序。通过修改&#xff0c…

WMI技术介绍和应用——查询驱动信息

本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。 如何使用WMI查询所有驱动信息&#xff1f;&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; CSynQueryData recvnotify(L"root\\CIMV2",L"SELECT * FR…

NumericUpDown

NumericUpDown控件主要功能是为一个TextBox控件添加上下按钮&#xff0c;当单击按钮时实现数字的加减&#xff0c;同时也可以提供静态数据&#xff0c;实现这些数据的上下选择。 属性列表&#xff1a; TargetControlID&#xff1a;该控件的目标作用控件。 Width&…

提高建模效率,改变手工作坊式生产,AutoML的技术研究与应用进展如何了?

整理 | 王银出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;【导读】12 月 5-7 日&#xff0c;由中国计算机学会主办&#xff0c;CCF 大数据专家委员会承办&#xff0c;CSDN、中科天玑协办的中国大数据技术大会&#xff08;BDTC 2019&#xff09;在北京长城饭店隆重举…

.net使用memcached

Windows中memached安装 -------------服务器端配置 1>开始>运行:CMD(确定) 2>cd C:\memcached&#xff08;回车&#xff09; 3>memcached -d install(回车 这步执行安装) 4>memcached -d start(回车 这步执行启动memcache服务器&#xff0c;默认分配64M内存&…

22张精炼图笔记,深度学习专项学习必备

作者 | DL&CV_study9编辑 | Elle来源 | CSDN 博客本文为人工智能学习笔记记录。【深度学习基础篇】一、深度学习基本概念监督学习&#xff1a;所有输入数据都有确定的对应输出数据&#xff0c;在各种网络架构中&#xff0c;输入数据和输出数据的节点层都位于网络的两端&…

WMI技术介绍和应用——查询文件夹信息

本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句&#xff0c;具体使用参看前面的例子。 本节主要介绍Win32_Directory类。通过该类我们将可以获得部分常用的文件夹信息。在该类中&#xff0c;有属性Name&#x…

CSLA .NET概述

CSLA是Component-based, Scalable, Logical Architecture的简写&#xff0c;CSLA .NET是Rockford Lhotka基于.Net设计的一套N-tier分布式框架。 CSLA .NET包含如下功能&#xff1a; l n-Level undo capability 译&#xff1a;n层撤销功能 l Tracking broke…

简短的几句js实现css压缩和反压缩功能

写在前面 最近一直在整理css&#xff0c;但因为现在Visual Studio 2013太智能了&#xff0c;它每每在我按ctrlED进行格式化代码的时候&#xff0c;就会将css进行层次格式化&#xff08;如下图所示&#xff09;&#xff0c;而这个格式让我老大实在无法忍受&#xff0c;我老大认为…

迁移学习前沿研究亟需新鲜血液,深度学习理论不能掉链子

作者 | Frederico Guth&#xff0c;Tefilo Emidio de Campos编译 | 夕颜出品 | AI科技大本营(ID:rgznai100)【导读】人类可以从很少的样本中学习&#xff0c;显示出了人类卓越的泛化能力&#xff0c;而这一点学习算法仍远做不到。当前&#xff0c;最成功的模型需要大量标记好的…

WMI技术介绍和应用——查询磁盘分区和逻辑磁盘信息

本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句&#xff0c;具体使用参看前面的例子。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 本节主要介绍Win32_DiskPartition和Win32_LogicalDisk两…

用 jQuery 的 AJAX 功能发现的一个错误/注意点:HTTP Error 411

今天程序中有个地方需要 Ajax 方式 POST 数据&#xff0c;发现在 IE 6.0 下正常&#xff0c;而 FireFox 2.0.0.9 下则出错。通过 FireBug 抓取 ajax 回发后得到的页面信息如下&#xff1a;HTTP Error 411 - Length required 经过 google 搜索发现&#xff0c;这个 HTTP 状态码对…

jquery 取消 radio checked 属性,重新选中的问题解决

<input type"radio" name"test"/> <input type"radio" name"test" id "input2"/> (说明&#xff1a;使用的jquery 版本是 1.10.2。) 使用 jquery 的removeAttr(),清除掉 radio 的checked属性后。使用 attr(…

使用×××版软件中常见的一些错误代码

1、错误代码&#xff08;691&#xff09;&#xff1a;由于域上的用户名或密码无效而拒绝访问。如果是使用的易游提供的服务器&#xff0c;请在帐务系统确认使用的帐号是否状态正常&#xff0c;刚设置好的帐号需要等5分钟才能使用。如果是外部服务器请直接找服务器提供商。2、错…

程序员在地铁写代码遭疯狂吐槽!网友:装什么装

01作为了解程序员这个行业的人来说程序员的工作真的很累加班已经成为他们的标签有的时候网站出事或者需求比较紧急的时候可能路边也是他们的工作场地所以这个时候对于程序员们的工作来说也是不分场合的02之前看到网上有人拍到程序员在地铁上写代码的照片并将之发到网络上 图片一…

如何定制一款12306抢票浏览器——构架

快春节了&#xff0c;火车票一票难求。虽然黄牛市场冷淡了&#xff0c;但是互联网“娱乐界”却越来越闹腾了。先是猎豹等浏览器推出抢票专版&#xff08;插件&#xff09;&#xff0c;然后是铁道部约谈金山&#xff0c;之后流传工信部叫停抢票插件&#xff0c;之后再是工信部出…

一些链接, 关于不可变数据

这篇笔记介绍不可变数据, Persistent Data Structure 和 Immutable. 但是不深入数据结构实现, 函数式编程理论. 定义 https://en.wikipedia.org/wiki/Persistent_data_structure In computing, a persistent data structure is a data structure that always preserves the pre…

囚犯学会编程之后会发生什么?

作者 | Simone Stolzoff译者 | 苏本如&#xff0c;责编 | 郭芮出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;【导读】Slack是硅谷一家多元化的公司&#xff0c;它雇佣了三名以前被监禁的程序员。但事实上&#xff0c;当一个人从监狱获释时&#xff0c;监禁的耻辱…

如何定制一款12306抢票浏览器——用户界面

用户界面 我不打算写个Windows界面。因为这个软件的全部就是个浏览器。我准备将”浏览器“进行到底&#xff0c;所以我选择使用html作为我们的用户界面。我也并不打算从头开始写一个浏览器&#xff0c;我使用了《内嵌IE网页窗口中消除IE默认脚本设置影响的方法》中基于WTL的浏览…

Study on Android【四】--显示控件使用

Android的界面显示同样也是基于控件的。通常是用View&#xff08;包括ViewGroup&#xff09;控件配上XML的样式来做的。具体细节不想说了&#xff0c;可以参考 Samples里的ApiDemos/View&#xff0c;和View的Doc&#xff0c;以及Implementing a UI这篇Doc。其他还有很多&#x…