1# OHIPCSkeleton 2 3 4## 概述 5 6提供IPC框架tokenId、凭据、PID/UID、线程池配置等功能C接口。 7 8**系统能力:** SystemCapability.Communication.IPC.Core 9 10**起始版本:** 12 11 12 13## 汇总 14 15 16### 文件 17 18| 名称 | 描述 | 19| -------- | -------- | 20| [ipc_cskeleton.h](ipc__cskeleton_8h.md) | 提供IPC框架tokenId、凭据、PID/UID、线程池配置等功能C接口。 | 21 22 23### 函数 24 25| 名称 | 描述 | 26| -------- | -------- | 27| void [OH_IPCSkeleton_JoinWorkThread](#oh_ipcskeleton_joinworkthread) (void) | 当前线程加入IPC工作线程池。 | 28| void [OH_IPCSkeleton_StopWorkThread](#oh_ipcskeleton_stopworkthread) (void) | 当前线程退出IPC工作线程池。 | 29| uint64_t [OH_IPCSkeleton_GetCallingTokenId](#oh_ipcskeleton_getcallingtokenid) (void) | 获取调用方TokenId.该接口需要在IPC上下文中调用,否则返回自身TokenId。 | 30| uint64_t [OH_IPCSkeleton_GetFirstTokenId](#oh_ipcskeleton_getfirsttokenid) (void) | 获取首调者TokenId。 | 31| uint64_t [OH_IPCSkeleton_GetSelfTokenId](#oh_ipcskeleton_getselftokenid) (void) | 获取自身TokenId。 | 32| uint64_t [OH_IPCSkeleton_GetCallingPid](#oh_ipcskeleton_getcallingpid) (void) | 获取调用方进程ID.该接口需要在IPC上下文中调用,否则返当前进程ID。 | 33| uint64_t [OH_IPCSkeleton_GetCallingUid](#oh_ipcskeleton_getcallinguid) (void) | 获取调用方用户ID.该接口需要在IPC上下文中调用,否则返当前用户ID。 | 34| int [OH_IPCSkeleton_IsLocalCalling](#oh_ipcskeleton_islocalcalling) (void) | 判断是否正在进行本地调用。 | 35| int [OH_IPCSkeleton_SetMaxWorkThreadNum](#oh_ipcskeleton_setmaxworkthreadnum) (const int maxThreadNum) | 设置最大工作线程数。 | 36| int [OH_IPCSkeleton_ResetCallingIdentity](#oh_ipcskeleton_resetcallingidentity) (char \*\*identity, int32_t \*len, [OH_IPC_MemAllocator](_o_h_i_p_c_parcel.md#oh_ipc_memallocator) allocator) | 重置调用方身份凭证为自身进程的身份凭证(包括tokenid、UID和PID信息),并返回调用方的凭证信息。 该信息主要用于OH_IPCSkeleton_SetCallingIdentity接口调用。 | 37| int [OH_IPCSkeleton_SetCallingIdentity](#oh_ipcskeleton_setcallingidentity) (const char \*identity) | 恢复调用方凭证信息至IPC上下文中。 | 38| int [OH_IPCSkeleton_IsHandlingTransaction](#oh_ipcskeleton_ishandlingtransaction) (void) | 是否正在处理IPC请求。 | 39 40 41## 函数说明 42 43 44### OH_IPCSkeleton_GetCallingPid() 45 46``` 47uint64_t OH_IPCSkeleton_GetCallingPid (void ) 48``` 49 50**描述** 51 52获取调用方进程ID.该接口需要在IPC上下文中调用,否则返当前进程ID。 53 54**系统能力:** SystemCapability.Communication.IPC.Core 55 56**起始版本:** 12 57 58**返回:** 59 60返回调用方进程ID。 61 62 63### OH_IPCSkeleton_GetCallingTokenId() 64 65``` 66uint64_t OH_IPCSkeleton_GetCallingTokenId (void ) 67``` 68 69**描述** 70 71获取调用方TokenId.该接口需要在IPC上下文中调用,否则返回自身TokenId。 72 73**系统能力:** SystemCapability.Communication.IPC.Core 74 75**起始版本:** 12 76 77**返回:** 78 79返回调用方TokenId。 80 81 82### OH_IPCSkeleton_GetCallingUid() 83 84``` 85uint64_t OH_IPCSkeleton_GetCallingUid (void ) 86``` 87 88**描述** 89 90获取调用方用户ID.该接口需要在IPC上下文中调用,否则返当前用户ID。 91 92**系统能力:** SystemCapability.Communication.IPC.Core 93 94**起始版本:** 12 95 96**返回:** 97 98返回调用方用户ID。 99 100 101### OH_IPCSkeleton_GetFirstTokenId() 102 103``` 104uint64_t OH_IPCSkeleton_GetFirstTokenId (void ) 105``` 106 107**描述** 108 109获取首调者TokenId。 110 111**系统能力:** SystemCapability.Communication.IPC.Core 112 113**起始版本:** 12 114 115**返回:** 116 117返回首调者TokenId。 118 119 120### OH_IPCSkeleton_GetSelfTokenId() 121 122``` 123uint64_t OH_IPCSkeleton_GetSelfTokenId (void ) 124``` 125 126**描述** 127 128获取自身TokenId。 129 130**系统能力:** SystemCapability.Communication.IPC.Core 131 132**起始版本:** 12 133 134**返回:** 135 136返回自身TokenId。 137 138 139### OH_IPCSkeleton_IsHandlingTransaction() 140 141``` 142int OH_IPCSkeleton_IsHandlingTransaction (void ) 143``` 144 145**描述** 146 147是否正在处理IPC请求。 148 149**系统能力:** SystemCapability.Communication.IPC.Core 150 151**起始版本:** 12 152 153**返回:** 154 155正在处理IPC请求,返回1;否则,返回0。 156 157 158### OH_IPCSkeleton_IsLocalCalling() 159 160``` 161int OH_IPCSkeleton_IsLocalCalling (void ) 162``` 163 164**描述** 165 166判断是否正在进行本地调用。 167 168**系统能力:** SystemCapability.Communication.IPC.Core 169 170**起始版本:** 12 171 172**返回:** 173 174正在进行本地调用,返回1;否则,返回0。 175 176 177### OH_IPCSkeleton_JoinWorkThread() 178 179``` 180void OH_IPCSkeleton_JoinWorkThread (void ) 181``` 182 183**描述** 184 185当前线程加入IPC工作线程池。 186 187**系统能力:** SystemCapability.Communication.IPC.Core 188 189**起始版本:** 12 190 191 192### OH_IPCSkeleton_ResetCallingIdentity() 193 194``` 195int OH_IPCSkeleton_ResetCallingIdentity (char ** identity, int32_t * len, OH_IPC_MemAllocator allocator ) 196``` 197 198**描述** 199 200重置调用方身份凭证为自身进程的身份凭证(包括tokenid、UID和PID信息),并返回调用方的凭证信息。 该信息主要用于OH_IPCSkeleton_SetCallingIdentity接口调用。 201 202**系统能力:** SystemCapability.Communication.IPC.Core 203 204**起始版本:** 12 205 206**参数:** 207 208| 名称 | 描述 | 209| -------- | -------- | 210| identity | 用于存储调凭证的内存地址,该内存由用户提供的分配器进行内存分配,用户使用完后需要主动释放,不能为空。 | 211| len | 写入identity的数据长度,不能为空。 | 212| allocator | 用户指定的用来分配identity的内存分配器,不能为空。 | 213 214**返回:** 215 216成功返回[OH_IPC_ErrorCode#OH_IPC_SUCCESS](_o_h_i_p_c_error_code.md); 217 218参数错误返回[OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR](_o_h_i_p_c_error_code.md); 219 220内存分配失败返回[OH_IPC_ErrorCode#OH_IPC_MEM_ALLOCATOR_ERROR](_o_h_i_p_c_error_code.md); 221 222其它情况返回[OH_IPC_ErrorCode#OH_IPC_INNER_ERROR](_o_h_i_p_c_error_code.md)。 223 224 225### OH_IPCSkeleton_SetCallingIdentity() 226 227``` 228int OH_IPCSkeleton_SetCallingIdentity (const char * identity) 229``` 230 231**描述** 232 233恢复调用方凭证信息至IPC上下文中。 234 235**系统能力:** SystemCapability.Communication.IPC.Core 236 237**起始版本:** 12 238 239**参数:** 240 241| 名称 | 描述 | 242| -------- | -------- | 243| identity | 调用方凭证,不能为空。来源于OH_IPCSkeleton_ResetCallingIdentity的返回值。 | 244 245**返回:** 246 247成功返回[OH_IPC_ErrorCode#OH_IPC_SUCCESS](_o_h_i_p_c_error_code.md); 248 249参数错误返回[OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR](_o_h_i_p_c_error_code.md); 250 251其它情况返回[OH_IPC_ErrorCode#OH_IPC_INNER_ERROR](_o_h_i_p_c_error_code.md)。 252 253 254### OH_IPCSkeleton_SetMaxWorkThreadNum() 255 256``` 257int OH_IPCSkeleton_SetMaxWorkThreadNum (const int maxThreadNum) 258``` 259 260**描述** 261 262设置最大工作线程数。 263 264**系统能力:** SystemCapability.Communication.IPC.Core 265 266**起始版本:** 12 267 268**参数:** 269 270| 名称 | 描述 | 271| -------- | -------- | 272| maxThreadNum | 最大工作线程数,默认16,范围[1, 32]。 | 273 274**返回:** 275 276成功返回[OH_IPC_ErrorCode#OH_IPC_SUCCESS](_o_h_i_p_c_error_code.md); 277 278参数错误返回[OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR](_o_h_i_p_c_error_code.md); 279 280其它情况返回[OH_IPC_ErrorCode#OH_IPC_INNER_ERROR](_o_h_i_p_c_error_code.md)。 281 282 283### OH_IPCSkeleton_StopWorkThread() 284 285``` 286void OH_IPCSkeleton_StopWorkThread (void ) 287``` 288 289**描述** 290 291当前线程退出IPC工作线程池。 292 293**系统能力:** SystemCapability.Communication.IPC.Core 294 295**起始版本:** 12 296