Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode IORegistry中的OSDictionary*注入_Xcode_Macos_Iokit_Kernel Extension - Fatal编程技术网

Xcode IORegistry中的OSDictionary*注入

Xcode IORegistry中的OSDictionary*注入,xcode,macos,iokit,kernel-extension,Xcode,Macos,Iokit,Kernel Extension,我正在尝试创建一个新词典,并将其插入iRegistry。我已经设法注入了简单的字符串或数据值,但仅此而已 我的方法是通过修改的iopciffamily.kext,它不是为了特定的目的,只是为了学习 我的1行值代码是这样的 if (product == id){ setProperty("test", "test") } 还有另一种方法 if (product == id){ propTable->setObject("TEST", prop) prop->release(); }

我正在尝试创建一个新词典,并将其插入iRegistry。我已经设法注入了简单的字符串或数据值,但仅此而已

我的方法是通过修改的iopciffamily.kext,它不是为了特定的目的,只是为了学习

我的1行值代码是这样的

if (product == id){ setProperty("test", "test") }
还有另一种方法

if (product == id){ propTable->setObject("TEST", prop) prop->release(); }
propTable是父字典,所以我必须创建一个子字典,我可以使用setObject参数向其中注入值

有人知道怎么做吗?我猜一定是这样的:

propTable->newTable->setObject(etc)
但我没有想到如何为propTable创建newTable,以便将其插入到现有的product==id中


非常感谢,如果让人困惑,很抱歉。不用于用英语解释与代码相关的内容。

如果我正确理解您的问题,您需要工厂功能

例如:

OSDictionary* prop_dict = OSDictionary::withCapacity(1);
OSString* val = OSString::withCString("test");
if (!prop_dict || !val)
{
  // handle error...
}
prop_dict->setObject("test", val);
val->release(); val = NULL;
然后,要在属性表中使用它:

propTable->setObject("NewProperty", prop_dict);
prop_dict->release(); prop_dict = NULL;

谢谢你,先生!正是我所需要的。有趣的是,我尝试了类似的东西,但没有使用OSString,不用说它不起作用。