wangchao.org
添加收藏 | 博客
 
购物视频论坛IT业界自然风光美女图片王朝网络小游戏BT下载生活百科编程设计手机图铃小说
 
笑话 | 水库 | 娱乐 | 体育 | 英语 | 宠物 | 美食 | 旅游 | 养生 | 手机 | 数码 | 汽车 | 珠宝 | 美容 | 装修 | 厨房 | 科普 | 动物 | 植物 | 影音 | 百科 | 知道 | 词典
  
 
 您好! 您现在位于: 王朝网络 → 编程设计 → 《过滤钩子驱动程序一(微软DDK文档,FLASHSKY翻译)返回上一页 
 
1楼 

过滤钩子驱动程序一(微软DDK文档,FLASHSKY翻译)

  网上购物、在线购物、购物搜索 欢迎光临本站购买图书、影视、音乐、数码、百货,手机等商品。

  本章说明过滤钩子驱动程序. 一个过滤钩子驱动程序是用于操作系统中的一个IP过滤驱动程序的上下文
  中处理或过滤网络包,过滤钩子驱动程序扩展了IP过滤驱动程序的功能。下面主题描述了过滤钩子驱动程序
  的一些特性, 解释怎样建立过滤钩子并列出实现一个过滤钩子驱动程序相关的输入输出控制代码函数的参考
  信息:
  1.1 关于过滤钩子驱动程序
   一个过滤钩子驱动程序是一个用于过滤网络包的核心模式驱动程序. 一个过滤钩子驱动程序扩展系统提
  供的IP过滤驱动程序的功能。一个过滤钩子驱动程序仅仅只能安装于2000及其之后的系统上。仅仅只有一个
  过滤钩子驱动程序能被安装在系统之上并且被IP过滤驱动程序使用。如果一个过滤钩子驱动程序的指向用于
  IP过滤驱动程序的扩展钩子指针为空,那么他只能使用IP过滤驱动程序注册自己。一旦一个过滤钩子驱动程
  序使用了IP过滤驱动程序注册自己,IP过滤程序给这个IP过滤程序的扩展钩子分派文件对象,用这种方法,
  这个IP过滤驱动程序确保自己只能接受和使用单个的过滤钩子驱动程序.
  1.2 建立一个过滤钩子驱动程序
   一个过滤钩子驱动程序在包过滤API不能满足过滤网络包时候来建立。用户模式应用程序使用这些API来
  建立和管理系统在IP过滤驱动程序中提供的输出和输入过滤器。更多API信息查看SDK。
   一个过滤钩子驱动程序是在核心模式驱动程序下开发的. 另外, 一个过滤钩子驱动程序完成一个过滤钩
  子回调函数并在系统提供的IP过滤驱动程序中注册这个回调函数. 这个回调函数被看作一个过滤钩子。这个
  IP过滤驱动程序以后使用这个过滤钩子以决定怎样处理到达和输出的包.
   下面的章节将说明怎样建立一个过滤钩子驱动程序
  1.2.1 建立过滤钩子
   一个过滤钩子在执行一个PacketFilterExtensionPtr类型的函数时被建立。
   当一个过滤钩子驱动程序在系统提供的IP过滤驱动程序中注册自己的过滤钩子实体指针时 ,这个过滤钩子
  驱动程序给他的过滤钩子提供符号地址. 因为一个过滤钩子驱动程序提供这个地址, 而不是名字,这个过滤钩
  子可以选择任何名字。当然,好的程序习惯是用其基本的功能来命名这个过滤钩子的名字。
   一个过滤钩子对到达与发出的包进行特定的动作,他将与IP过滤驱动程序发送给过滤钩子来检查怎样的包
  将进一步处理的信息与到达的特定信息做比较。在过滤钩子检查包以后,他将使用PF_FORWARD, PF_DROP,或
  PF_PASS返回响应代码给IP过滤驱动程序怎样处理的信息:
  PF_FORWARD
  规定给IP过滤驱动程序马上返回转发响应给IP栈. 对于本地包, IP转发他们到栈顶. 如果包目标地址为外
  部机器并且路由允许, IP路由他们到对应的路由.
  PF_DROP
  规定给IP过滤驱动程序马上返回drop响应给IP栈. IP将drop这个包.
  PF_PASS
   规定给IP过滤驱动程序过滤这个包并且返回这个结果响应给IP栈. IP过滤驱动程序怎样处理这个过滤包决
  定于他怎样在Packet Filtering API中做的设置. 过滤钩子如果他检查到他不能处理的包但将允许IP过滤驱动
  程序过滤包的时候返回这个pass响应。
  1.2.2 过滤钩子例子
   本节显示了一个简单的过滤钩子基于某几个固定的包属性来构成forward和drop检查. 这个过滤钩子指定
  drop TCP包而forward其他协议的包.
   注意:如果特定IP地址或TCP/UDP端口的包必须被过滤,考虑使用包过滤API替代建立一个用户模式的应用
  程序。这些API优化了系统提供的IP过滤驱动程序处理包而不需要在其上关联一个过滤钩子驱动程序.
  #define PROT_TCP 6
  // Drop all TCP packets
  PF_FORWARD_ACTION
  DropTcpPackets(
  unsigned char *PacketHeader,
  unsigned char *Packet,
  unsigned intPacketLength,
  unsigned intRecvInterfaceIndex,
  unsigned intSendInterfaceIndex,
   IPAddr RecvLinkNextHop,
   IPAddr SendLinkNextHop
  )
  {
  if (PacketHeader->iph_protocol == PROT_TCP)
  {
  return PF_DROP;
  }
  return PF_FORWARD;
  }

本章说明过滤钩子驱动程序. 一个过滤钩子驱动程序是用于操作系统中的一个IP过滤驱动程序的上下文 中处理或过滤网络包,过滤钩子驱动程序扩展了IP过滤驱动程序的功能。下面主题描述了过滤钩子驱动程序 的一些特性, 解释怎样建立过滤钩子并列出实现一个过滤钩子驱动程序相关的输入输出控制代码函数的参考 信息:   1.1 关于过滤钩子驱动程序   一个过滤钩子驱动程序是一个用于过滤网络包的核心模式驱动程序. 一个过滤钩子驱动程序扩展系统提 供的IP过滤驱动程序的功能。一个过滤钩子驱动程序仅仅只能安装于2000及其之后的系统上。仅仅只有一个 过滤钩子驱动程序能被安装在系统之上并且被IP过滤驱动程序使用。如果一个过滤钩子驱动程序的指向用于 IP过滤驱动程序的扩展钩子指针为空,那么他只能使用IP过滤驱动程序注册自己。一旦一个过滤钩子驱动程 序使用了IP过滤驱动程序注册自己,IP过滤程序给这个IP过滤程序的扩展钩子分派文件对象,用这种方法, 这个IP过滤驱动程序确保自己只能接受和使用单个的过滤钩子驱动程序.   1.2 建立一个过滤钩子驱动程序   一个过滤钩子驱动程序在包过滤API不能满足过滤网络包时候来建立。用户模式应用程序使用这些API来 建立和管理系统在IP过滤驱动程序中提供的输出和输入过滤器。更多API信息查看SDK。   一个过滤钩子驱动程序是在核心模式驱动程序下开发的. 另外, 一个过滤钩子驱动程序完成一个过滤钩 子回调函数并在系统提供的IP过滤驱动程序中注册这个回调函数. 这个回调函数被看作一个过滤钩子。这个 IP过滤驱动程序以后使用这个过滤钩子以决定怎样处理到达和输出的包.   下面的章节将说明怎样建立一个过滤钩子驱动程序   1.2.1 建立过滤钩子   一个过滤钩子在执行一个PacketFilterExtensionPtr类型的函数时被建立。   当一个过滤钩子驱动程序在系统提供的IP过滤驱动程序中注册自己的过滤钩子实体指针时 ,这个过滤钩子 驱动程序给他的过滤钩子提供符号地址. 因为一个过滤钩子驱动程序提供这个地址, 而不是名字,这个过滤钩 子可以选择任何名字。当然,好的程序习惯是用其基本的功能来命名这个过滤钩子的名字。   一个过滤钩子对到达与发出的包进行特定的动作,他将与IP过滤驱动程序发送给过滤钩子来检查怎样的包 将进一步处理的信息与到达的特定信息做比较。在过滤钩子检查包以后,他将使用PF_FORWARD, PF_DROP, 或 PF_PASS返回响应代码给IP过滤驱动程序怎样处理的信息:   PF_FORWARD   规定给IP过滤驱动程序马上返回转发响应给IP栈. 对于本地包, IP转发他们到栈顶. 如果包目标地址为外 部机器并且路由允许, IP路由他们到对应的路由.   PF_DROP   规定给IP过滤驱动程序马上返回drop响应给IP栈. IP将drop这个包.   PF_PASS   规定给IP过滤驱动程序过滤这个包并且返回这个结果响应给IP栈. IP过滤驱动程序怎样处理这个过滤包决 定于他怎样在Packet Filtering API中做的设置. 过滤钩子如果他检查到他不能处理的包但将允许IP过滤驱动 程序过滤包的时候返回这个pass响应。   1.2.2 过滤钩子例子   本节显示了一个简单的过滤钩子基于某几个固定的包属性来构成forward和drop检查. 这个过滤钩子指定 drop TCP包而forward其他协议的包.   注意:如果特定IP地址或TCP/UDP端口的包必须被过滤,考虑使用包过滤API替代建立一个用户模式的应用 程序。这些API优化了系统提供的IP过滤驱动程序处理包而不需要在其上关联一个过滤钩子驱动程序.   #define PROT_TCP  6   // Drop all TCP packets   PF_FORWARD_ACTION   DropTcpPackets(     unsigned char  *PacketHeader,     unsigned char  *Packet,     unsigned int  PacketLength,     unsigned int  RecvInterfaceIndex,     unsigned int  SendInterfaceIndex,     IPAddr     RecvLinkNextHop,     IPAddr     SendLinkNextHop     )   {   if (PacketHeader->iph_protocol == PROT_TCP)   {     return PF_DROP;   }   return PF_FORWARD;  }

 
标签: DDK  FLASHSKY  微软  文档  程序  翻译  过滤  钩子  驱动程序  
 
您可以将本页贴到其他网站
UBB代码HTML代码
 
 
 
 
 
 
 更多内容
 ·STL知识准备: 1. C++关键字typen ·VC开发应用程序答疑 ·为什么要学习设计模式(Design Pa ·《编程之道》(之前的那篇好象出
 ·完全控制你的Windows桌面 ·面向对象技术在软件重用和体系结 ·创建更易理解的动态注释用户界面 ·在VC中使用WebBrowser控件的两方
 ·用ADO调用存储过程时出现如下错误 ·编程获取图标一法 ·绘制位图的问题 ·WIN2000漏洞(2) —— 绿色兵团的
 ·WIN2000漏洞(1) —— 绿色兵团的 ·WINDOWS9x 的后台进程 ·VC6中工具条的新特色 ·高级程序员考试经验
 ·软件设计中的可用性 ·一个debug应用程序出现运行时诊测 ·任务栏窗口以及其子窗口结构 ·VC6中两个对话框的同时显示 作
 ·重贴:MFC类中获得其它类指针 ·VC备份时可以删除的文件 ·9x下通过执行文件名获得进程ID的 ·php,asp,jsp,c,速度比较
 
 
最新评论  点此查看所有评论
 
 
 
 
发表评论(支持UBB码)


验证码:  
 
 
 
© 2005- 王朝网络 版权所有