Macos 如何覆盖DriverKit OSData内部缓冲区的部分?

Macos 如何覆盖DriverKit OSData内部缓冲区的部分?,macos,driverkit,macos-system-extension,Macos,Driverkit,Macos System Extension,的文档中说“…您可以向其中添加字节并覆盖字节数组的部分。”。我可以看到一个将字节转换为字节的方法,但我不明白如何覆盖缓冲区的一部分 另一个选项是使用IONewZero来分配我所需类型的大量元素。我的情况是,我只需要这个ints 例如: T* dataBuffer = IONewZero(T, SIZE); 然后取消分配: IOSafeDeleteNULL(dataBuffer_, T, SIZE); 与使用IONewZero/IOSafeDeleteNULL的解决方案相比,使用OSData对

的文档中说“…您可以向其中添加字节并覆盖字节数组的部分。”。我可以看到一个将字节转换为字节的方法,但我不明白如何覆盖缓冲区的一部分

另一个选项是使用
IONewZero
来分配我所需类型的大量元素。我的情况是,我只需要这个
int
s

例如:

T* dataBuffer = IONewZero(T, SIZE);
然后取消分配:

IOSafeDeleteNULL(dataBuffer_, T, SIZE);

与使用
IONewZero
/
IOSafeDeleteNULL
的解决方案相比,使用
OSData
对象的优势是什么?

我认为文档可能只是从
OSData
的内核变量复制粘贴而来的。我在很多地方都见过,尤其是在美国

OSData
对于处理类似于plist的数据结构(即设置和获取服务对象的属性)以及其他ostype非常有用:
OSArray
OSDictionary
OSNumber
,等等。它还用于带内存储(