Ada*_*vis 15 c# drivers kernel device
在我一头扎进C#之前......
我一直觉得C或者C++最适合在Windows上开发驱动程序.我不喜欢在.NET机器上开发驱动程序的想法.
但.NET似乎是MS推动应用程序开发的方式,所以我现在想知道:
我希望我的设备可以在C#中使用,如果C#中的驱动程序开发成熟,这显然是要走的路,但如果不推荐,我不想在那里花费很多精力.
-亚当
ang*_*son 26
您无法在C#中创建内核模式设备驱动程序,因为运行时无法安全地加载到ring0并按预期运行.
此外,C#不会创建适合作为设备驱动程序加载的二进制文件,尤其是关于驱动程序需要公开的入口点.在加载期间依赖运行时跳转并分析和JIT二进制文件禁止驱动程序子系统加载二进制文件所需的直接访问.
然而,正在进行的工作是将一些设备驱动程序升级到用户模式,你可以在这里看到UDMF(用户模式驱动程序框架)团队的Peter Wieland 的采访.
用户模式驱动程序更适合托管工作,但您必须谷歌一点,以了解是否直接支持C#和.NET.我所知道的只是C#中的内核级驱动程序是不可行的.
但是,如果您必须在C#中编写大量代码,则可以创建C/C++驱动程序和C#服务(或类似服务器)并让驱动程序与托管代码通信.