阅读:2229回复:5
startIo,ISR,DpcForIsr例程指什么?
我看到一些书中提到驱动程序必须包含startIo,ISR,DpcForIsr例程
,指哪几部分?请指教!谢谢了 |
|
|
沙发#
发布于:2001-08-09 19:26
作上层驱动用不到吧?
|
|
|
板凳#
发布于:2001-08-10 11:22
1)一般对I/O 的操作是要求排队一个个执行的,STARTIO就是干这个的,在你处理完一个I/O,就调用IOSTARTPACKET就可以将队列中的IRP,发送给STARTIO,一个个处理(注意区分,IOSTARTNEXTPACKET)
2)ISR (INTERRUPT SERVICE INTERRUPT),用于服务中断的。 3)DPCFORISR是ISR的推迟过程调用,因为ISR的执行是在DIRQL,高于Dispatch_Level,级别较高,不可以被同级和低级的IRQL抢占,所以次代码运行时间应该尽量简短,在这个级别上不应该过多地占用CPU时间,所以,如果有大量的数据/IOCOMPLETEIRP(IRP的完成非常耗时,涉及一个回卷过程),则应该放在DPC里运行,运行在DISPATCH――LEVEL级 4)我不知道,你的上层指的是什么? 这些都是DDK里最简单的内容,还是好好看DDK吧,否则一时半会也无法说的清楚的! |
|
地板#
发布于:2001-08-12 21:11
我的意思是说并不是所有的驱动都必须些这三个部分吧?
|
|
|
地下室#
发布于:2001-08-13 10:02
当然不是必须的。
比如你的设备就没有中断,何来ISR DCPFORISR?(网卡设备小端口驱动就可以没有中断,而用定时器POLLING,且也没有IOSTARTIO) |
|
5楼#
发布于:2001-08-13 19:21
那我做USB上层驱动,好像就不需要这几个例程?
太谢谢了 收益匪浅 给分 |
|
|