阅读:1113回复:10
大家怎么实现数据缓冲区队列的?1000分用户被禁言,该主题自动屏蔽! |
|
沙发#
发布于:2004-08-11 15:10
友情蹭分
|
|
板凳#
发布于:2004-08-11 15:14
加一个控制,好叫别同时访问。
|
|
地板#
发布于:2004-08-11 15:19
用户被禁言,该主题自动屏蔽! |
|
地下室#
发布于:2004-08-11 16:00
[quote]加一个控制,好叫别同时访问。 怎么加好呢?用什么同步比较好呢? [/quote] 还没有想好! |
|
5楼#
发布于:2004-08-11 16:30
关注中…………………… :D
|
|
6楼#
发布于:2004-08-11 16:55
是指DIRQL吗?那还同步什么?在DIRQL访问的时候passive能访问吗? :D
循环的?弄2个指针,一头(初始指向0)一尾(初始化指向0-1,就是n了:D),DIRQL写数据的时候header++,如果发现它前面是tail了说明满了写不下了;passive取数据的时候tail++,如果发现它前面是header,说明空了,没数据了。不能用header==tail判断,因为空的满的时候都是这样的,不过浪费了一点点而已。 :D :D |
|
7楼#
发布于:2004-08-11 17:00
用户被禁言,该主题自动屏蔽! |
|
8楼#
发布于:2004-08-11 17:16
在dirql就增加header,可能会:1、(passive)判断空的时候错,header实际更大些,但是不影响呀,不过是少取几个数据,下次取呗;D;2、(dirql)判断满的时候错,其实还有些空位置的,不过我想你应该设计的不会出现满的情况才对,不然不就丢数据了:D
或者还是event,在dirql请求dpc,然后在dpc setevent,激活passive的thread,或考虑用双buffer :D 骗tom的分不容易呀,很就没有打那么多字了 :D :P |
|
9楼#
发布于:2004-08-11 17:22
用户被禁言,该主题自动屏蔽! |
|
10楼#
发布于:2004-08-11 17:27
难不成你想用KeSynchronizeExecution来改变参数?
|
|