编写驱动程序以捕获 PPP 帧

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

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

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

    注意

    每台 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_FILTEROID,并通过 此绑定 NDIS_PACKET_TYPE_ALL_LOCAL 。 完成此操作后,协议驱动程序将从其 ProtocolReceive 函数中的 PPP 框架层接收解密的 PPP 帧。

注意

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