编写驱动程序以捕获 PPP 帧

当点到点协议 (PPP) 帧通过点到点隧道协议 (PPTP) 隧道发送时,启用加密,或通过使用 IPSec 进行加密的第 2 层隧道协议 (L2TP) 隧道,典型的 PPP 帧捕获实用工具只能捕获具有加密协议标识字段的 PPP 帧。 本文档介绍如何开发驱动程序,该驱动程序可以在 Windows Vista 中捕获 PPP 帧,然后再在发送路径中压缩/加密,或在接收路径中解压缩/解密它们之后。

  1. 编写 NDIS 协议驱动程序。 有关详细信息,请参阅 NDIS 6.0 协议驱动程序NDIS 协议驱动程序 (NDIS 5.1)

  2. 使用硬件标识“ms_netmon”安装驱动程序。 有关如何使用特定硬件标识安装驱动程序的详细说明,请参阅 INF Models 部分

    注意

    每个Windows Vista 计算机仅允许安装一个具有“ms_netmon”硬件标识的驱动程序实体。 若要安装具有此标识的另一个驱动程序,必须卸载第一个驱动程序。 在没有使用“ms_netmon”硬件标识的情况下安装的驱动程序无法执行捕获 PPP 帧所需的绑定。

     

  3. 协议驱动程序应将“ndiswanbh”指定为捕获 PPP 帧的绑定接口。 有关详细说明,请参阅 指定绑定接口

  4. 驱动程序中的 ProtocolBindAdapter 实现应支持“NdisMediumWan”作为中等数组的一部分,以便它可以使用 NdisOpenAdapter 函数打开 ndiswanbh 微型端口边缘。

  5. 如果使用状态NDIS_STATUS_SUCCESS调用 ProtocolOpenAdapterComplete 函数,协议驱动程序应使用标志NDIS_PACKET_TYPE_PROMISCUOUS设置OID_GEN_CURRENT_PACKET_FILTER OID,并通过此绑定NDIS_PACKET_TYPE_ALL_LOCAL。 完成此操作后,协议驱动程序将从 其 ProtocolReceive 函数中的 PPP 框架层接收解密的 PPP 帧。

注意

此信息仅适用于 Windows Vista 计算机上的驱动程序。