wollok
驱动小牛
驱动小牛
  • 注册日期2002-11-12
  • 最后登录2012-07-18
  • 粉丝0
  • 关注0
  • 积分571分
  • 威望335点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
阅读:2247回复:8

请教:如何在驱动层直接发包.我知道是调NDISSend,但是句柄不知道如何获得得到,望高手赐教.

楼主#
更多 发布于:2005-07-27 07:39
  我做的是一个和网络无关的驱动.请问是否一定要注册为协议驱动才能发包呢??
我只知道大概的步骤为
NdisOpenAdapter(参数没有搞明白,死机N次)
NdisAllocatePacket
NdisSend
NdisFreePacket
NdisSend

望大侠告知详细参数.查DDK帮助没看明白.都怪曾经太爱国了.E文不好
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-07-27 09:41
1.看你发什么包了,写一个t di client,可以象上层应用程序那样类似socket的语义,来收包,发包
2.如果采用注册一个协议的方法,看看xp ddk的ndisuio,基本上拿来直接用就可以了
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-07-27 09:42
是的。不注册协议,几个重要的参数无法得到,自然也就不能调用NDISSEND了。
NdisSend必须用NdisBindingHandle,

NdisOpenAdapter()得到NdisBindingHandle,

NdisOpenAdapter()必须用NdisProtocolHandle,

NdisRegisterProtocol()得到 NdisProtocolHandle。

因此必须注册。

当然直接操作网卡也有可能,可以参考一下NE2000或e100bex。
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2005-07-27 10:06
呵呵,直接操作网卡,几乎不可行,就不用考虑了
wollok
驱动小牛
驱动小牛
  • 注册日期2002-11-12
  • 最后登录2012-07-18
  • 粉丝0
  • 关注0
  • 积分571分
  • 威望335点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-07-27 21:52
再次请教.如何写一个TDI Client?
我还是初学者.
wollok
驱动小牛
驱动小牛
  • 注册日期2002-11-12
  • 最后登录2012-07-18
  • 粉丝0
  • 关注0
  • 积分571分
  • 威望335点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-07-27 21:54
主要是想直接发IP层以下的数据包.
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2005-07-27 22:33
如果是发ip层以下的包,就没有必要考虑tdi了。
wollok
驱动小牛
驱动小牛
  • 注册日期2002-11-12
  • 最后登录2012-07-18
  • 粉丝0
  • 关注0
  • 积分571分
  • 威望335点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-07-27 22:44
是不是只能通过注册协议调用NDISSend发送呢?
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2005-07-28 08:08
imd 也可以调用NdisSend发包,相比之下,还是proctol driver简单,还是用protocol driver吧
游客

返回顶部