阅读:1794回复:13
重分相求 TDI 高手相助
各位高手,请问针对每个TDI_***,系统中哪些结构中存有IP地址、端口号等信息?比如说在TDI_CONNECT中这些信息存在于(PTDI_REQUEST_KERNEL )&IrpStack->Parameters中。其它的操作呢?哪位不吝赐教,我给50分
|
|
最新喜欢:![]()
|
沙发#
发布于:2005-03-10 17:56
高手何在啊?分不够我可以再给!
|
|
|
板凳#
发布于:2005-03-12 18:12
看来是不会有人回复了,大家都只看不说,唉!
|
|
|
地板#
发布于:2005-03-13 11:39
DDK里面TDI Drivers一章里面写的很清楚了
|
|
地下室#
发布于:2005-03-13 18:36
我看了N遍DDK,还是没找到这些结构,而且我发现有的结构被隐藏了,请zhleonix明示,谢谢谢谢
|
|
|
5楼#
发布于:2005-03-13 21:49
一般有地址信息的只有TDI_CONNECT, TDI_ASSOCIATE_ADDRESS等。Filter中需要跟踪这些调用来保存TDI的IP端口信息。SEND,RECEIVE里面只有数据,不会有IP地址。不清楚的结构可以贴出来看看。
|
|
6楼#
发布于:2005-03-14 08:49
可是我想在每个TDI_***中都得到IP和端口号,所以我想针对每一个TDI_***都用TDI_QUERY_INFORMATION查一下 ,这样行不行?请高手明示
|
|
|
7楼#
发布于:2005-03-14 09:40
如果你是要获取本机地址的话,可以向底层设备发送查询包。
然后你将这些地址保存起来, 以后就不需要每次去发送查询包了,只要往你保存的列表中搜索 相应的记录,读取出相应的IP和端口。 |
|
8楼#
发布于:2005-03-14 15:10
谢谢大家回答我的问题。
可是我想得到的是远程对方的地址和端口号,这样是不是针对每个TDI_***都需要查询一次?用TDI_QUERY_INFORMATION可行吗? |
|
|
9楼#
发布于:2005-03-14 20:37
远程的地址一般在调用
TDI_CONNECT的时候,和 Tdi_Connect_Event 的时候能获取到, 你在这个时候将远程的IP和端口号保护起来, 以后根据 FileObject 找到相应的记录就可以了 |
|
10楼#
发布于:2005-03-14 21:04
谢谢大家回答我的问题。 对这个可以 使用TDI_QUERY_ADDRESS_INFO的QueryType就可以 |
|
|
11楼#
发布于:2005-03-15 14:42
远程的地址一般在调用 谢谢回答,但我不太明白你的意思,FileObject中存储的应该是什么内容?TDI_CONNECT一定是比其它的操作早发生吗? |
|
|
12楼#
发布于:2005-03-15 17:34
你看一下DDK中TDI部分,
建立一个连接和接受一个连接是怎么样的处理流程。 或者你可以用 TdiMon 来监视一下它们的流程。 如果是向外连接的话 一般是先建立 Address Object 然后是建立 Connect Object, 再将他们绑定,绑定后,才是调用 TDI_CONNECT。 上面讲的 Address Object 和 Connection Object 都是 File Object。 有开源的代码你可以去看看, TdiFW。 |
|
13楼#
发布于:2005-03-15 19:30
现在不能给分好像,系统有故障?
很不幸,我的程序又失败了。 我针对每一个TDI_*** 操作调用TdiQueryInformation,希望能找到这些操作所针对的IP地址和端口号。但是一运行就蓝屏。答案应该是每个操作中的FileObject不一定都可以用来得到地址信息。 我的程序的功能就是查找所有操作的IP地址和Port号以及成功与否的信息,哪位大侠可以给出详细流程? |
|
|