我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:双彩网 > 执行例程 >

DPC - yjz1409276的专栏

归档日期:06-28       文本归类:执行例程      文章编辑:爱尚语录

  DeferredProcecure Call,延迟过程调用。是一种执行在任意线程上下文的DISPATCH_LEVEL层的可执行例程。硬件中断使用他们处理来自设备的中断。硬件驱动这样做是因为ISR通常运行在更高IRQLs(高于DISPATCH_LEVEL),如果他们花费太长时间,可能会降低系统的整体性能。因此,ISR典型的队列一个DPC并且马上返回,所以系统可以处理其它的中断请求。软驱动能使用DPCs快速的执行短任务。

  每一个CPU保持着他们自己拥有的DPC队列。这个队列存放在CPU相关的KPRCB结构体中。一个是普通的DPC队列,另外一个是线程DPC队列。

  运行在DISPATCH_LEVEL这个IRQL上的线程不能被其它软中断(低于DISPATCH_LEVEL)打断。换句话说,如果在DPC例程里有一个死循环,和它相关的CPU便会一直自旋,使得系统看起来好像被冻结了。在多处理器上,或许不会被冻结但是执行这个DPC的处理器将不能被线程调度器使用。另外,DPC例程中不能等待任何的可分发对象,因为这些分发对象他们自己就运行在DISPATCH_LEVEL,这就是为什么相KeWaitForSingleObject和KeDelayExecuteThread不能在DPC例程中被调用的原因。

  一些RootKits用DPC来同步访问全局链表。例如,可以从ActiveProcessLinks中移除一个实体来隐藏进程。因为这个链表能被任意处理器在任何时候修改,一些RootKits作者使用DPC连同其它同步机制来安全的处理这个问题。

  x86架构设计在上是基于中断思想的,因而从DOS到Win32,操作系统中大量使用中断的概念来表达异步操作的行为。但与DOS下独占的情况不同,Win32下需要由系统对多任务进行调度,因此中断响应代码必须...博文来自:shenjin_s的博客

  DPC的使用方法DPC即为DeferredProcedureCall,顾名思义就是在一段时间之后调用某一例程或函数。如果想要隔一段时间就执行自己所写的函数,那么我们可以用DPC,当然也可以用IoTim...博文来自:ming_taizi的博客

  概述介绍图像传感器中的传感器上每一光线采集的点形成的阵列工艺存在缺陷,或光信号进行转化的过程中出现错误,会造成所撷取的图像上有些像素的信息有误,导致图像中的像素值不准确,这些有缺陷的像素即为图像坏点(...博文来自:番茄土豆的博客

  每个设备对象中都含有一个KDPC对象,DEVICE_OBJECT中有一个内置的DPC对象Dpc。当在驱动程序的AddDevice例程创建了设备对象后,如果需要用DPC例程就要在AddDevice例程中...博文来自:漂飘渔人

  windows内核原理分析之DPC函数的执行(3)windows内核什么时候会扫描DPC请求队列,执行这些DPC函数呢?答案是,每当CPU的运行级别从DISPATCH_LEVEL或以上降低到DISPA...博文来自:yushui的笔记本

  [cpp] viewplain copy关于内核定时器,及DPC的使用,看来一些代码,这个估计是比较规范的用法了,很基础,希望对新手有帮助  注意,这里的定时器不太精确!  [cpp] viewpla...

  最近本人的电脑发生了几点变化:第一是跟同事换了条比原来小的内存,助人为乐了;第二是安装了BusHound。之后电脑不太流畅是实情,但是更悲剧的事情在后面:每次弹出u盘的时候电脑都会死机,并且出现DPC...

  首先来说中断计算机的中断分为软中断和硬中断,即IRQL和DIRQL,共32个级别,从0~31级别依次提升,0~2属于软中断一般线程运行于PASSIVE_LEVEL级别,如果不想在运行时切换到其他线程,...

  DPC不同APC,DPC的全名是‘延迟过程调用’。DPC最初作用是设计为中断服务程序的一部分。因为每次触发中断,都会关中断,然后执行中断服务例程。由于关中断了,所以中断服务例程必须短小精悍,不能消耗过...

  -DPC(延迟过程调用)的细节NTINSIDER,16卷,1期,1至2月2009延迟过程调用(DPC)是一种Windows常用功能。用途是广泛和多样的,但最常用的是我们通常所说的“ISR完成”和Win...

  当驱动程序处理IRP的时候,它可能立刻完成,也可能在中断里才能完成,比如说,往硬件设备发出一个请求(通常可以是写I/Oport),当设备完成操作的时候会触发一个中断,然后在中断处理函数里得到操作结果。...

  根据我的理解:它好像也是一种CPU中断,让高priority的任务先执行,稍后再执行低prioritys的任务,也就是延迟过程调用了.但是它并不算在%interrupt的里面,它有一个单独的perf...

  阿里云大数据处理工具DPC可用性分析与案例采云间(DataProcessCenter,简称DPC)是基于开放数据处理服务(ODPS)的DW/BI的工具解决方案。DPC提供全链路的易于上手的数据处理工具...

  DPC资料 详细讲述了windows驱动中关于DPC例程的原理和使用方法!

  在使用分页内存的时候,可能会导致页故障。因为分页内存随时可能从物理内存交换到磁盘文件。读取不在物理内存中的分页内存的时候。会引发一个页故障。出现异常处理。异常处理函数会重新将磁盘文件的内容交换到物理内...

  C#实现开发windows服务实现自动从FTP服务器下载文件(自行设置分/时执行)06-10阅读数 3万+

  jquery/js实现一个网页同时调用多个倒计时(最新的)11-25阅读数 54万+

  lycommand:按照你的办法,编译ReactOS-0.3.3,桌面上并没有出现注册表文件,不知道怎么回事

本文链接:http://guidoon.com/zhixinglicheng/164.html