---
title: initTeeCtx
description: "将配置好的dgCfg中的通信回调和节点信息注册到KCAL中，初始化KCAL上下文信息。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcctrustzone/tee/kcal/kunpeng_kcal_16_0029.html
sourcePath: /source/zh/kunpengcctrustzone/tee/kcal/kunpeng_kcal_16_0029.html
indexId: a044ec4dad89181c2e48660621809aa44407a85a88803d0afa9865fb2ae3603e64
---
# initTeeCtx

将配置好的dgCfg中的通信回调和节点信息注册到KCAL中，初始化KCAL上下文信息。

```
int initTeeCtx(
DG_Cfg dgCfg,
DG_TeeCtx **dgTeeCtx
)
```

#### 参数


**表1 参数说明**

| 参数名 | 描述 | 取值范围 | 输入/输出 |
| --- | --- | --- | --- |
| dgCfg | KCAL的配置信息 | 依赖DataGuard操作集设置类接口设置好的dgCfg | 输入 |
| dgTeeCtx | KCAL的上下文信息 | 一级指针为空，二级指针不为空 | 输出 |


#### 返回值

- 成功：返回0。
- 失败：返回错误码。


#### 错误码


**表2 错误码**

| 错误码 | 错误码值 | 描述 | 特殊说明 |
| --- | --- | --- | --- |
| DG\_SUCCESS | 0 | 成功 | \- |
| DG\_ERR\_MPC\_TEE\_INVALID\_PARAM | 4501 | 参数校验失败 | dgCfg为NULL或dgTeeCtx二级指针为空 |
| DG\_ERR\_MPC\_TEE\_NODEID\_NOT\_SET | 4506 | nodeId未设置 | 需要各个节点设置自己的节点信息 |
| DG\_ERR\_MPC\_TEE\_NET\_API\_CALLBACK\_NOT\_SET | 4507 | 网络发送或接收函数未注册 | 通信提供回调由产品注册 |
| DG\_ERR\_MPC\_TEE\_FXP\_BITS\_NOT\_SET | 4509 | 小数精度位数未设置 | \- |
| DG\_ERR\_MPC\_TEE\_INVALID\_ENVIRONMENT | 4511 | 无效的CPUID或CVM环境 | 只能在CPUID为920和920新型号的鲲鹏服务器上运行密态计算功能 |


#### 依赖

- dgCfg依赖  DataGuard操作集设置类接口
设置KCAL配置信息成功，用设定好的dgCfg作为此接口的入参。
- teeOpts依赖  DG_InitPsiOpts
成功初始化PSI类算子函数组。

- #include "data_guard_mpc.h"：该接口声明所在的头文件。


#### 示例

使用调用DG_InitPsiOpts成功后的teeOpts来调用initTeeCtx接口。


```
#include  "data_guard_mpc.h"
struct DG_TeeCtx *dgTee = NULL;
// 其中teeOpts为调用DG_InitPsiOpts成功后的结果，teeCfg为DataGuard操作集设置类接口设置KCAL配置信息后的结果。
int rv = teeOpts.initTeeCtx(teeCfg, &dgTee);
if (rv != 0) {
return rv;
}
```

运行结果：rv为0。
