代码之家  ›  专栏  ›  技术社区  ›  Alistair Evans

从内核模式驱动程序联网

  •  0
  • Alistair Evans  · 技术社区  · 15 年前

    这个问题很简单,我需要在windowsxp中从内核模式驱动程序打开和控制套接字的能力。我知道vista和after提供了内核模式的winsock,但是XP没有这样的功能。

    干杯

    我有一个建议,让一个用户模式服务做套接字工作,一个使用TDI。哪个最好?

    2 回复  |  直到 14 年前
        1
  •  1
  •   user82238 user82238    14 年前

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

    而且,从驱动程序中移除的复杂性越高(这里是进入用户模式),效果越好。

    但是,使用用户模式服务将需要上下文切换 每次数据传输到驱动程序

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

        2
  •  1
  •   blaze    15 年前

    使用TDI接口,可在XP和Vista上使用。

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