我看到很多人实现vpn用的是ndis im技术。windows2000下ndis im位于网络驱动程序(tcpip.sys)和网卡驱动之间。那使用中间驱动程序截获的应该是ip包呀。可是我在passthru的miniport.c文件中的mpsendpackets函数中看到截获的包直接是数据帧。这是为什么呀?它好像是把数据帧直接写入缓冲区,让网卡直接发送了。可是如果要实现vpn的隧道封装时,只是对ip包操作呀,还没有到链路层呢,现在mpsendpackets函数拿过来的是数据帧,那怎么能实现vpn的封装技术呢?