阅读:1647回复:2
关于设置网卡混杂模式(新旧帖子)
阅读完从论坛搜索中查询“混杂模式”之后得到的帖子。感觉有点郁闷,也许这是新人所必经的烦恼吧。
1、帖子中很大一部分的回复都说要去看\src\network\ndis\packet中的例子。虽然我努力的逼自己去看源代码,不过怀着侥幸心理,希望能够在论坛上找到别人写好的源代码。 2、终于让我翻出了http://www.driverdevelop.com/forum/viewthread.php?tid=9249和http://www.driverdevelop.com/forum/viewthread.php?tid=4736这两篇帖子。 3、既然有源码,那还不快动手。根据4763这篇帖子的代码,我加在了MiniportInitialize()中(代码同4763)。 4、既然别人成功了,我也沾沾光。哇~~~~~,不是吧,蓝屏!!! 为什么?为什么?肚子饿饿,吃饭先。 各位大侠和斑竹大人们,各位高手中的高手们,帮帮忙吧。如果你们已经做过这方面的东西,就来点源码吧。也许这样太“厚颜无耻”,也许这样算不上刻苦学习NDIS的典范,甚至不配称之为“学习”,可是,和所有关心这个问题的人一样,我也只想快点解决这个问题,我也不过只想少走一些弯路,甚至尽量不要让自己在迷惘中停留。 //-------------------- 或许我真的应该自己去把源码看懂吧:) |
|
最新喜欢:![]() |
沙发#
发布于:2004-08-19 21:31
自己的问题自己办。居然调通了。
//---------------------------- // 说明:根据http://www.driverdevelop.com/forum/viewthread.php?tid=9249这篇帖子中的提示,我在PtBindAdapter中添加了如下的代码,使之工作在混杂模式下。 源代码如下: //-------------------- // 声明变量 NDIS_STATUS myStatus; PNDIS_REQUEST pRequest; ULONG OidData = NDIS_PACKET_TYPE_PROMISCUOUS; ... (略) //------------- // 设置混杂模式 myStatus = NdisAllocateMemory(&pRequest, sizeof(NDIS_REQUEST), 0, HighestAcceptableMax); if( myStatus != NDIS_STATUS_SUCCESS ) { DbgPrint("Error: Can not allocate the Memory for NDIS_REQUEST!"); } else { DbgPrint("Success: Allocate the Memory for NDIS_REQUEST!"); if( pRequest == NULL ) { DBGPRINT("Can not allocate buffer for requestn"); } else { DbgPrint("Allocate buffer for requestn"); pRequest->RequestType = NdisRequestSetInformation; pRequest->DATA.SET_INFORMATION.Oid = OID_GEN_CURRENT_PACKET_FILTER; pRequest->DATA.SET_INFORMATION.InformationBuffer = &OidData; pRequest->DATA.SET_INFORMATION.InformationBufferLength = sizeof(ULONG); NdisRequest(&myStatus, pAdapt->BindingHandle, pRequest); if(myStatus != NDIS_STATUS_PENDING) { if(pRequest) { DBGPRINT("Free request.n"); NdisFreeMemory(pRequest, sizeof(NDIS_REQUEST), 0); } } else { DbgPrint("myStatus == NDIS_STATUS_PENDING"); } } //-------------------------------- // 我想这只能说我自己运气好吧:) // 坦白的说,我并不是很明白其具体的工作机制,而且对于那些意外的情况也不懂得该如何处理。继续努力学习吧。 } |
|
板凳#
发布于:2004-08-20 08:11
好,继续,聊聊好么,lsn061@hotmail.com
|
|
|