HvCallSetVpRegisters
HvCallSetVpRegisters hypercall 會寫入虛擬處理器的狀態。
介面
HV_STATUS
HvCallSetVpRegisters(
_In_ HV_PARTITION_ID PartitionId,
_In_ HV_VP_INDEX VpIndex,
_In_ HV_INPUT_VTL InputVtl,
_Inout_ PUINT32 RegisterCount,
_In_reads(RegisterCount) PCHV_REGISTER_NAME RegisterNameList,
_In_reads(RegisterCount) PCHV_REGISTER_VALUE RegisterValueList
);
狀態會寫入為一系列的暫存器值,每個值都對應至提供作為輸入的暫存器名稱。
修改暫存器值時,會執行最少的錯誤檢查。 特別是,Hypervisor 會驗證暫存器的保留位設定為零、架構上定義為一律包含零或適當設定的位,以及超出暫存器架構大小的指定位會以零為零。
此呼叫無法用來修改唯讀暫存器的值。
不會執行修改暫存器的副作用。 這包括產生例外狀況、管線同步處理、TLB 排清等等。
限制
- 呼叫端必須是 PartitionId 所指定之資料分割的父系,或指定的分割區必須是 「self」,而且分割區必須具有 AccessVpRegisters 許可權。
呼叫程式碼
0x0051
(Rep)
輸入參數
名稱 | Offset | 大小 | 提供的資訊 |
---|---|---|---|
PartitionId |
0 | 8 | 指定分割區識別碼。 |
VpIndex |
8 | 4 | 指定虛擬處理器的索引。 |
TargetVtl |
12 | 1 | 指定目標 VTL。 |
RsvdZ | 13 | 3 |
輸入清單元素
名稱 | Offset | 大小 | 提供的資訊 |
---|---|---|---|
RegisterName |
0 | 4 | 指定要修改之暫存器的名稱。 |
RsvdZ | 4 | 12 | |
RegisterValue |
16 | 16 | 指定指定暫存器的新值。 |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應