如何在 Mac 内核扩展代码中获取当前进程 ID?

How do you get the current process ID in Mac kernel extension code?

我最初试图在我的内核模块中使用 getpid() 作为 OS X/macOS,有没有办法获取其上下文中进程的 PID(进程 ID)我的kext在内核中是运行?是否有我可以使用的现有函数或变量?

要获取当前 运行 内核线程关联的进程的 PID,请调用 proc_selfpid() function;您需要在您的 kext 代码中 #include <sys/proc.h> 才能获得原型。如果您的代码是 运行 在某种系统调用回调的上下文中,那么 PID 当然只会对应于用户进程。