---
title: initTeeCtx
description: "初始化dgTeeCtx。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcctrustzone/tee/kcal/kunpeng_kcal_16_0018.html
sourcePath: /source/zh/kunpengcctrustzone/tee/kcal/kunpeng_kcal_16_0018.html
indexId: 1685ecaf66cced85261277f463cbc5ccacda3f659227b3fb3480d9e6cdd09a5d64
---
# initTeeCtx

初始化dgTeeCtx。

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

#### 参数


**表1 参数说明**

| 参数名 | 描述 | 取值范围 | 输入/输出 |
| --- | --- | --- | --- |
| dgCfg | KCAL的配置信息类型为DG\_Cfg | 不为空，已初始化过 | 输入 |
| dgTeeCtx | KCAL的上下文信息为DG\_TeeCtx \*\* | 一级指针为空，二级指针不为空 | 输出 |


#### 返回值

- 成功：返回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 DG\_ERR\_MPC\_TEE\_INVALID\_ENVIRONMENT | 4509 4511 | 小数精度位数未设置 无效的CPUID或CVM环境 | \- 只能在CPUID为920和920新型号的鲲鹏服务器上运行密态计算功能 |


#### 依赖

依赖的头文件为"data_guard_mpc.h"。


#### 示例

```
#include  "data_guard_mpc.h"
// 假设 teeCfg 已初始化好
DG_Arithmetic_Opts aritOpts = DG_InitArithmeticOpts();
struct DG_TeeCtx *dgTee = nullptr;
int rv = aritOpts.initTeeCtx(teeCfg, &dgTee);
if (rv != 0) {
printf("tee init error.-%d\n", rv);
return rv;
}
```

运行结果：rv为0。

此函数用于创建并初始化dgTeeCtx结构体，通过调用DG_InitArithmeticOpts成功后的aritOpts来调用initTeeCtx接口。
