michael4338
驱动小牛
驱动小牛
  • 注册日期2004-12-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分238分
  • 威望66点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
阅读:1794回复:13

重分相求 TDI 高手相助

楼主#
更多 发布于:2005-03-09 09:04
各位高手,请问针对每个TDI_***,系统中哪些结构中存有IP地址、端口号等信息?比如说在TDI_CONNECT中这些信息存在于(PTDI_REQUEST_KERNEL )&IrpStack->Parameters中。其它的操作呢?哪位不吝赐教,我给50分

最新喜欢:

hunterforpighunter...
我思故我在
michael4338
驱动小牛
驱动小牛
  • 注册日期2004-12-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分238分
  • 威望66点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-03-10 17:56
高手何在啊?分不够我可以再给!
我思故我在
michael4338
驱动小牛
驱动小牛
  • 注册日期2004-12-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分238分
  • 威望66点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-03-12 18:12
看来是不会有人回复了,大家都只看不说,唉!
我思故我在
zhleonix
驱动牛犊
驱动牛犊
  • 注册日期2002-04-04
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-13 11:39
DDK里面TDI Drivers一章里面写的很清楚了
michael4338
驱动小牛
驱动小牛
  • 注册日期2004-12-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分238分
  • 威望66点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-03-13 18:36
我看了N遍DDK,还是没找到这些结构,而且我发现有的结构被隐藏了,请zhleonix明示,谢谢谢谢
我思故我在
zhleonix
驱动牛犊
驱动牛犊
  • 注册日期2002-04-04
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-03-13 21:49
一般有地址信息的只有TDI_CONNECT, TDI_ASSOCIATE_ADDRESS等。Filter中需要跟踪这些调用来保存TDI的IP端口信息。SEND,RECEIVE里面只有数据,不会有IP地址。不清楚的结构可以贴出来看看。
michael4338
驱动小牛
驱动小牛
  • 注册日期2004-12-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分238分
  • 威望66点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-03-14 08:49
可是我想在每个TDI_***中都得到IP和端口号,所以我想针对每一个TDI_***都用TDI_QUERY_INFORMATION查一下 ,这样行不行?请高手明示
我思故我在
gx_kyw
驱动牛犊
驱动牛犊
  • 注册日期2003-01-23
  • 最后登录2011-04-13
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望7点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-03-14 09:40
如果你是要获取本机地址的话,可以向底层设备发送查询包。

然后你将这些地址保存起来,
以后就不需要每次去发送查询包了,只要往你保存的列表中搜索
相应的记录,读取出相应的IP和端口。
michael4338
驱动小牛
驱动小牛
  • 注册日期2004-12-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分238分
  • 威望66点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-03-14 15:10
谢谢大家回答我的问题。
可是我想得到的是远程对方的地址和端口号,这样是不是针对每个TDI_***都需要查询一次?用TDI_QUERY_INFORMATION可行吗?
我思故我在
gx_kyw
驱动牛犊
驱动牛犊
  • 注册日期2003-01-23
  • 最后登录2011-04-13
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望7点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-03-14 20:37
远程的地址一般在调用
TDI_CONNECT的时候,和
Tdi_Connect_Event 的时候能获取到,
你在这个时候将远程的IP和端口号保护起来,
以后根据 FileObject 找到相应的记录就可以了
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-03-14 21:04
谢谢大家回答我的问题。
可是我想得到的是远程对方的地址和端口号,这样是不是针对每个TDI_***都需要查询一次?用TDI_QUERY_INFORMATION可行吗?

对这个可以
使用TDI_QUERY_ADDRESS_INFO的QueryType就可以
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
michael4338
驱动小牛
驱动小牛
  • 注册日期2004-12-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分238分
  • 威望66点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-03-15 14:42
  
远程的地址一般在调用
TDI_CONNECT的时候,和
Tdi_Connect_Event 的时候能获取到,
你在这个时候将远程的IP和端口号保护起来,
以后根据 FileObject 找到相应的记录就可以了


谢谢回答,但我不太明白你的意思,FileObject中存储的应该是什么内容?TDI_CONNECT一定是比其它的操作早发生吗?
我思故我在
gx_kyw
驱动牛犊
驱动牛犊
  • 注册日期2003-01-23
  • 最后登录2011-04-13
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望7点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-03-15 17:34
你看一下DDK中TDI部分,

建立一个连接和接受一个连接是怎么样的处理流程。

或者你可以用 TdiMon 来监视一下它们的流程。

如果是向外连接的话
一般是先建立 Address Object
然后是建立 Connect Object,
再将他们绑定,绑定后,才是调用 TDI_CONNECT。

上面讲的 Address Object 和 Connection Object 都是 File Object。



有开源的代码你可以去看看, TdiFW。



michael4338
驱动小牛
驱动小牛
  • 注册日期2004-12-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分238分
  • 威望66点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2005-03-15 19:30
现在不能给分好像,系统有故障?

很不幸,我的程序又失败了。
我针对每一个TDI_*** 操作调用TdiQueryInformation,希望能找到这些操作所针对的IP地址和端口号。但是一运行就蓝屏。答案应该是每个操作中的FileObject不一定都可以用来得到地址信息。

我的程序的功能就是查找所有操作的IP地址和Port号以及成功与否的信息,哪位大侠可以给出详细流程?
我思故我在
游客

返回顶部