阅读:1366回复:6
开发驱动必须明白的问题!!
这两天看到一个概念搞不太明白!
什么样的例程叫做回调例程? 有具体的定义吗? 为什么它要运行在dispatch level? 请各位高手指点。 谢谢!! |
|
|
沙发#
发布于:2004-11-17 11:18
这个问题可能很难说得很清楚。
回调在C语言中是通过函数指针来实现的,通过将回调函数的地址传给被调函数从而实现回调。 首先得知道什么是回调,我觉得下面这个帖子讲的挺好: http://www-900.ibm.com/developerWorks/cn/linux/l-callback/index.shtml |
|
|
板凳#
发布于:2004-11-17 12:19
非常感谢大虾的指点,
这里的回调例程应该跟那里所提到的 回调函数是一个概念吧。 小弟有点明白了, 还有一点它为什么要运行在dispatch level呢? 不知道大虾想过没有? |
|
|
地板#
发布于:2004-11-17 12:34
可以以回调函数的概念理解DpcForIsr是一个回调例程,
但对于StartIo就不好理解了 :( 不管怎样还是感谢大虾!! ;) |
|
|
地下室#
发布于:2004-11-25 16:35
后面一个问题
你要说应该的DPC的回调函数为什么工作dispatch层 DPC 一般用在中断程序中, 如果一个中断程序占用系统太多的时间 用户就会感到系统的性能降低,响应较慢 所以 中断程序一般只在中断例程中做必做的工作 , 其它可以后推的工作交由DPC处理, 当IRQL降到 >= DISPATCH_LEVEL 时, DPC才会得到处理, 所以说,在编写 DPC回调例程时,是假设它的IRQL<= DISPATCH_LEVEL [编辑 - 11/25/04 by comealong] |
|
5楼#
发布于:2004-11-25 17:28
谢谢fslife的文章。
|
|
|
6楼#
发布于:2004-11-25 17:28
谢谢fslife提供的文章。
|
|
|