【发布时间】:2018-08-06 13:30:40
【问题描述】:
我在基于 iokit 的驱动程序中使用了一些全局变量,即在主类实例之外。但是,由于使用未初始化的全局变量或尝试双重释放,这会在驱动程序启动时导致一些意外的恐慌 拆卸时的全局变量。
iokit驱动生命周期中全局变量的生命周期是什么? 如果我在声明时设置了一个全局变量,
例如,如果我有来自 lck_grp_t * my_lock_grp 类型的全局变量...
当我的 iokit 驱动程序到达
::start方法时,我可以假设我的全局变量已经分配并准备好设置了吗? (my_lock_grp = lck_grp_alloc_init("my-locks", my_lock_grp_attr);)当我尝试在我的 iokit
::free方法上释放它时,我可以假设我的全局变量仍然有效吗? (lck_grp_free(my_lock_grp))一般的问题是,与驱动程序实例本身相比,基于 iokit 的驱动程序中全局变量的生命周期是什么。
【问题讨论】:
标签: macos kernel global-variables iokit kernel-extension