阅读:1623回复:13
向大家请教一个问题,wdm程序运行在分时状态?还是实时状态?
如果要让我的wdm驱动运行在实时状态该如何做?
运行在中断级? |
|
|
沙发#
发布于:2002-07-01 13:20
windows操作系统本身就不是实时操作系统
一定要实时,那只能换操作系统了 |
|
|
板凳#
发布于:2002-07-01 13:20
wdm当然也要被分时。
在中断。 到底要干什么,可不可以说出来大家一起看看? |
|
地板#
发布于:2002-07-01 13:34
如何用并口产生一系列方波?需要准确,如果不是实时性,该怎么保证波形呢?
我也知道windows不是实时的,呵呵! 可以修改系统程序的优先级来达到一定的目的! 但是毕竟不是很好,我需要的是一段时间之内的实时性!比如10s之内!其他就不需要了! 希望在wdm程序中达到这个目的! 以前有朋友问过,好像wdm程序有好几种级别,是不是运行在中断级别最高? 还是怎么的? |
|
|
地下室#
发布于:2002-07-01 13:43
那就在中断里面产生你的波形,应该够了。
|
|
5楼#
发布于:2002-07-01 13:49
如何用并口产生一系列方波?需要准确,如果不是实时性,该怎么保证波形呢? 需要实时的话有实时NT系统。 不过好像你只是想不让系统中断你的程序,提升IRQL至DISPATCH_LEVEL可暂停系统调度,屏掉额外中断可暂停中断。后者有副作用,可能一般前者足够了(方波频率不太高)。 |
|
6楼#
发布于:2002-07-01 14:10
呵呵,谢谢!
我也就是这么想的,但具体在那里设置? 我找了win2000 wdm程序设计,没有找到嘛 具体用什么命令或者进行那方面的参数设置? 再次感谢,解决问题给分! |
|
|
7楼#
发布于:2002-07-01 14:24
我也就是这么想的,但具体在那里设置
-------------------------------------------------------------------------- 设置什么?提升IRQL么?KeRaiseIrqlToDpcLevel/KeRaiseIrql/KeLowerIrql。 你访问并口的程序在什么例程里?在dispatch例程里的话在访问前用上面的函数。 在startio例程里你不必做什么,它就是合适的IRQL,除非你觉得还是被中断抢断的太多,你可多提升一些(最好不要高过时钟) |
|
8楼#
发布于:2002-07-01 14:58
提升以后不需要将下来吧?
还是需要手动设置将级别降下来? 感谢! |
|
|
9楼#
发布于:2002-07-01 15:02
当然要降,用KeLowerIrql
越快越好,否则你的系统像死机一样 |
|
10楼#
发布于:2002-07-01 15:08
是吗?
多谢大侠! 我试试看! 提升可以达到最高级别是多少? 能达到系统控制级别吗? 有人说可以中断实时时钟,有没有这回事? |
|
|
11楼#
发布于:2002-07-01 15:13
是吗? 可以,最大为31,不过不是说了不要这么高么。 |
|
12楼#
发布于:2002-07-01 15:19
非常感谢
以后又问题还望不吝指教! |
|
|
13楼#
发布于:2002-07-01 15:25
by the way,
提升后你不能访问分页内存,若提的比DISPATCH_LEVEL更高很多服务函数都不能用了。 |
|