【发布时间】:2011-08-01 11:27:12
【问题描述】:
我需要覆盖一个由 kext 定义的方法来进行我自己的处理并返回我自己的值,所以每当 kext 调用该方法时,它都会被路由到我的。所以我要做的就是在我自己的内核扩展中定义这个方法,然后加载它。 问题是我不知道如何交换方法所以我的方法被调用了。
/* basically, I need to override the isPinDigital method of AppleHDAPathSet */
AppleHDAPathSet::isPinDigital(void)
{
/* I also need to be able to call the superclass' method */
/* return my own value */
return 0;
}
有没有简单的方法来做到这一点?我知道有一种方法可以通过 VTables 来实现,因为所有内核扩展都在同一个地址空间中运行(我认为这是唯一的方法,但我不确定如何去做)。
【问题讨论】:
标签: c++ iokit kernel-extension