当前位置: 首页 > news >正文

查询句柄引用计数源码

#include "stdafx.h"
#include <iostream> 
#include <windows.h> 
using namespace std;

typedef   struct   _SYSTEM_HANDLE_STATE   { 
	DWORD   r1; 
	DWORD   GrantedAccess; 
	DWORD   HandleCount;   //   减1为句柄计数 
	DWORD   ReferenceCount;   //   减1为指针引用计数 
	DWORD   r5; 
	DWORD   r6; 
	DWORD   r7; 
	DWORD   r8; 
	DWORD   r9; 
	DWORD   r10;   
	DWORD   r11;   
	DWORD   r12;   
	DWORD   r13;   
	DWORD   r14;   
}SYSTEM_HANDLE_STATE,   *PSYSTEM_HANDLE_STATE;

typedef long(__stdcall*PNtQueryObject)(HANDLE ObjectHandle,ULONG ObjectInformationClass,PVOID ObjectInformation,ULONG ObjectInformationLength,PULONG ReturnLength);

int main(){
	PNtQueryObject NtQueryObject(reinterpret_cast<PNtQueryObject>(GetProcAddress(GetModuleHandleW(L"ntdll.dll"),"NtQueryObject")));
	SYSTEM_HANDLE_STATE name,*pname;ULONG len;
	HANDLE hEvent1=CreateEvent(NULL, TRUE, FALSE, NULL);
	BOOL bRet = NtQueryObject(hEvent1,0,&name,sizeof name,&len);
	cout<<bRet<<endl;
	wcout<<name.HandleCount<<"  "<<name.ReferenceCount<<endl;
	CloseHandle(hEvent1);
	bRet = NtQueryObject(hEvent1,0,&name,sizeof name,&len);// 0为查询对象的当前状态,包括句柄计数,引用计数等等
	printf("%I32X\n", bRet);//返回0xC0000008,在windows内核中表示无效句柄,说明已经关闭句柄了
	
	return 0;
}

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

 

转载于:https://www.cnblogs.com/qq76211822/p/4712038.html

相关文章:

  • PHP 启动 cURL模块以及启动失败的解决方案
  • selenium webdriver 学习笔记(三)
  • 4在二元树中找出和为某一值的所有路径
  • Android.Hack.02_Animations
  • [转]Asp.net MVC中Html.Partial, RenderPartial, Action,RenderAction 区别和用法
  • PowerManager Android 电源管理
  • ZeroMQ接口函数之 :zmq_strerror - 获取ZMQ错误描述字符串
  • 世界国家省份城市县区街道村地址邮编常用通用功能最全API - 多级联动 - 淘宝天猫阿里巴巴技术赏析...
  • ×××S 2012 Report Items -- 独立报表单元
  • 基于Netty与RabbitMQ的消息服务
  • 32_使用BeanUtils工具包操作JavaBean
  • 常用HTTP状态码
  • 怎样将U盘设置成只读属性
  • Sum、if、mod隔列求和
  • 有关android 应用的plugin框架调研
  • 网络传输文件的问题
  • Angular 响应式表单 基础例子
  • Fastjson的基本使用方法大全
  • IP路由与转发
  • Node项目之评分系统(二)- 数据库设计
  • Windows Containers 大冒险: 容器网络
  • 记一次删除Git记录中的大文件的过程
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 手机端车牌号码键盘的vue组件
  • 微信小程序--------语音识别(前端自己也能玩)
  • 学习Vue.js的五个小例子
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • FaaS 的简单实践
  • 关于Android全面屏虚拟导航栏的适配总结
  • #ifdef 的技巧用法
  • #单片机(TB6600驱动42步进电机)
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (zhuan) 一些RL的文献(及笔记)
  • (六)激光线扫描-三维重建
  • (十一)手动添加用户和文件的特殊权限
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • .gitignore
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .net 生成二级域名
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .NET6 开发一个检查某些状态持续多长时间的类
  • /bin、/sbin、/usr/bin、/usr/sbin
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • [ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧
  • [] 与 [[]], -gt 与 > 的比较
  • []新浪博客如何插入代码(其他博客应该也可以)
  • [100天算法】-二叉树剪枝(day 48)
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [ActionScript][AS3]小小笔记