# DlpPermissionApi
## 概述
数据防泄漏(DLP)是系统提供的系统级的数据防泄漏解决方案,提供跨设备的文件的权限管理、加密存储、授权访问等能力。
**起始版本:** 14
## 汇总
### 文件
| 名称 | 描述 |
| -------- | -------- |
| [dlp_permission_api.h](dlp__permission__api_8h.md) | 声明用于跨设备的文件的权限管理、加密存储、授权访问等能力的接口。 |
### 枚举
| 名称 | 描述 |
| -------- | -------- |
| [DLP_ErrCode](#dlp_errcode) {
ERR_OH_SUCCESS = 0,
ERR_OH_INVALID_PARAMETER = 19100001,
ERR_OH_API_ONLY_FOR_SANDBOX = 19100006,
ERR_OH_API_NOT_FOR_SANDBOX = 19100007,
ERR_OH_SYSTEM_SERVICE_EXCEPTION = 19100011,
ERR_OH_OUT_OF_MEMORY = 19100012,
ERR_OH_APPLICATION_NOT_AUTHORIZED = 19100018
} | DLP错误码的枚举。 |
| [DLP_FileAccess](#dlp_fileaccess) {
NO_PERMISSION = 0,
READ_ONLY = 1,
CONTENT_EDIT = 2,
FULL_CONTROL = 3
} | DLP文件授权类型的枚举。 |
### 函数
| 名称 | 描述 |
| -------- | -------- |
| [DLP_ErrCode](#dlp_errcode) [OH_DLP_GetDlpPermissionInfo](#oh_dlp_getdlppermissioninfo) ([DLP_FileAccess](#dlp_fileaccess) \*dlpFileAccess, uint32_t \*flags) | 查询当前DLP沙箱的权限信息。 |
| [DLP_ErrCode](#dlp_errcode) [OH_DLP_GetOriginalFileName](#oh_dlp_getoriginalfilename) (const char \*fileName, char \*\*originalFileName) | 获取指定DLP文件名的原始文件名。 |
| [DLP_ErrCode](#dlp_errcode) [OH_DLP_IsInSandbox](#oh_dlp_isinsandbox) (bool \*isInSandbox) | 查询当前应用是否运行在DLP沙箱环境。 |
| [DLP_ErrCode](#dlp_errcode) [OH_DLP_SetSandboxAppConfig](#oh_dlp_setsandboxappconfig) (const char \*configInfo) | 设置沙箱应用配置信息。 |
| [DLP_ErrCode](#dlp_errcode) [OH_DLP_GetSandboxAppConfig](#oh_dlp_getsandboxappconfig) (char \*\*configInfo) | 获取沙箱应用配置信息。 |
| [DLP_ErrCode](#dlp_errcode) [OH_DLP_CleanSandboxAppConfig](#oh_dlp_cleansandboxappconfig) () | 清理沙箱应用配置信息。 |
## 枚举类型说明
### DLP_ErrCode
```
enum DLP_ErrCode
```
**描述**
DLP错误码的枚举。
**起始版本:** 14
| 枚举值 | 描述 |
| -------- | -------- |
| ERR_OH_SUCCESS | 表示操作成功。 |
| ERR_OH_INVALID_PARAMETER | 表示入参错误。 |
| ERR_OH_API_ONLY_FOR_SANDBOX | 表示非DLP沙箱应用。 |
| ERR_OH_API_NOT_FOR_SANDBOX | 表示DLP沙箱应用不允许调用此接口。 |
| ERR_OH_SYSTEM_SERVICE_EXCEPTION | 表示系统服务工作异常。 |
| ERR_OH_OUT_OF_MEMORY | 表示内存申请失败。 |
| ERR_OH_APPLICATION_NOT_AUTHORIZED | 表示应用未授权。 |
### DLP_FileAccess
```
enum DLP_FileAccess
```
**描述**
DLP文件授权类型的枚举。
**起始版本:** 14
| 枚举值 | 描述 |
| -------- | -------- |
| NO_PERMISSION | 表示无文件权限。 |
| READ_ONLY | 表示文件的只读权限。 |
| CONTENT_EDIT | 表示文件的编辑权限。 |
| FULL_CONTROL | 表示文件的完全控制权限。 |
## 函数说明
### OH_DLP_GetDlpPermissionInfo()
```
DLP_ErrCode OH_DLP_GetDlpPermissionInfo(DLP_FileAccess *dlpFileAccess, uint32_t *flags)
```
**描述**
查询当前DLP沙箱的权限信息。
**起始版本:** 14
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| dlpFileAccess | 表示DLP文件针对用户的授权类型,授权类型的具体含义参考[DLP_FileAccess](#dlp_fileaccess)。 |
| flags | 表示DLP文件的详细操作权限,操作权限的具体含义为:
0x00000000-表示无文件权限。
0x00000001-表示文件的查看权限。
0x00000002-表示文件的保存权限。
0x00000004-表示文件的另存为权限。
0x00000008-表示文件的编辑权限。
0x00000010-表示文件的截屏权限。
0x00000020-表示文件的共享屏幕权限。
0x00000040-表示文件的录屏权限。
0x00000080-表示文件的复制权限。
0x00000100-表示文件的打印权限。
0x00000200-表示文件的导出权限。
0x00000400-表示文件的修改文件权限。 |
**返回:**
[DLP_ErrCode](#dlp_errcode):
0 - 操作成功。
19100001 - 入参错误。
19100006 - 非DLP沙箱应用。
19100011 - 系统服务工作异常。
19100012 - 内存申请失败。
### OH_DLP_GetOriginalFileName()
```
DLP_ErrCode OH_DLP_GetOriginalFileName(const char *fileName, char **originalFileName)
```
**描述**
获取指定DLP文件名的原始文件名。
**起始版本:** 14
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| fileName | 指定要查询的文件名。 |
| originalFileName | DLP文件的原始文件名。 |
**返回:**
[DLP_ErrCode](#dlp_errcode):
0 - 操作成功。
19100001 - 入参错误。
19100012 - 内存申请失败。
### OH_DLP_IsInSandbox()
```
DLP_ErrCode OH_DLP_IsInSandbox(bool *isInSandbox)
```
**描述**
查询当前应用是否运行在DLP沙箱环境。
**起始版本:** 14
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| isInSandbox | 当前应用是否运行在DLP沙箱环境。 |
**返回:**
[DLP_ErrCode](#dlp_errcode):
0 - 操作成功。
19100011 - 系统服务工作异常。
19100012 - 内存申请失败。
### OH_DLP_SetSandboxAppConfig()
```
DLP_ErrCode OH_DLP_SetSandboxAppConfig(const char *configInfo)
```
**描述**
设置沙箱应用配置信息。
**起始版本:** 14
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| configInfo | 沙箱应用配置信息。 |
**返回:**
[DLP_ErrCode](#dlp_errcode):
0 - 操作成功。
19100001 - 入参错误。
19100007 - DLP沙箱应用不允许调用此接口。
19100011 - 系统服务工作异常。
19100018 - 应用未授权。
### OH_DLP_GetSandboxAppConfig()
```
DLP_ErrCode OH_DLP_GetSandboxAppConfig(char **configInfo)
```
**描述**
获取沙箱应用配置信息。
**起始版本:** 14
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| configInfo | 沙箱应用配置信息。 |
**返回:**
[DLP_ErrCode](#dlp_errcode):
0 - 操作成功。
19100011 - 系统服务工作异常。
19100012 - 内存申请失败。
19100018 - 应用未授权。
### OH_DLP_CleanSandboxAppConfig()
```
DLP_ErrCode OH_DLP_CleanSandboxAppConfig()
```
**描述**
清理沙箱应用配置信息。
**起始版本:** 14
**返回:**
[DLP_ErrCode](#dlp_errcode):
0 - 操作成功。
19100007 - DLP沙箱应用不允许调用此接口。
19100011 - 系统服务工作异常。
19100018 - 应用未授权。