netbeecc
驱动牛犊
驱动牛犊
  • 注册日期2002-09-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分57分
  • 威望8点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
阅读:1728回复:6

求助:MPQueryInformation的缓冲区长度为负数

楼主#
更多 发布于:2003-07-16 09:01
小弟我前几天问了一个VPN客户端和Enternet共存的问题,结果无人应答。我的VPN客户端的IM Driver可以绑定到Enternet暴露出来的虚拟网卡上,可是每次拨号成功后,总是弹出“svchost.exe出错”的对话框,显示某内存不能读/写。偶百思不得其解,前几天终于找到原因:每次ADSL拨号完成后,我的IM Driver都会收到OID_803_2_PERMANENT_ADDRESS的查询,可是其InformationBufferLength为负数,-122,虽然其为ULONG类型,不过我想InformationBufferLength作为ULONG也太大了吧(0xFFFFFF86)。结果总是造成缓冲区溢出,导致svchost出错。你们碰到过类似问题吗?

问题:
1. 这个OID_803_2_PERMANENT_ADDRESS是谁查询的?是svchost进程还是Enternet?
2. 碰到这种情况怎么处理?缓冲区长度为负,这是我控制不了的。

多谢多谢,//bow
Turbo
驱动牛犊
驱动牛犊
  • 注册日期2002-02-05
  • 最后登录2009-01-12
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-18 17:52

问题:
1. 这个OID_803_2_PERMANENT_ADDRESS是谁查询的?是svchost进程还是Enternet?
应该是系统问的。

2. 碰到这种情况怎么处理?缓冲区长度为负,这是我控制不了的。
你只需copy 6 byte,
*BytesWritten = 6
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-18 18:09
ULONG怎么会有复数????
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-18 18:36
输.区的类型不对
放弃瘟草,现吃李草
nicol
驱动大牛
驱动大牛
  • 注册日期2001-11-28
  • 最后登录2009-07-30
  • 粉丝0
  • 关注0
  • 积分45分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-19 21:02
你在哪儿看到是负数?
SOFTICE?
==寂寞骆驼==
netbeecc
驱动牛犊
驱动牛犊
  • 注册日期2002-09-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分57分
  • 威望8点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-07-21 17:00
1。我觉得应该是Enternet发送的这个查询OID。因为我的IM Driver可以绑定真实网卡、拨号网络,都没有问题,偏偏绑在Enternet虚拟网卡上就出这个问题。

2。我试过强行设置为6,*BytesWritten=6,也不行。

3。InformationBufferLength的值很容易就看到呀,可以在MPQueryInformation一开始就DbgPrint出来,用dbgview可以看;或者用softice调试也可以看到。

4。当然ULONG是非负的,可是总不能是0xFFFFFF86吧,也太大了些吧

几位弟兄,你们没有碰到这种问题吗?你们的VPN客户端和Enternet在2K下面没有问题吗?
nicol
驱动大牛
驱动大牛
  • 注册日期2001-11-28
  • 最后登录2009-07-30
  • 粉丝0
  • 关注0
  • 积分45分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-07-22 18:27
1。我觉得应该是Enternet发送的这个查询OID。因为我的IM Driver可以绑定真实网卡、拨号网络,都没有问题,偏偏绑在Enternet虚拟网卡上就出这个问题。

2。我试过强行设置为6,*BytesWritten=6,也不行。

3。InformationBufferLength的值很容易就看到呀,可以在MPQueryInformation一开始就DbgPrint出来,用dbgview可以看;或者用softice调试也可以看到。

4。当然ULONG是非负的,可是总不能是0xFFFFFF86吧,也太大了些吧

几位弟兄,你们没有碰到这种问题吗?你们的VPN客户端和Enternet在2K下面没有问题吗?


为什么不可能?
呵呵。你看看长度本身的类型.别把UCHAR 直接用ULONG print出来了.很 容易出问题的.
==寂寞骆驼==
游客

返回顶部