---
title: aclrtMapMem
description: "将虚拟地址映射到物理地址。"
url: https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/latest/Application%20Development%20Guide/aadgc/aclcppdevg_03_0120.html
sourcePath: /source/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Application Development Guide/aadgc/aclcppdevg_03_0120.html
indexId: e196bc0b2b39bd64afabe0caa9792701ccda4b226247888ca07f7ee124893cff105
---
# aclrtMapMem

#### 函数功能

将虚拟地址映射到物理地址。

本接口需与以下其它接口配合使用，以便申请连续的虚拟内存地址、最大化利用物理内存地址的目的：1. 申请虚拟地址空间（  aclrtReserveMemAddress
接口）；
2. 申请物理内存（  aclrtMallocPhysical
接口）；
3. 将虚拟地址映射到物理内存（  aclrtMapMem
接口）；
4. 执行任务（调用具体的任务接口）；
5. 取消虚拟地址与物理内存的映射（  aclrtUnmapMem
接口）；
6. 释放物理内存（  aclrtFreePhysical
接口）；
7. 释放虚拟地址空间（  aclrtReleaseMemAddress
接口）。


#### 约束说明

Ascend RC形态不支持调用本接口。


#### 函数原型

aclError aclrtMapMem(void *virPtr, size_t size, size_t offset, aclrtDrvMemHandle handle, uint64_t flags)


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| virPtr | 输入 | 待映射的虚拟地址指针。 这个地址不一定是起始地址，用户也可以根据起始地址自行偏移后，再映射。 虚拟地址当前需按照2M对齐。 |
| size | 输入 | 待映射的内存大小，单位Byte。 size当前需按照2M对齐。 |
| offset | 输入 | 物理内存偏移值，当前只能设置为0。 |
| handle | 输入 | 物理地址信息handle。 |
| flags | 输入 | 预留，当前只能设置为0。 |


#### 返回值说明

返回0表示成功，返回其它值表示失败。
