摘要
讀取 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 指定的帳號代碼狀態讀取到緩衝區。只有在暫停執行時,才能讀取處理常式的狀態。
「Kind」必須是 ZX_VCPU_STATE
。
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
帳號代碼是無效的帳號代碼。
ZX_ERR_BAD_STATE
處理常式處於不良狀態,因此無法讀取狀態。
ZX_ERR_INVALID_ARGS
Kind 並非為已知的 vCPU 狀態命名,buffer 為無效指標,或 buffer_size 與預期的大小不符。
ZX_ERR_WRONG_TYPE
處理常式不是 vCPU 的控制代碼。
另請參閱
zx_guest_create()
zx_guest_set_trap()
zx_vcpu_create()
zx_vcpu_enter()
zx_vcpu_interrupt()
zx_vcpu_kick()
zx_vcpu_write_state()