zx_process_write_memory


英文原文快照


名称

process_write_memory —— 写入数据到给定进程的地址空间中。

概要

  1. #include <zircon/syscalls.h>
  2. zx_status_t zx_process_write_memory(zx_handle_t handle, zx_vaddr_t vaddr,
  3. const void* buffer, size_t length, size_t* actual);

描述

zx_process_write_memory() 的功能是尝试写入数据到指定进程的内存中。

该函数最终会被一些以vmo为中心的函数功能所取代。

vaddr:将写入的内存块地址。

buffer:指向用户要写入的字节的缓冲区的指针。

length是尝试写入的字节数。 buffer必须至少有length字节的空间。 length必须大于零且不超过64MB。

写入的实际字节数存储在actual_size中。 如果vaddr+length超出进程中映射的内存,则可能会返回比请求的字节数少的字节。

权限

TODO(ZX-2399)

返回值

zx_process_write_memory() 调用成功则返回ZX_OK。如果调用失败,则返回负的错误码,并且写入buffer到内存的字节数是不确定的。

错误码

ZX_ERR_ACCESS_DENIEDhandle没有ZX_RIGHT_WRITE

ZX_ERR_BAD_HANDLEhandle是无效句柄。

ZX_ERR_BAD_STATE:进程的内存不可访问(例如,进程正在终止过程中),或者请求的内存区域不可被缓存。

ZX_ERR_INVALID_ARGSbuffer是无效指针或为NULL,或length为零或大于64MB。

ZX_ERR_NO_MEMORY:进程在请求的地址参数上没有映射的内存。

ZX_ERR_WRONG_TYPEhandle不是进程类型的句柄。

另见

process_read_memory.