阅读:1523回复:11
mikeluo,fracker,GJP你们上哪儿去了???
你们可是NDIS的元老级人物啊,小弟要请你们帮忙了。怎么全跑不见了,难道都去度蜜月去了??????不会是你们三吧!哈哈哈哈!
三位老大,我确实是没有办法了? 帮我去看看我发的帖子,“胡老大,胡大侠。有事情请教了,小弟实在是百思不得其解! ” 谢谢了! 不过不好意思,我没有多少可以给的分了。呵呵,就将就吧,我有分了一定补上! |
|
|
沙发#
发布于:2003-04-16 10:17
终于上来了。
三位有时间替我看看啊! 我的IMD初始化没有任何的问题,可是就是截不到包! 在WinCE3.0下,我没有开发板,又没法调试。 不知道哪儿错了,也无法查清流程情况。 郁闷死了! :( :( :( |
|
|
板凳#
发布于:2003-04-16 13:38
不好意思,你问的东西太高深,我没有玩过:(
|
|
地板#
发布于:2003-04-16 14:03
至今没有见过win CE的模样,不敢乱说
|
|
|
地下室#
发布于:2003-04-16 15:09
好啊,推卸责任!呵呵。
其实我就是想证实 1)是否到了这个时候,我们的IMD的初始化工作已经成功的结束了。还是这个过程并不能说明我们的绑定是成功的? 2)NDIS在考虑绑定关系的时候什么时候读的注册表,你们在PC机上见到的IMD的绑定在注册表中是什么样子的?其实对于PC我一直在仅仅是停留在passthru的水平,没有考虑到这么多东西。 3)帮我猜猜为什么NE2000这个网卡NDIS没有为它调用我的ProtocolBindAdapter(),就是猜猜而已,合理就可以了! 现在主要是IMD被装上之后就和模拟器要么失去了联系,要么就是看到初始化成功结果就是拿不到包。失去了联系之后模拟器所作的一切工作我都不知道,我甚至不知道他是否对我的IMD提出了因侵害主权的严重抗议。 郁闷!! fracker!什么时候有时间?我白天不能上QQ,只有晚上才行。 给点建议吧,我觉得仍然是NDIS的问题,和CE的内核机制无关。现在只有要么去猜猜怎么回事,要么就等待做过的人来告诉我了。 关键没法调试啊,这不是扯吗!!!!!!!!!! :( :( :( :( :( :( :( :( :( :( |
|
|
5楼#
发布于:2003-04-16 15:19
本来开始打算用HOOK做的,结果发现,均不行了在Pocket PC2002下面,只有来啃IMD了.可是现在才发现这个太硬了,有点吃不消的感觉!!
郁闷啊!!!!!!!!!!!!!!! |
|
|
6楼#
发布于:2003-04-16 15:27
有点怀疑安装和binding是否正确。
你是如何在注册表里面指定binding的? |
|
|
7楼#
发布于:2003-04-16 15:37
英雄所见略同!我也这样认为的!呵呵!
我的绑定是通过: 在NE2000中加入: ProtocolsToBindTo = NdisIMD 然后在TCPIP下面: Bind NdisIMD1 等一下,我全帖出来!! |
|
|
8楼#
发布于:2003-04-16 15:41
好啊,推卸责任!呵呵。 兄弟,不是推卸责任阿,俺的主要工作不是写驱动阿,而且IMD俺也不熟悉。 |
|
9楼#
发布于:2003-04-16 15:44
绑定关系如下:
HKEY_LOCAL_MACHINE\\Comm\\NdisIMD (TEXT(\"NoDeviceCreate\")), REG_DWORD, (PBYTE)1, (TEXT(\"ImagePath\")), REG_SZ, (PBYTE)(TEXT(\"ndisimd.dll\")), (TEXT(\"Group\")), REG_SZ, (PBYTE)(TEXT(\"NDIS\")), (TEXT(\"DisplayName\")), REG_SZ, (PBYTE)(TEXT(\"WinCE3.0 NDIS IMD\")), HKEY_LOCAL_MACHINE\\Comm\\NdisIMD\\Linkage (TEXT(\"Route\")), REG_MULTI_SZ, (PBYTE)(TEXT(\"NdisIMD1\")) HKEY_LOCAL_MACHINE\\Comm\\NdisIMD1 (TEXT(\"ImagePath\")), REG_SZ, (PBYTE)(TEXT(\"ndisimd.dll\")), (TEXT(\"Group\")), REG_SZ, (PBYTE)(TEXT(\"NDIS\")), (TEXT(\"DisplayName\")), REG_SZ, (PBYTE)(TEXT(\"WinCE3.0 NDIS IMD\")), HKEY_LOCAL_MACHINE\\Comm\\NdisIMD1\\Parms (TEXT(\"ProtocolsToBindTo\")), REG_MULTI_SZ, (PBYTE)(TEXT(\"Tcpip\")), (TEXT(\"BusType\")), REG_DWORD, (PBYTE)0, (TEXT(\"BusNumber\")), REG_DWORD, (PBYTE)0, HKEY_LOCAL_MACHINE\\Comm\\NE20001\\Parms (TEXT(\"ProtocolsToBindTo\")), REG_MULTI_SZ, (PBYTE)(TEXT(\"NdisIMD\")), HKEY_LOCAL_MACHINE\\Comm\\NE20001\\Parms\\NdisIMD (TEXT(\"UpperBindings\")), REG_MULTI_SZ, (PBYTE)(TEXT(\"NdisIMD1\\0\")), |
|
|
10楼#
发布于:2003-04-16 15:52
[quote]好啊,推卸责任!呵呵。 兄弟,不是推卸责任阿,俺的主要工作不是写驱动阿,而且IMD俺也不熟悉。 [/quote] 呵呵,这好几天我都郁闷死了。没法调试,我都不知道那些程序大爷们是在打仗还是在友好的合作,你说郁闷不郁闷呀。 对了,你哪天在的时候我不在。我只是晚上才上一会QQ,很久没跟你联系过了。怎么样?还可以吧。 哪天胡老大他说他很郁闷,并且是非常的郁闷。不知道怎么哪? 他说你会告诉我的,说说吧,如果这不方便的话,给我发到QQ吧! 呵呵,我实在是郁闷有加啊! 好运! |
|
|
11楼#
发布于:2003-04-16 17:29
mikeluo、fracker!
请讨论一下IMD的初始化过程。 我的理解是,在初始化的时候系统根本不管什么小端口还是协议端,只知道把IMD当作一个小端口来加载,这个由于注册了小端口和协议层,所以在真实网卡初始化结束的时候,NDIS调用IMD中的ProtocolBindAdapter()来把我们的协议绑定到真实网卡,在IMD中的协议与真实网卡绑定成功完成后,我们ProtocolBindAdapter()中调用NdisIMIntializeInstance()来初始化IMD的Miniport实例,这个实际就是在WDM中所提到的设备对象,我们只有一个Miniport,但是有很多设备对象,每个设备对象对应一个真实的网卡,由于使用驱动实质使用的设备对象,而不是驱动本身。所以上层的真实协议使用我们的Miniport实质是使用我们Miniport driver的设备对象,所以在Protocol看来我们并没有改变系统原有的网卡数目。在为每个真实网卡建立设备对象的时候,我们会使用真实网卡的信息来初始化我们的设备对象,所以每个设备对象有和真实网卡一样的特征。 这是我根据初始化过程跟踪的结果,请指正! 在这里就没有读注册表的事情,所以我不知道注册表中关于绑定的选项在什么时候被使用的! 如果两位老大有时间,请两位帮我跟踪一下好吗?? 谢谢了! 我觉得我的问题是没有搞清楚这个绑定问题! |
|
|