temporarily
驱动牛犊
驱动牛犊
  • 注册日期2005-11-24
  • 最后登录2018-12-17
  • 粉丝0
  • 关注0
  • 积分151分
  • 威望37点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:2551回复:5

请教TDI_CONNECT的一个问题

楼主#
更多 发布于:2007-04-12 14:28
请教各位大侠,我想在Tdiconnect的时候得到原地址和目的地址,有没有办法实现。

NTSTATUS
TDIH_TdiConnect(
   PTDIH_DeviceExtension   pTDIH_DeviceExtension,
   PIRP                    Irp,
   PIO_STACK_LOCATION      IrpSp
   )
{
   NTSTATUS             RC;
   PTDI_REQUEST_KERNEL  p;
   NDIS_SPIN_LOCK    ng_io_lock;
  
   DbgPrint(( "TDIH_TdiConnect: Entry...\n" ));
   NdisAllocateSpinLock(&ng_io_lock);

   p = (PTDI_REQUEST_KERNEL )&IrpSp->Parameters;

  // 我可以从这得到连接的目的地址,请问有没有办法得到原地址呢?
   (p->RequestConnectionInformation)->RemoteAddress);
   ...
}
temporarily
驱动牛犊
驱动牛犊
  • 注册日期2005-11-24
  • 最后登录2018-12-17
  • 粉丝0
  • 关注0
  • 积分151分
  • 威望37点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2007-04-13 09:41
怎么没有人回呢,自己顶一下吧,就是我想再对本地端口过滤,在TDICONNECT的时候,如果我判断该端口是否是我想过滤的端口。 通过什么方法可取到本地端口,有没有什么TDI函数? 或者要通过QueryInformation?
cyliu
论坛版主
论坛版主
  • 注册日期2003-06-13
  • 最后登录2014-04-11
  • 粉丝5
  • 关注0
  • 积分1238分
  • 威望2531点
  • 贡献值0点
  • 好评度577点
  • 原创分14分
  • 专家分10分
板凳#
发布于:2007-04-13 14:31
在完成例程里面获取地址
走走看看开源好 Solaris vs Linux
temporarily
驱动牛犊
驱动牛犊
  • 注册日期2005-11-24
  • 最后登录2018-12-17
  • 粉丝0
  • 关注0
  • 积分151分
  • 威望37点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2007-04-13 14:44
能不能提供多一点信息?是在TDIH_TdiConnectComplete里面取吗?具体怎么个取法,需不需要用到TDIBuildQueryInformation?
monkeyy
驱动中牛
驱动中牛
  • 注册日期2001-12-06
  • 最后登录2010-10-10
  • 粉丝0
  • 关注0
  • 积分315分
  • 威望84点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-04-17 14:45
一般情况下,是在传输地址对象被创建的时候获得本地地址,在TDI_ASSOCIATE_ADDRESS中将传输地址对象中保存的IP/Port拷贝给连接地址对象,在TDI_CONNECT的时候只是需要考虑远端IP/Port就行了。使用TDIBuildQureyInformation在TDIH_TdiConnectComplete中取应该可以的,但是没有试过。
听说老虎会吃人,所以从没想过去摸老虎的屁股。:( :(
temporarily
驱动牛犊
驱动牛犊
  • 注册日期2005-11-24
  • 最后登录2018-12-17
  • 粉丝0
  • 关注0
  • 积分151分
  • 威望37点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2007-04-23 16:01
TDIBuildQureyInformation是运行在PASSIVE_LEVEL上的,在TDIH_TdiConnectComplete里面取不到的。不过这个问题我已经解决了,是在TDI_OpenAddressComplete里面取到的。谢谢楼上了,
游客

返回顶部