windows笔记-内核对象

有哪些内核对象?

如下:存取符号对象、事件对象文件对象文件映射对象、I / O 完成端口对象、作业对象、信箱对象互斥对象、管道对象、进程对象信标对象线程对象等待计时器对象等。这些对象都是通过调用函数来创建的。

 

什么是内核对象?

内核对象只是内核分配的一个内存块,并且只能由该内核访问。该内存块是一种数据结构,它的成员负责维护该对象的各种信息。有些数据成员(如安全性描述符、使用计数等)在所有对象类型中是相同的,但大多数数据成员属于特定的对象类型。例如,进程对象有一个进程I D 、一个基本优先级和一个退出代码,而文件对象则拥有一个字节位移、一个共享模式和一个打开模式。


内核对象的数据结构只能被内核访问,因此应用程序无法在内存中找到这些数据结构并直接改变它们的内容Microsoft 规定了这个限制条件,目的是为了确保内核对象结构保持状态的一致。这个限制也使Microsoft能够在不破坏任何应用程序的情况下在这些结构中添加、 删除和修改数据成员。


当调用一个用于创建内核对象的函数时,该函数就返回一个用于标识该对象的句柄。为了使操作系统变得更加健壮,这些句柄值是与进程密切相关的。因此,如果将该句柄值传递给另一个进程中的一个线程,那么这另一个进程使用你的进程的句柄值所作的调用就会失败。如果想在多个进程中共享内核对象,要通过一定的机制

如对象句柄的继承性,命名对象,复制对象句柄。

 

  除了内核对象外,你的应用程序也可以使用其他类型的对象,如菜单、窗口、鼠标光标、刷子和字体等。这些对象属于用户对象图形设备接口(GDI)对象,而不是内核对象。

 

当初次着手为若要确定一个对象是否属于内核对象,最容易的方法是观察创建该对象所用的函数。创建内核对象的所有函数几乎都有一个参数,你可以用来设定安全属性的信息(请参考windows笔记-内核对象的安全性)。

 

下面列出了部分用于创建内核对象的一些函数:

HANDLE CreateThread(
PSECURITY_ATTRIBUTES psa,
DWORD dwStackSize,
PTHREAD_START_ROUTINE pfnStartAddr,
PVOID pvParam,
DWORD dwCreationFlags,
PDWORD pdwfhreadId);

HANDLE CreateFile(
PCTSTR pszFileName,
DWORD dwDesiredAccebS,
DWORD dwShareMode,
PSECURITY_ATTRIBUTES psa,
DWORD dwCreationDistribution,
DWORD dwFlagsAndAttnbutes,
HANDEE hTemplateFile);

HANDLE CreateFileMapping(
HANDLE hFile,
PSECURITY_ATTRIBUTES psa,
DWORD flProtect,
DWORD dwMdximumSizcHigh,
DWORD dwMaximumSizeLow,
PCTSTR pszName);

HANDLE CreateSemaphore(
PSECURITY_ATTRIBUTES psa,
LONG lInitialCount,
LONG lMaximumCount,
PCTSTR pszName);

本文地址:http://www.cnblogs.com/fangyukuan/archive/2010/08/31/1813117.html

 

 

转载于:https://www.cnblogs.com/fangyukuan/archive/2010/08/31/1813117.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/263802.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django-你想知道的都在这里

1.Django初识 路由层 模板层 ORM层 其他小细节 2.Django进阶 form组件|form细节 Cookie 与 Session 中间件与auth RESTFUL Redis Celery框架 全文检索 反向代理和正向代理 虚拟环境 第三方依赖包 偏函数 长轮询与轮询 转载于:https://www.cnblo…

oracle ora06576,创建oracle发邮件job导致的故障

前几天创建了个发邮件的存储过程,想把数据库每天的运行情况自动发到邮箱,没想到第二天就出了问题,在dbms/trace目录下产生了大量的xxx_j000_xxx.trc文件,一分钟产生2个。alter日志报ora-12012、ora-06576错误,出现sys.…

MediatR 知多少 - 简书

MediatR 知多少 - 简书 原文:MediatR 知多少 - 简书引言 首先不用查字典了,词典查无此词。猜测是作者笔误将Mediator写成MediatR了。废话少说,转入正题。 先来简单了解下这个开源项目MediatR(作者Jimmy Bogard,也是开源项目AutoMa…

oracle数据库扩展目录,Oracle 扩充磁盘空间

Oracle 扩充磁盘空间环境:OS:Oracle Linux Server release 6.3DB:Oracle 11.2.0.4.0问题:根目录磁盘空间不足,还剩6.5G解决办法:扩容磁盘空间;由于安装操作系统时没有使用LVM,不能直接扩容根目录&#xff0…

Java开发中的23种设计模式详解

http://www.cnblogs.com/maowang1991/archive/2013/04/15/3023236.html转载于:https://blog.51cto.com/6103630/1612463

Hibernate中对增删改查的小结

Hibernate中对增删改查的小结mysql中库表News,字段如下id | int | auto_increment | primary keytitle | varcharcontent | varchardate | varchar 1:Hibernate的insert操作 Session session HibernateSessionFactory.getSession(); …

C++ replace replace_if replace_copy replace_copy_if

#include <iostream>#include <list>#include <algorithm>#include <iterator>#include <functional> using namespace std; int main(){  list<int> list1;  list<int> list2; for (int k0;k<10;k)  {    list1.push_…

oracle追加index,oracle add index

1.索引分类a) 唯一索引, 作用是数据约束&#xff0c;保证数据唯一&#xff0c;还有就是数据索引&#xff0c;提高查询效率b)一般索引&#xff0c;只有数据索引的作用&#xff0c;2.唯一索引的建立create unique index 索引名on 表名(字段名)ok,假设有一个Emploeyy表&#xff0c…

centons7网卡配置文件使用openvswitch bridge

今天发现还有另外的方法给ovs添加bridge、绑定网卡等操作&#xff0c;此前我都是这般操作ovs-vsctl add-br br-ex; ovs-vsctl add-port br-ex eth0&#xff0c;这样操作的结果会保存在openvswitch的conf.db里面。现在只需要在网卡配置文件中指定即可&#xff0c;适用于网卡数量…

Linux进程线程学习笔记:运行新程序

Linux进程线程学习笔记&#xff1a;运行新程序 周银辉 在上一篇中我们说到&#xff0c;当启动一个新进程以后&#xff0c;新进程会复制父进程的大部份上下文并接着运行父进程中的代码&#xff0c;如果我们使新进程不运行原父进程的代码&#xff0c;转而运行另外一个程序集中的代…

什么是闭包?闭包的优缺点?

什么是闭包&#xff1f;闭包的优缺点&#xff1f; 闭包&#xff08;closure&#xff09;是javascript的一大难点&#xff0c;也是它的特色。很多高级应用都要依靠闭包来实现。 1、变量作用域 要理解闭包&#xff0c;首先要理解javascript的特殊的变量作用域。 变量的作用域无非…

oracle不同库之间传送文件,EXCEL与ORACLE间的数据互传法数据库 -电脑资料

众所周知&#xff0c;MicrosoftExcel能很直观而方便地进行数据输入&#xff0c;统计&#xff0c;生成图表&#xff0c;但它的数据管理能力有限&#xff0c;对大量的数据查询能力不足&#xff0c;如果利用它数据计算方面的优点和大型 数据库 ORACLE的数据查询优点&#xff0c;可…

使用ANT打包Android应用

大家好&#xff0c;今天来分享一下如何使用ANT打包Android应用。 通常我们习惯用eclipse来开发Android程序&#xff0c;它会自动帮我们打包当前的应用程序。如果在Navigator视图下&#xff0c;我们可以看到以下几个文件&#xff1a; 在上图中&#xff0c;com包放置的是我们的cl…

迷你飞信一出,LibFetion该挂了把

飞信确实是个好东西&#xff01; 发短信不要钱 支持群发&#xff0c;这样发个通知什么的&#xff0c;可以轻松搞定 但是以前的飞信客户端太庞大了 好几十M呢 而且光大还多了很多没有用的功能 比如&#xff1a;什么飞信空间啊&#xff0c;网上营业厅&#xff0c;彩信&#xff0c…

oracle t7-2报价,Sun/Oracle T7-2服务器主板7315607全新7318270原装7318240

Sun/OracleT7-2服务器主板7315607全新7318270原装7318240为便于产品发布和因市场行情随时变动&#xff0c;产品所有信息及价格请以实际咨询为准&#xff01;谢谢&#xff01;&#xff01;Sun/Oracle T7-2服务器主板7315607 System Board Assembly 7318270•530-3510 Interlock …

OSI

OSI&#xff08;开放系统互联(Open System Interconnection)&#xff09; OSI是Open System Interconnection的缩写&#xff0c;意为开放式系统互联。国际标准化组织&#xff08;ISO&#xff09;制定了OSI模型&#xff0c;该模型定义了不同计算机互联的标准&#xff0c;是设计和…

asp.net发送邮件时在正文中插入图片

#region 发送邮件 /// <summary> /// 通过附件发送邮件 /// </summary> /// <param name"emailFrom">发送人邮箱地址</param> /// <param name"files">图片地址</param>/// <param na…

Java设计模式(1)工厂模式(Factory模式)

工厂模式定义&#xff1a;提供创建对象的接口。 为何使用工厂模式 工厂模式是我们最常用的模式了&#xff0c;著名的Jive论坛&#xff0c;就大量使用了工厂模式&#xff0c;工厂模式在Java程序系统可以说是随处可见。为什么工厂模式是如此常用&#xff1f;因为工厂模式就相当于…

cmd使用另一个Oracle的sid,(转发备用)Oracle SID在本机上已经存在,请指定一个不同的SID”的解决办法...

(转发备用)Oracle SID在本机上已经存在,请指定一个不同的SID”的解决办法(2014-04-30 10:57:17)1、 开始&#xff0d;&#xff1e;设置&#xff0d;&#xff1e;控制面板&#xff0d;&#xff1e;管理工具&#xff0d;&#xff1e;服务 停止所有Oracle服务。2、 开始&#xff0…

$Poj1952\ $洛谷$1687\ Buy\ Low,Buy\ Lower$ 线性$DP+$方案计数

Luogu Description 求一个长度为n的序列a的最长下降子序列的长度,以及这个长度的子序列种数,注意相同的几个子序列只能算作一个子序列. n<5000,a[i]不超过long范围 Sol 求最长下降子序列的长度: 1.f[i]表示以a[i]结尾的最长下降子序列长度 2.f[i]表示以i结尾的最长下降子序列…