zzq191
驱动中牛
驱动中牛
  • 注册日期2001-08-09
  • 最后登录2018-05-29
  • 粉丝17
  • 关注0
  • 积分1041分
  • 威望716点
  • 贡献值0点
  • 好评度318点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:2353回复:1

win2000下的PNDIS_OPEN_BLOCK数据结构问题

楼主#
更多 发布于:2010-11-28 15:43
我在win2000先碰到一个奇怪的问题,我hook了PNDIS_OPEN_BLOCK数据结构中SendCompleteHandler函数,结果发现在调用SendPacketsHandler函数返回Pending的情况下,就是不会在我hook了SendCompleteHandler函数里面拦截不到。而当我调用SendPacketsHandler发送自己的数据包时,系统挂了,看了一下发现是在释放我自己构造的数据包内存里,再一看是在tcpip里面的sendcomplete里面释放内存导致的,看了一下tcpip!sendcomplete的地址,居然和我在PNDIS_OPEN_BLOCK数据结构中的不一样,到此可以说是因为我hook了错误的sendcomplete函数地址,导致后面的错误。
我不明白的是为什么我在PNDIS_OPEN_BLOCK数据结构中得到的sendcomplete函数地址是错误的?我需要怎么样才能得到正确的地址呢?
QQ:416331891,承接windows下应用和驱动的开发,雅虎通:zzq191, Email:zzq191@21cn.com
iihacker
论坛版主
论坛版主
  • 注册日期2010-01-07
  • 最后登录2017-08-16
  • 粉丝5
  • 关注8
  • 积分377分
  • 威望1941点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2010-12-30 09:37
回 楼主(zzq191) 的帖子
NDIS_OPEN_BLOCK结构在各个版本系统中有差别。可以张贴关键代码处理

 ┌───────┬───────┐
  │ OS Version   │ NDIS Version │
  ├───────┼───────┤
  │ Win95        │     3.1      │
  │ Win95 OSR2   │     4.0      │
  │ Win98        │     4.1      │
  │ Win98 SE     │     5.0      │
  │ WinMe        │     5.0      │
  │ WinNT 3.5    │     3.0      │
  │ WinNT 4.0    │     4.0      │
  │ WinNT 4.0 SP3│     4.1      │
  │ Win2K        │     5.0      │
  │ WinXP        │     5.1      │
  │ WinVista     │     6.0      │
  └───────┴───────┘
NDIS 1群74755180 NDIS 2群182802097 交换机软硬件技术群 187471475 FPGA PCI PCIE 群187471817
游客

返回顶部