摘要
读取 vCPU 的状态。
声明
#include <zircon/syscalls.h>
zx_status_t zx_vcpu_read_state(zx_handle_t handle,
uint32_t kind,
void* buffer,
size_t buffer_size);
说明
zx_vcpu_read_state()
会将 kind 指定的 handle 状态读取到
缓冲区。只有在已执行以下命令时,读取 handle 的状态才有效:
已暂停。
kind 必须为 ZX_VCPU_STATE
。
必须在同一线程 handle 上调用 zx_vcpu_read_state()
。
权限
handle 的类型必须为 ZX_OBJ_TYPE_VCPU
且包含 ZX_RIGHT_READ
。
返回值
如果成功,zx_vcpu_read_state()
会返回 ZX_OK
。失败时,系统会显示一个错误值
。
错误
ZX_ERR_ACCESS_DENIED
句柄没有 ZX_RIGHT_READ
权限。
ZX_ERR_BAD_HANDLE
handle 是无效的句柄。
ZX_ERR_BAD_STATE
handle 处于错误状态,无法读取状态。
ZX_ERR_INVALID_ARGS
kind 没有命名已知的 vCPU 状态,缓冲区是一个
指针无效,或者 buffer_size 与 kind 的预期大小不匹配。
ZX_ERR_WRONG_TYPE
handle 不是 vCPU 的句柄。
另请参阅
zx_guest_create()
zx_guest_set_trap()
zx_vcpu_create()
zx_vcpu_enter()
zx_vcpu_interrupt()
zx_vcpu_kick()
zx_vcpu_write_state()