walker
驱动牛犊
驱动牛犊
  • 注册日期2001-10-31
  • 最后登录2004-06-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1929回复:8

请教HUGY

楼主#
更多 发布于:2001-12-16 15:40
你解决PACKET.SYS丢包的程式中是否写错了。
PACKET Packet[32].
但程式中却是这样写道。

  for(i=0;i<32;i++)
{
   Packet.Overlapped.offset=0;             Packet.Overlapped.Highoffset=0;
Packet......
}
为什么还有最后部分程式的代码是否有不对的。。找不对齐的{}。
walker_zjs
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2001-12-16 19:38
你解决PACKET.SYS丢包的程式中是否写错了。
PACKET Packet[32].
但程式中却是这样写道。

  for(i=0;i<32;i++)
{
   Packet.Overlapped.offset=0;             Packet.Overlapped.Highoffset=0;
Packet......
}
为什么还有最后部分程式的代码是否有不对的。。找不对齐的{}。


我想那是因为html的解释的问题,贴上来就成了这个样子,
就象我写 for( ; ; ),会变成 for(;;) 一样。

我就好人做到底,用附件的形式给你吧,希望那些
对于异步io不太清楚的朋友仔细看看。

附件中你可以看到两段source,第一段是我98年的时候
的老代码,没有hstopevent参数,加上了一个数据结构
定义,这样估计你就可以直接copy&paste了。

第二段和那段代码差不多,
是去年写得,加上了这个hstopevent参数。

不知道为什么在vc里面排版很好的代码到了写字版中
就变成参差不齐,你自己排版吧。

第一段代码是当时在nt4下用packet.sys抓包的时候写得。

第二段代码是给另外一个帮我写界面的朋友提供的一个
动态库中的代码。这段代码的作用是要让driver给他的
界面程序发消息。以便提供日志和其他功能。nt下没有
方便的_shell_postmessage(9x下这个方法效率低下,且
不可重入),也没有customapc的方法。一般9x下用event,
walter oney的那本vxd的书(jjhou翻译)
和电力工业出版社新翻译的那本书(作者名字太怪了,
虽然很有名,但是还是记不起来了,译者是tsinghua bbs\'s
suxm)都建议用
event。nt下不应该用event,而应该直接用异步io。
这样效率比较高,不太可能丢消息,也不用自己管理请求
队列(我猜想walter oney没有介绍异步io,可能是因为
自己管理队列过于麻烦,类似于custom dpc需要做的工作),
直接用nt driver的系统队列,用startio,对于某些
应用很方便。关于9x下类似的方法,参见vpacket.vxd
的source。

不再回忆从前,我已经生活在幸福当中。
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2001-12-16 19:42
[quote]你解决PACKET.SYS丢包的程式中是否写错了。
PACKET Packet[32].
但程式中却是这样写道。

  for(i=0;i<32;i++)
{
   Packet.Overlapped.offset=0;             Packet.Overlapped.Highoffset=0;
Packet......
}
为什么还有最后部分程式的代码是否有不对的。。找不对齐的{}。


我想那是因为html的解释的问题,贴上来就成了这个样子,
就象我写 for( ; ; ),会变成 for(;;) 一样。

我就好人做到底,用附件的形式给你吧,希望那些
对于异步io不太清楚的朋友仔细看看。

附件中你可以看到两段source,第一段是我98年的时候
的老代码,没有hstopevent参数,加上了一个数据结构
定义,这样估计你就可以直接copy&paste了。

第二段和那段代码差不多,
是去年写得,加上了这个hstopevent参数。

不知道为什么在vc里面排版很好的代码到了写字版中
就变成参差不齐,你自己排版吧。

第一段代码是当时在nt4下用packet.sys抓包的时候写得。

第二段代码是给另外一个帮我写界面的朋友提供的一个
动态库中的代码。这段代码的作用是要让driver给他的
界面程序发消息。以便提供日志和其他功能。nt下没有
方便的_shell_postmessage(9x下这个方法效率低下,且
不可重入),也没有customapc的方法。一般9x下用event,
walter oney的那本vxd的书(jjhou翻译)
和电力工业出版社新翻译的那本书(作者名字太怪了,
虽然很有名,但是还是记不起来了,译者是tsinghua bbs\'s
suxm)都建议用
event。nt下不应该用event,而应该直接用异步io。
这样效率比较高,不太可能丢消息,也不用自己管理请求
队列(我猜想walter oney没有介绍异步io,可能是因为
自己管理队列过于麻烦,类似于custom dpc需要做的工作),
直接用nt driver的系统队列,用startio,对于某些
应用很方便。关于9x下类似的方法,参见vpacket.vxd
的source。

 [/quote]

我考,居然忘了上附件了,只好再来一篇了。
不再回忆从前,我已经生活在幸福当中。
keven007
驱动牛犊
驱动牛犊
  • 注册日期2002-03-06
  • 最后登录2002-07-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-03-25 18:57
Faint,Monitoring Ethernet Network Activity With NDIS Drivers 没有提供任何关于IO异步通讯的信息,我太笨啊,怎么也找不到。:(
谁可以帮帮我?这对我很重要。
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
地下室#
发布于:2002-03-26 12:01
怎么附件我下不下来?
keven007
驱动牛犊
驱动牛犊
  • 注册日期2002-03-06
  • 最后登录2002-07-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-03-26 12:28
当然了,要是能下来我还问什么?呵呵。
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-03-27 12:23
对啊。空的附件哦
111
ysy
ysy
驱动中牛
驱动中牛
  • 注册日期2002-02-18
  • 最后登录2008-08-25
  • 粉丝0
  • 关注0
  • 积分201分
  • 威望29点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-04-01 10:56
huyg就喜欢这样,好像是故弄玄虚!
keven007
驱动牛犊
驱动牛犊
  • 注册日期2002-03-06
  • 最后登录2002-07-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-04-01 13:11
在Walker发的2001/12/17 - 09:15帖子上有程序。冤枉Hugy了。:)
游客

返回顶部