我正在尝试使用 Visual Studio 2012 中提供的 WDK 工具修改以太网驱动程序。
WDK 中提供的示例是“微型端口适配器”和“NDIS 轻型过滤器”等。我仍处于编写驱动程序的最开始,因此很难在代码中导航。
在 Visual Studio 2012 中构建微型端口适配器后,我能够安装它[在我的网络适配器列表中显示为“Microsoft 虚拟微型端口适配器”。]我还可以为其分配 IP 地址和子网掩码。[我发现这不会连接到我的 PC 上的任何物理设备]。
我还设置了“调试视图”软件来检查来自我的适配器的驱动程序消息。[我在代码中使用了“DbgPrint”语句然后构建它。]但是,调试消息被重复打印。
1-为什么会一次又一次地打印消息?消息来自程序的“datapath.c”文件,来自函数“MPSendNetBufferLists”。['Net Buffer' 指定在网络上发送或接收的数据。]
2-我设置了 Wireshark 来捕获适配器上的数据,它显示有来自 ARP、HTTP、SSDP、MDNS 等的请求来自它。我无法理解与适配器实际交谈的内容?我怎样才能阻止它说话?
我可以使用“ping”来查看我分配给适配器的 IP 地址上是否存在连接,它会成功响应,告诉所有数据包都已发送并且没有数据包丢失。
我的目标是通过 IP 地址向这个以太网适配器发送和接收“数据”数据包。即-我希望应用程序连接到分配给适配器的 IP 地址并与之交谈。
3- 我真的可以用 WDK 中提供的样本来做吗?
欢迎任何其他建议或意见。
PS-我无法使用 Visual Studio 2012 中内置的 Windows 调试器。我使用了 2 台 PC,能够将驱动程序连接并安装到“目标”PC 上,但无法对断点等进行任何操作。代码和在“目标”PC 上安装驱动程序后,程序什么也没做。对此有什么建议吗?我以为我也可以对驱动程序进行逐步调试。[我知道我错了]。
谢谢阿迪亚