阅读:2496回复:7
自己如何发包? 参考了suio 再请版主指教
我想利用应用层传过来的数据进行发包,数据已经传到了驱动层,可是我怎么调用NdisSend呢,它的参数我怎么获得呢?如NdisBindingHandle
还有分配Buffer,packet的的时候,一些参数怎么获得呢? 我是想通过控制码,在驱动中自己发包,而不是修改MpSend来转发包 |
|
沙发#
发布于:2008-08-06 09:15
Re:自己如何发包? 版主来看看啊 今天继续等啊 急 急 急!!!!!
1.你是passthru基础上做的?2.自己发包可以参考ndisuio的例子。不同的地方就是在ptsendcomplete的时候,要区分是自己的包,还是转发自上层驱动也就是tcpio.sys的包,做不同的处理。 |
|
板凳#
发布于:2008-08-06 09:22
我在mpsendpackets函数中把包数据获取后,在另一个地方发送也是不行.一直卡在这个问题上.希望有人能帮助一下.
|
|
地板#
发布于:2008-08-06 10:16
对 我是在passthru上做的
现在就是不知道参数怎么获得 在MPSend里面,参数MiniportAdapterContext是函数提供的 可是我不在MPSend里面发包呀,我怎么获得MiniportAdapterContext这样的参数呀 再请版主指教啊 |
|
地下室#
发布于:2008-08-06 12:38
我参考了一下ndisuio,它是通过pIrpStack->FileObject->FsContext来获取相关参数的,可是我的IRP包里面的这个参数是空的啊
在ndisuio的例子里面,如果是空的就退出,即失败了 ???该怎么办??? 请版主指教 |
|
5楼#
发布于:2008-08-06 13:33
解决了
大家一起来讨论下,看看我的方法适用不适用 我是这样做的: 突然发现NDIS提供了一个pAdaptList,而这个结构里面就有需要的参数,不过需要注意一下,它是个链表,不只一个PADAPT结构,需要自己判断 比如,我输出了这个表的所有介质类型,发现一共有3个,第一个是NdisMedium802_3,即以太网,后两个都是NdisMediumWan,即广域网,我用的是以太网,已成功实现! 呵呵! |
|
6楼#
发布于:2008-08-06 13:38
MiniportAdapterContext就是你在PtBindAdapter函数中的pAdapter,保存到全局变量里,如果只有一个网卡,直接用就可以了,多快网卡,还要选择一个用。
|
|
7楼#
发布于:2008-11-06 17:31
楼主帮忙!
发包的代码能不能贴上来。我调用用发包函数后蓝屏呀 |
|