1# OH_NativeBuffer 2 3 4## 概述 5 6提供NativeBuffer功能,通过提供的接口,可以实现共享内存的申请、使用、属性查询、释放等操作。 7 8\@syscap SystemCapability.Graphic.Graphic2D.OH_NativeBuffer 9 10**起始版本:** 11 129 13 14 15## 汇总 16 17 18### 文件 19 20| 名称 | 描述 | 21| -------- | -------- | 22| [native_buffer.h](native__buffer_8h.md) | 定义获取和使用NativeBuffer的相关函数。<br/>引用文件:<native_buffer/native_buffer.h> | 23 24 25### 结构体 26 27| 名称 | 描述 | 28| -------- | -------- | 29| [OH_NativeBuffer_Config](_o_h___native_buffer___config.md) | OH_NativeBuffer的属性配置,用于申请新的OH_NativeBuffer实例或查询现有实例的相关属性。 | 30 31 32### 类型定义 33 34| 名称 | 描述 | 35| -------- | -------- | 36| [OH_NativeBuffer](#oh_nativebuffer) | 提供OH_NativeBuffer结构体声明。 | 37 38 39### 函数 40 41| 名称 | 描述 | 42| -------- | -------- | 43| [OH_NativeBuffer_Alloc](#oh_nativebuffer_alloc) (const [OH_NativeBuffer_Config](_o_h___native_buffer___config.md) \*config) | 通过OH_NativeBuffer_Config创建OH_NativeBuffer实例,每次调用都会产生一个新的OH_NativeBuffer实例。 | 44| [OH_NativeBuffer_Reference](#oh_nativebuffer_reference) ([OH_NativeBuffer](#oh_nativebuffer) \*buffer) | 将OH_NativeBuffer对象的引用计数加1。 | 45| [OH_NativeBuffer_Unreference](#oh_nativebuffer_unreference) ([OH_NativeBuffer](#oh_nativebuffer) \*buffer) | 将OH_NativeBuffer对象的引用计数减1,当引用计数为0的时候,该NativeBuffer对象会被析构掉。 | 46| [OH_NativeBuffer_GetConfig](#oh_nativebuffer_getconfig) ([OH_NativeBuffer](#oh_nativebuffer) \*buffer, [OH_NativeBuffer_Config](_o_h___native_buffer___config.md) \*config) | 用于获取OH_NativeBuffer的属性。 | 47| [OH_NativeBuffer_Map](#oh_nativebuffer_map) ([OH_NativeBuffer](#oh_nativebuffer) \*buffer, void \*\*virAddr) | 将OH_NativeBuffer对应的ION内存映射到进程空间。 | 48| [OH_NativeBuffer_Unmap](#oh_nativebuffer_unmap) ([OH_NativeBuffer](#oh_nativebuffer) \*buffer) | 将OH_NativeBuffer对应的ION内存从进程空间移除。 | 49| [OH_NativeBuffer_GetSeqNum](#oh_nativebuffer_getseqnum) ([OH_NativeBuffer](#oh_nativebuffer) \*buffer) | 获取OH_NativeBuffer的序列号。 | 50 51 52## 类型定义说明 53 54 55### OH_NativeBuffer 56 57 58``` 59typedef struct OH_NativeBuffer OH_NativeBuffer 60``` 61 62**描述:** 63 64提供OH_NativeBuffer结构体声明。 65 66 67## 函数说明 68 69 70### OH_NativeBuffer_Alloc() 71 72 73``` 74OH_NativeBuffer* OH_NativeBuffer_Alloc (const OH_NativeBuffer_Config * config) 75``` 76 77**描述:** 78 79通过OH_NativeBuffer_Config创建OH_NativeBuffer实例,每次调用都会产生一个新的OH_NativeBuffer实例。 80 81\@syscap SystemCapability.Graphic.Graphic2D.OH_NativeBuffer 82 83**参数:** 84 85| 名称 | 描述 | 86| -------- | -------- | 87| config | 一个指向OH_NativeBuffer_Config类型的指针。 | 88 89**返回:** 90 91创建成功则返回一个指向OH_NativeBuffer结构体实例的指针,否则返回NULL。 92 93 94### OH_NativeBuffer_GetConfig() 95 96 97``` 98void OH_NativeBuffer_GetConfig (OH_NativeBuffer * buffer, OH_NativeBuffer_Config * config ) 99``` 100 101**描述:** 102 103用于获取OH_NativeBuffer的属性。 104 105\@syscap SystemCapability.Graphic.Graphic2D.OH_NativeBuffer 106 107**参数:** 108 109| 名称 | 描述 | 110| -------- | -------- | 111| buffer | 一个指向OH_NativeBuffer实例的指针。 | 112| config | 一个指向OH_NativeBuffer_Config的指针,用于接收OH_NativeBuffer的属性。 | 113 114 115### OH_NativeBuffer_GetSeqNum() 116 117 118``` 119uint32_t OH_NativeBuffer_GetSeqNum (OH_NativeBuffer * buffer) 120``` 121 122**描述:** 123 124获取OH_NativeBuffer的序列号。 125 126\@syscap SystemCapability.Graphic.Graphic2D.OH_NativeBuffer 127 128**参数:** 129 130| 名称 | 描述 | 131| -------- | -------- | 132| buffer | 一个指向OH_NativeBuffer实例的指针。 | 133 134**返回:** 135 136返回对应OH_NativeBuffer的唯一序列号。 137 138 139### OH_NativeBuffer_Map() 140 141 142``` 143int32_t OH_NativeBuffer_Map (OH_NativeBuffer * buffer, void ** virAddr ) 144``` 145 146**描述:** 147 148将OH_NativeBuffer对应的ION内存映射到进程空间。 149 150\@syscap SystemCapability.Graphic.Graphic2D.OH_NativeBuffer 151 152**参数:** 153 154| 名称 | 描述 | 155| -------- | -------- | 156| buffer | 一个指向OH_NativeBuffer实例的指针。 | 157| virAddr | 一个二级指针,二级指针指向映射到当前进程的虚拟内存的地址。 | 158 159**返回:** 160 161返回值为0表示执行成功。 162 163 164### OH_NativeBuffer_Reference() 165 166 167``` 168int32_t OH_NativeBuffer_Reference (OH_NativeBuffer * buffer) 169``` 170 171**描述:** 172 173将OH_NativeBuffer对象的引用计数加1。 174 175\@syscap SystemCapability.Graphic.Graphic2D.OH_NativeBuffer 176 177**参数:** 178 179| 名称 | 描述 | 180| -------- | -------- | 181| buffer | 一个指向OH_NativeBuffer实例的指针。 | 182 183**返回:** 184 185返回值为0表示执行成功。 186 187 188### OH_NativeBuffer_Unmap() 189 190 191``` 192int32_t OH_NativeBuffer_Unmap (OH_NativeBuffer * buffer) 193``` 194 195**描述:** 196 197将OH_NativeBuffer对应的ION内存从进程空间移除。 198 199\@syscap SystemCapability.Graphic.Graphic2D.OH_NativeBuffer 200 201**参数:** 202 203| 名称 | 描述 | 204| -------- | -------- | 205| buffer | 一个指向OH_NativeBuffer实例的指针。 | 206 207**返回:** 208 209返回值为0表示执行成功。 210 211 212### OH_NativeBuffer_Unreference() 213 214 215``` 216int32_t OH_NativeBuffer_Unreference (OH_NativeBuffer * buffer) 217``` 218 219**描述:** 220 221将OH_NativeBuffer对象的引用计数减1,当引用计数为0的时候,该NativeBuffer对象会被析构掉。 222 223\@syscap SystemCapability.Graphic.Graphic2D.OH_NativeBuffer 224 225**参数:** 226 227| 名称 | 描述 | 228| -------- | -------- | 229| buffer | 一个指向OH_NativeBuffer实例的指针。 | 230 231**返回:** 232 233返回值为0表示执行成功。 234