来自内核模式驱动程序的网络

时间:2010-08-13 10:40:27

标签: networking windows-xp kernel driver

这个问题非常明显,我需要能够在windows xp中从内核模式驱动程序打开和控制套接字。我知道vista和after提供了一个类似于内核模式的winsock,但对于XP来说却没有这样的东西。

干杯

修改 我建议让用户模式服务执行套接字工作,并建议使用TDI。哪个最好?

2 个答案:

答案 0 :(得分:1)

使用TDI界面,可在XP和Vista上使用。

http://msdn.microsoft.com/en-us/library/ff565112.aspx

答案 1 :(得分:1)

TDI不是一个易于使用的界面。它旨在从应用程序中抽象出网络传输驱动程序(TCP,NetBEUI,AppleTalk等)。您必须完全理解API才能将其用于套接字工作 - 这肯定比编写用户模式服务并与之通信要多得多。您可以从服务向驱动程序发出反向IRP,因此驱动程序可以在需要时触发通信。

此外,您从驱动程序中删除的复杂性越高(此处为用户模式)越好。

但是,使用用户模式服务将需要每个数据传输到驱动程序的上下文切换,这可能是基于每个数据包。这是最好避免的开销。

我很好奇为什么驱动程序需要执行网络I / O.从表面上看,这似乎表明了一个设计问题。