阅读:2874回复:15
50分重谢!应用程序可以直接和NIC Miniport Driver交互吗?
请问各位大侠,我想绕开中间层,直接和miniport driver交互,可以吗?如果可以,我需要在miniport驱动中做点什么呢?
谢谢 |
|
|
沙发#
发布于:2005-06-13 19:04
不可以
|
|
板凳#
发布于:2005-06-13 19:09
为什么呢?
我看过您以前的文章,说是如果这样的话,就得自己实现TCP/IP栈。是这样吗?我可以自己把包组装成Miniport认识的样子,然后发送。接收的时候可能麻烦点,但是与TCP/IP关系不大。 望进一步指教,THANK |
|
|
地板#
发布于:2005-06-13 19:21
如果你在局域网内,不用路由,是可以不用实现tcp/ip,如果想在广域网传播,那就只能自己实现tcp/ip协议了
在局域网内,你可以通过hook miniport driver的发送函数,和ndis NdisMIndicatexxx函数来做,但也比较麻烦。 不知道你们想这么做的出发点是什么? |
|
地下室#
发布于:2005-06-13 19:33
目的就是不想让中间层及以上层阻碍我们特别的通信,呵呵。
1.路由功能我们自己很难做,是吗? 2.Miniport驱动中可不可以分析包,并阻截它? 思路有点乱,还希望大侠详细告知 |
|
|
5楼#
发布于:2005-06-13 19:49
目的就是不想让中间层及以上层阻碍我们特别的通信,呵呵。 1主机路由倒是比较简单,你只要知道网关的以太网地址就可以了 基本上要自己实现ip协议了,倒是有开放源代码可以参考 2.可以,通过上面写的hook的方法,需要你对ndis非常熟悉 |
|
6楼#
发布于:2005-06-13 20:25
既然如此,我们发送和接收都可以实现。
实现思路: 发送时我大体上按照IP的功能把包的内容填好,然后直接发给Miniport。 接收时我在Miniport中判断一下包的内容是不是我想要的,如果是,我就阻断它,然后把它发给另外的一个程序。 技术难点: 1。IP协议的粗略实现 2。Miniport驱动中对与自己相关包的处理 问题: 在Miniport中我要做点什么呢?是重新写一个Miniport驱动,还是做一个Hook之类的东西? 确实比较烦,还望大侠海涵,一定给分 |
|
|
7楼#
发布于:2005-06-14 03:46
我觉得是可以的,你可以通过oid来实现吗。访问oid的方法可以是DeviceIoControl和WMI。你可以把你组好的IP作为内容通过你自己定义的oid发给驱动,驱动收到你自己想怎么处理就怎么处理,当然前提是你自己需要修改网卡驱动。
|
|
|
8楼#
发布于:2005-06-14 09:30
如果你有网卡驱动Miniport的源程序,那想怎么改怎么改了。但是如果你想装在任何机器上,只能采用hook的方法。
|
|
9楼#
发布于:2005-06-14 13:04
多谢,已放分。有一点点明了了,具体实现有待进一步学习,希望版主日后多多指教。
最后一个问题: 平常开发Miniport驱动是不是主要用在特殊的网卡上?在同一个网卡上可不可以有多个miniport驱动程序?如果有,他们的关系是串行还是并行?可能外行了,请莫见笑 [编辑 - 6/14/05 by michael4338] |
|
|
10楼#
发布于:2005-06-14 13:51
多谢,已放分。有一点点明了了,具体实现有待进一步学习,希望版主日后多多指教。 开发miniport驱动的工作往往是由硬件网卡厂商来做。 一个网卡只对应一个驱动,一个驱动可以驱动多块网卡。 |
|
11楼#
发布于:2005-06-17 00:56
楼主所说的功能可以在中间层实现,但要在微端口实现,一般厂商的网卡驱动都不公开,怎么修改啊???可以自己编吗?又不知道网卡的寄存器地址,怎么编???请问各位?
|
|
12楼#
发布于:2005-06-17 10:29
网卡驱动和微端口驱动是不同的,我认为
|
|
|
13楼#
发布于:2008-04-29 23:08
网卡驱动和微端口驱动有什么不同啊?
|
|
|
14楼#
发布于:2008-04-30 15:07
网卡驱动和微端口驱动一个意思
|
|
15楼#
发布于:2008-10-15 20:33
引用第8楼zhaock于2005-06-14 09:30发表的 : 版大,请问hook具体是什么方法?我是菜鸟。 |
|