C++ 在Windows NDIS';s passthru示例,如何使用特定适配器发送NDIS_数据包?

C++ 在Windows NDIS';s passthru示例,如何使用特定适配器发送NDIS_数据包?,c++,windows,device-driver,ndis,C++,Windows,Device Driver,Ndis,我正在Windows平台上开发一个类似NAT的软件,方法是修改Windows WDK中的原始passthru示例 我的机器中有几个网络适配器,我想分析收到的每个数据包,然后决定将数据包转发给哪个适配器。 问题来了:在调用NdisSend函数时,我不知道如何指定要发送的适配器 如下所示,NdisSend中有一个BindingHandle参数,但据我所知,它应该代表passthru中的所有适配器(可能不对:) NdisSend(&Status,pAdapt->BindingHandle,MyPack

我正在Windows平台上开发一个类似NAT的软件,方法是修改Windows WDK中的原始passthru示例

我的机器中有几个网络适配器,我想分析收到的每个数据包,然后决定将数据包转发给哪个适配器。 问题来了:在调用NdisSend函数时,我不知道如何指定要发送的适配器

如下所示,NdisSend中有一个BindingHandle参数,但据我所知,它应该代表passthru中的所有适配器(可能不对:)

NdisSend(&Status,pAdapt->BindingHandle,MyPacket)

那么,在调用NdisSend时,如何指定如下形式的适配器:{62E9DB05-88D3-479D-A194-22D6A591DB96}


非常感谢..

我认为线索是
pAdapt->BindingHandle
,因此
pAdapt
是指向包含所有适配器特定信息的结构的指针,包括
BindingHandle
。因此,每个适配器都有一个不同的
BindingHandle
,这就是您控制哪个适配器获取数据包的方式


此外,您可能还想调查是否可以使用WFP而不是NDIS作为驱动程序。

现在我知道我的机器中有一个pAdapt代表适配器,它可以满足我的要求。您提到的WFP可以同时支持XP和Win7吗?因为在我的国家有很多人仍在使用XP。。