驱动小牛
![]() |
20楼#
发布于:2005-02-19 17:00
关注!我也有个类似程序,想请教大家.
|
21楼#
发布于:2005-02-24 20:55
我开辟了个共享队列由应用和驱动来共同维护此队列 |
|
22楼#
发布于:2005-02-25 08:16
请问4怎么实现?
在驱动中怎么实现多线程? |
|
23楼#
发布于:2005-03-02 11:54
用户被禁言,该主题自动屏蔽! |
|
24楼#
发布于:2005-03-24 20:26
我按照chili的方法做了,但是没有解决丢包的问题,主要是同步和队列的大小没设置好,请大家帮忙。
这地方我设置pRevQueue大小为9500,大概能接受6个包(1514),pRevQueue我用的是一个非分页内存,为了防止分页问题,这地方我不敢设得比较大,请问这地方设多大最好呀,还有就是这地方必须要采用非分页内存吗? 一个接受包的队列:pRevQueue; 每个节点:包的内容+flag flag=0 未处理,flag=1 已处理 这个队列我通过一个pRevEvent来控制同步的 在驱动层: 网卡上传来一个包packet; pNode=CreatNode(packet);//根据packet建立一个queue node 其中flag=0 EnQueue(pRevQueue,pNode);//pNode进入队列(在pNode进入队列时,先对flag=1的Node作删除操作 KeSetEvent(pRevEvent, 0, FALSE);//这地方我采用事件通知上层,请问这用这个方法好吗?还有没有其它的方法? 在应用层: while(repeat) { WaitForSingleObject(mpRevEvent,INFINITE);//mpRevEvent与pRevEvent相关联 while(IsNotEmpty(mpRevQueue)) { ModifyQueue(mpRevQueue,pNode);//取出flag=0的node,并且将其flag设为1 //对pNode进行处理 } ResetEvent(mpRevEvent); } [编辑 - 3/24/05 by wfine] |
|
上一页
下一页