Mic*_*ick 17 c++ delphi kernel driver delphi-2010
我一直听说Delphi可以做任何C++可以做的事情......除了编写Windows驱动程序.这是正确的,如果是这样,那为什么呢?
我最近在线阅读了一篇博客文章,可能表明使用Delphi编写驱动程序的可能解决方案,但它已经3年了,我不知道这些信息有多准确.
因此,使用最新版本的Delphi(2010),编写Windows驱动程序在技术上是否可行?
Phi*_*hiS 19
在技术上可能用Delphi 编写一些驱动程序,但就一般答案而言,我会说:你不能轻易地用Delphi编写驱动程序.
首先,用户模式驱动程序(UMDF)驱动程序和内核模式(KMDF)驱动程序之间存在差异.使用Delphi可以实现UMDF驱动程序.但是,KMDF司机并不容易实现,因为
1)Delphi的链接器不能生成它们
2)Delphi的目标文件格式与Microsoft链接器默认使用的COFF格式不同.
3)Delphi的RTL假设它处于用户模式并且可能做某些不应该在kernel-land中做的事情(我认为例如处理异常的方式;也有不同的内存管理),所以你有要非常小心哪些RTL功能可以安全使用.系统和SysInit单元也存在困难(请参阅Ritsaert Hornstra的评论到另一个答案).
我不是说这些不是无法克服的问题(参见你链接的帖子)如果你真的很专注,但它不会直截了当.
其次,KMDF驱动程序(我不知道UMDF,实际上 - 任何人都可以发表评论吗?)因为Win64必须使用64位代码.从目前开始,没有64位Delphi编译器,编写它们是一个明确的禁忌.
您可以使用任何语言编写Windows驱动程序,该编译器可以编译为PE格式的DLL,没有外部依赖关系(除了批准在内核中加载的那些),可以使用STDCALL链接调用函数,并使用STDCALL链接导出函数.
没有未经批准的外部依赖性将是我想到的困难部分.:)
| 归档时间: |
|
| 查看次数: |
3491 次 |
| 最近记录: |