本站首页    管理页面    写新日志    退出


«September 2025»
123456
78910111213
14151617181920
21222324252627
282930


公告
 终于,答辩完了。该来到这里来写点什么了,毕业设计还真是让我学到了点东西可以让我卖弄下,呵呵,一点一点的贴上来hoho

我的分类(专题)

日志更新

最新评论

留言板

链接


Blog信息
blog名称:技术青年
日志总数:7
评论数量:17
留言数量:7
访问次数:48952
建立时间:2006年6月10日




检测网络连接状态
原创空间,  软件技术

页史 发表于 2006/11/19 10:49:00

很久没来更新这里了,今天来了兴致,写点东西吧 最近产测需要用检测指定网卡的连接状态我的方法是在注册表(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards)通过网卡的description找到那张网卡的servicename,然后用createfile打开servicename(应该是驱动吧。。。),打开成功后用deviceiocontrol下一个oid_gen_media_status(不知道是不是这个。。忘了,反正是个oid code,sdk里有吧)命令,就会返回一个status,xxxconnect/xxxdisconnect(也忘了。。)这样就可以达到检测的目的了。 看似简单,但我实际做的时候还是遇到了bug,解了很久。就是在enum注册表的时候,有一个参数LPDWORD lpcbClass  // address for size of class buffer是个in/out参数,也就是说初始化将这个参数设为255,enum成功一次,这个参数就变了,而我没考虑到这点,在enum下一个subkey的时候还是使用了上一个lpcbClass,如果后一个subkey路径比前一个subkey的路径长,问题就出现了,会返回一个234的error code (more data available)的错误,我解了很久不知道问题出在哪,还是老大一语到破,发现是这个问题,所以问题也就迎刃而解,只要在enum之前重新inilization lpcbClass为255就ok了


阅读全文(3241) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144774468 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号