好消息,超酷的在线虚拟网络实验室上线了!点击开始实验

为获得更好的浏览效果,建议您使用 Firefox 或者 Chrome 浏览器



Packet.dll -- 数据包驱动API
[WinPcap internals]

Packet.dll 是一个动态链接库,并提供了一些低层的函数,用来:
  • 安装,启动和停止NPF设备驱动
  • 从NPF驱动接收数据包
  • 通过NPF驱动发送数据包
  • 获取可用的网络适配器列表
  • 获取适配器的不同信息,比如设备描述,地址列表和掩码
  • 查询并设置一个低层的适配器参数

packet.dll有两个版本:第一个运行于 Windows 95/98/ME, 第二个运行于 Windows NT/2000/XP.

提供了对WinPcap的低层函数的访问,这种访问依赖于系统。这个库维护了所有的依赖于系统的细节(比如管理设备,协助操作系统管理适配器,在注册表中查找信息等),并且输出一个可以在所有Windows操作系统中通用的API。这样,操作系统和库就可以在所有的 Windows操作系统下重新编译并运行了。

然而,不是所有的packet.dll的API是完全可移植的:有些高级特性,比如内核模式下的堆处理,只能运行在WinNTx版本的WinPcap,Win9x的packet.dll不提供这样的功能。换种说法就是,NTx版本要比9x版本功能强大,也就是说,在Win9x版本中提供的所有函数,在WinNTx中都有.

这个库的另一个重要特性,就是维护了NPF驱动。当程序试图访问适配器时,Packet.dll在后台安装和启动了驱动,这些对编程人员来说,是透明的。这就避免了用户通过控制面板,手动安装驱动程序。

非常重要的注意事项,请仔细阅读!

Packet.dll 的源代码是开放的,并且有完整的文档。 然而,packet.dll应该被认为是核心API,因为它建立在WinPcap内部的目的,就是为真正的公共API:wpcap.dll建立一层"隔离墙"。由于应用程序使用WinPcap的常规(normal)方式和推荐(suggested)方式,是通过wpcap.dll,所以,我们不保证packet.dll的API不会在未来的WinPcap的发行版中被修改,并且,我们不提供这个API的支持。由于这个原因,在这个指南中,不会含有有关Packet.dll的文档。用户可以自行使用Doxygen来创建它们,或者阅读代码中的注释。