gpt4 book ai didi

C#驱动开发?

转载 作者:可可西里 更新时间:2023-11-01 07:50:07 24 4
gpt4 key购买 nike

在我一头扎进 C# 之前......

我一直认为 C 或 C++ 最适合在 Windows 上开发驱动程序。我不喜欢在 .NET 机器上开发驱动程序的想法。

但是 .NET 似乎是 MS 走向应用程序开发的方式,所以我现在想知道:

  • 人们是否正在使用 C# 开发驱动程序?
  • 您是否必须执行大量 API Hook ,或者 C# 是否具有无需大量黑客操作即可与内核交互的工具?
  • 谁能谈谈运行 C# 程序比通常情况下更接近 Ring 0 的可靠性和安全性?

我希望我的设备可以在 C# 中使用,如果 C# 中的驱动程序开发成熟,那显然是可行的方法,但如果不推荐,我不想在这方面花费太多精力。

  • 有哪些好的入门资源,例如开发简单的虚拟串行端口驱动程序?

-亚当

最佳答案

您不能在 C# 中制作内核模式设备驱动程序,因为运行时无法安全地加载到 ring0 中并按预期运行。

此外,C# 不会创建适合作为设备驱动程序加载的二进制文件,特别是关于驱动程序需要公开的入口点。在加载期间依赖于运行时跳入并分析和 JIT 二进制文件禁止直接访问驱动程序子系统加载二进制文件所需的权限。

然而,将一些设备驱动程序提升到用户模式的工作正在进行中,您可以查看采访 here与 UDMF(用户模式驱动程序框架)团队的 Peter Wieland 合作。

用户模式驱动程序更适合托管工作,但您必须在谷歌上搜索一下以了解是否直接支持 C# 和 .NET。我所知道的是内核级驱动程序仅在 C# 中不可用。

但是,如果您绝对必须在 C# 中编写大量代码,您可以制作一个 C/C++ 驱动程序和一个 C# 服务(或类似服务),并让驱动程序与托管代码对话。

关于C#驱动开发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com