mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
40楼#
发布于:2002-12-07 14:16
俺给你上两堂语文课吧,不过给钱先, :D :D :D :D
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
41楼#
发布于:2002-12-07 14:58
先跟大家说声对不起,都是俺的错,请看:

我不知道怎么搞的,居然把
RtlUnicodeStringToAnsiString( &TempStr, DeviceName, TRUE );
写成了
RtlUnicodeStringToAnsiString( &TempStr, &pAdapt->DeviceName, TRUE );

所以输出的东西就是从 UpperBindings 里面读出来的,再次深刻检讨!!!不过这下我以后一定不会搞混了,大家不要仍东西:)
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
42楼#
发布于:2002-12-07 15:17
不过讨论一下对大家都有好处,清晰了很多东西
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
43楼#
发布于:2002-12-07 15:22
我还想要跟进去看那个参数是什么每:)
这下不用了,
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
44楼#
发布于:2002-12-07 15:46
呵呵,这些我知道(PtBindAdapter 中):

SystemSpecific1 的内容形如:
PASSTHRU\\Parameters\\Adapters\\{47942F0A-ECC8-4BFB-8DC4-CAF4BA8AC5BC}

PASSTHRU\\Parameters\\Adapters\\NdisWanIp
它的实际位置在:
HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Service
edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
45楼#
发布于:2002-12-07 16:12
这回总算把 PtBindAdapter() 彻底搞清了!

给分!
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
46楼#
发布于:2002-12-07 16:14
先跟大家说声对不起,都是俺的错,请看:

我不知道怎么搞的,居然把
RtlUnicodeStringToAnsiString( &TempStr, DeviceName, TRUE );
写成了
RtlUnicodeStringToAnsiString( &TempStr, &pAdapt->DeviceName, TRUE );

所以输出的东西就是从 UpperBindings 里面读出来的,再次深刻检讨!!!不过这下我以后一定不会搞混了,大家不要仍东西:)


嘿嘿~~
不放分就要仍东东了。。。
偶现在就查你们公司的地址喽
[color=red]大头鬼! :P[/color]
edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
47楼#
发布于:2002-12-07 16:22
 
偶现在就查你们公司的地址喽


呵呵不用查,上次不是告诉过你了吗,工作找的如何了?
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
48楼#
发布于:2002-12-07 16:48
[quote] 偶现在就查你们公司的地址喽


呵呵不用查,上次不是告诉过你了吗,工作找的如何了? [/quote]

edust兄:

谢谢你的关心! :) :P
[color=red]大头鬼! :P[/color]
skylgl
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分71分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
49楼#
发布于:2002-12-09 14:35
基本上来说,我也是在PtBindAdapter中,我查到了DeviceName,这个名字,它的名字内容,我也跟进去查过了,的确就是那个虚拟Adapter的ID,就是在注册表的upperBinding子键下面的ID值,从DDK上得到的资料上说,Specifiedname1这个值,传到OpenAdapter中去的时候,不能够传入它的拷贝,即你必须要直接传入DeviceName这个地址进去,我不知道这是为什么,不过书上确实是这样说的,因此,如果你查一下,我不知道你是怎么查到你所说的那个错误的,不过,那个错误似乎并非是一个很重要的问题??
基本上来说,我觉得你的推理是正确的,Adapter的ID确不是真实的网卡ID,我不知道你最后得到的结论是什么?能够总结一下吗?还有就是有个问题要请教一下,在Passthu中你跟过程序的,你有没有发现,OpenAdapter返回的是NDIS_STATUS_PENDING?也就是说,系统需要调用OpenCompleteAdapter来完成这个打开操作?这样,你下面的NdisIMInitializeDeviceInstanceEx会成功吗?我跟了一次,似乎没有这个问题,我问了这个问题,不过还是不很清楚Passthu用event的意义是什么,请指教
edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
50楼#
发布于:2002-12-09 15:20
 
基本上来说,我也是在PtBindAdapter中,我查到了DeviceName,这个名字,它的名字内容,我也跟进去查过了,的确就是那个虚拟Adapter的ID,就是在注册表的upperBinding子键下面的ID值


不会吧!你说的是 PtBindAdapter() 的参数 DeviceName 吗?那个是物理网卡的设备名,ADAPT 结构中的 DeviceName 才是 IMD 导出的虚拟网卡的设备名。你犯了跟我同样的错误还是你在注册表中看错了值?
edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
51楼#
发布于:2002-12-09 15:23
 
从DDK上得到的资料上说,Specifiedname1这个值,传到OpenAdapter中去的时候,不能够传入它的拷贝,即你必须要直接传入DeviceName这个地址进去,我不知道这是为什么,不过书上确实是这样说的,因此,如果你查一下,我不知道你是怎么查到你所说的那个错误的,不过,那个错误似乎并非是一个很重要的问题??


对不起,我没有弄清楚你的意思,我的那个错误是输出调试信息时搞错了对象,你说的“我不知道你是怎么查到你所说的那个错误的”是这个意思吗?
edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
52楼#
发布于:2002-12-09 15:33
 
基本上来说,我觉得你的推理是正确的,Adapter的ID确不是真实的网卡ID,我不知道你最后得到的结论是什么?能够总结一下吗?


呵呵,确实应该这样!给后来看帖子的兄弟们一个明确的结论。

我最后的结论就是:直接从 PtBindAdapter() 参数中得到的那个 DeviceName 的确就是物理网卡的设备名(当然有个前提,那就是这个 Adapter 不是系统中其它 IMD 导出的虚拟 Adapter),而用 NdisReadConfiguration() 读出来的,最后存到 pAdapt->DeviceName 中的那个设备名才是我们的 IMD 导出的虚拟 Adapter 的设备名。
edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
53楼#
发布于:2002-12-09 15:38
 
还有就是有个问题要请教一下,在Passthu中你跟过程序的,你有没有发现,OpenAdapter返回的是NDIS_STATUS_PENDING?也就是说,系统需要调用OpenCompleteAdapter来完成这个打开操作?这样,你下面的NdisIMInitializeDeviceInstanceEx会成功吗?我跟了一次,似乎没有这个问题,我问了这个问题,不过还是不很清楚Passthu用event的意义是什么,请指教


对啊,OpenAdapter() 有可能返回 NDIS_STATUS_PENDING,但是你没有注意到下面那几行吗:
if( *Status == NDIS_STATUS_PENDING )
{
NdisWaitEvent( &pAdapt->Event, 0 );
*Status = pAdapt->Status;
}

它会等待这个未决的操作完成之后才会继续往下执行啊。

用事件对象就是要在操作未决时阻塞程序,让它等待(NdisWaitEvent())操作完成。
skylgl
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分71分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
54楼#
发布于:2002-12-09 20:14
edust,我还要去看一下代码才能确定是否是我和你范了同样的错误,如果你的认识是正确的,那么应该说我跟你犯了同样的错误,我没有仔细的查过DeviceName和Adapter结构中的那个值,呵呵,可能是“眼误”哟。还有,就是下午请教的那个问题,我已经设置了一个NDIS_EVENT变量,也就是说先完成adapteropencomplete,不过,我还有一个事情不明白,DDK上说,在OpenAdapter返回NDIS_PENDING的时候说最终必须要调用NdisCompleteAdapter来完成打开操作,但是,我在Passthru中没有看到他调用这个函数,难道系统最后会自己调用这个函数吗?不太明白?请指教
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
55楼#
发布于:2002-12-09 20:22
那个complete是NDIS来调用的,
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
56楼#
发布于:2002-12-09 20:40
呵呵,对啊,如果即时完成了那就是完成了,但如果返回了 NDIS_PENDING 又怎么知道什么时候完成了?――答案是 NDIS 会调用 CompleteHandler 告诉我们。
guestguess12345
驱动牛犊
驱动牛犊
  • 注册日期2003-03-05
  • 最后登录2003-10-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
57楼#
发布于:2003-03-25 21:50

为什么我打不开后面两页啊?
Z16300
驱动牛犊
驱动牛犊
  • 注册日期2002-06-04
  • 最后登录2018-01-17
  • 粉丝3
  • 关注0
  • 积分88分
  • 威望239点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
  • 社区居民
58楼#
发布于:2003-05-26 12:51
在ProtocolBindAdapter中使用IoGetDeviceObjectPointer函数并传入DeviceName为什莫得不到DEVICE_OBJECT呢?急问
上一页 下一页
游客

返回顶部