带 tcp/ip 堆栈的 NDIS 5/6 驱动程序,有代码吗?

发布于 2024-12-09 13:15:44 字数 159 浏览 1 评论 0 原文

我正在尝试编写一个 Windows 内核驱动程序,它需要使用 NDIS 5/6 进行 tcp/ip 通信。据我了解,由于它将使用 NDIS,因此它需要自己的 tcp/ip 堆栈实现。

谁能指出我的实现方向,或者类似的东西?

任何帮助将不胜感激!

亲切的问候

I'm trying to write a windows kernel driver which requires tcp/ip communication using NDIS 5/6. Since it will use NDIS, as I understand it, it needs it's own tcp/ip stack implementation.

Could anyone point me in the direction of an implementation of this, or something close to it?

Any help would be greatly appreciated!

Kind regards

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一百个冬季 2024-12-16 13:15:44

您不需要实现自己的 TCP/IP 堆栈!

首先,您确定这需要在驱动程序中完成吗?所有复杂的代码和业务逻辑通常应该位于用户模式应用程序或服务中。驱动程序主要是硬件的非常简单的包装。该规则也不仅仅是一些抽象原则 - 编写用户模式代码要容易得多,您可以在其中使用熟悉的调试器和更广泛的 Win32 API 集。如果您可以将大部分代码移至用户模式,您将更快地解决问题。

如果您确实必须在内核模式下执行 TCP 套接字 I/O,那么您应该使用 Winsock 内核 (WSK)。 WSK 允许您打开套接字,类似于用户模式下的 Winsock。 (尽管用户模式 ​​Winsock API 有更多选项和功能;WSK 是最基本的)。

WSK 可在 Windows Vista 及更高版本上使用。如果必须支持Windows XP,那么就需要使用TDI。 TDI 更难获得正确的结果;如果可以避免的话,我不建议使用它。

You don't need to implement your own TCP/IP stack!

First, are you sure that this needs to be done in a driver? All your complex code and business logic should usually be in a usermode application or service. Drivers are mostly meant to be very simple wrappers around hardware. This rule isn't just some abstract principle either — it's much easier to write usermode code, where you can use a familiar debugger and the much-broader set of Win32 APIs. You'll solve your problem sooner if you can move most of your code to usermode.

If you really must do TCP socket I/O in kernel mode, then you should use Winsock Kernel (WSK). WSK allows you to open a socket, similar to Winsock in usermode. (Although the usermode Winsock API has more options and features; WSK is bare-bones).

WSK is available on Windows Vista and later. If you must support Windows XP, then you need to use TDI. TDI is much harder to get right; I don't reccomend using it if you can avoid it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文