首页 > 解决方案 > iokit 驱动程序中的全局变量

问题描述

我在基于iokit 的驱动程序中使用了一些全局变量,即在主类实例之外。但是,由于使用未初始化的全局变量或在拆卸时尝试双重释放全局变量,这会在驱动程序启动时导致一些意外的恐慌。

iokit驱动程序生命周期中全局变量的生命周期是什么?如果我在声明时设置了一个全局变量,

例如,如果我有来自类型的全局变量lck_grp_t * my_lock_grp...

  1. 我可以假设我的全局变量已经分配并准备好在我的 iokit 驱动程序到达该::start方法时进行设置吗?( my_lock_grp = lck_grp_alloc_init("my-locks", my_lock_grp_attr);)

  2. 当我尝试在我的 iokit::free方法上释放它时,我可以假设我的全局变量仍然有效吗?( lck_grp_free(my_lock_grp))

  3. 一般的问题是,与驱动程序实例本身相比,基于 iokit 的驱动程序中全局变量的生命周期是什么。

标签: macoskernelglobal-variablesiokitkernel-extension

解决方案



推荐阅读