Skip to content

Commit 7988f01

Browse files
committed
TLFS updates for Virtualization Host and ARM64 (#2011)
Sync TLFS with 11/07/2025 documentation payload (adding details around Virtualization Host capability)
1 parent 3462a49 commit 7988f01

File tree

144 files changed

+5845
-430
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

144 files changed

+5845
-430
lines changed
Lines changed: 107 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,136 @@
11
- name: Overview
22
href: overview.md
33
- name: HV_CONNECTION_ID
4-
href: HV_CONNECTION_ID.md
4+
href: hv_connection_id.md
5+
- name: HV_CONNECTION_INFO
6+
href: hv_connection_info.md
7+
- name: HV_CPUID_RESULT
8+
href: hv_cpuid_result.md
59
- name: HV_CRASH_CTL_REG_CONTENTS
6-
href: HV_CRASH_CTL_REG_CONTENTS.md
10+
href: hv_crash_ctl_reg_contents.md
711
- name: HV_DEVICE_INTERRUPT_TARGET
8-
href: HV_DEVICE_INTERRUPT_TARGET.md
12+
href: hv_device_interrupt_target.md
13+
- name: HV_GET_VP_CPUID_VALUES_FLAGS
14+
href: hv_get_vp_cpuid_values_flags.md
15+
- name: HV_GPA_MAPPING
16+
href: hv_gpa_mapping.md
17+
- name: HV_GPA_PAGE_NUMBER
18+
href: hv_gpa_page_number.md
19+
- name: HV_GVA
20+
href: hv_gva.md
21+
- name: HV_GVA_PAGE_NUMBER
22+
href: hv_gva_page_number.md
923
- name: HV_INITIAL_VP_CONTEXT
10-
href: HV_INITIAL_VP_CONTEXT.md
24+
href: hv_initial_vp_context.md
25+
- name: HV_INPUT_VTL
26+
href: hv_input_vtl.md
27+
- name: HV_INTERCEPT_ACCESS_TYPE_MASK
28+
href: hv_intercept_access_type_mask.md
29+
- name: HV_INTERCEPT_PARAMETERS
30+
href: hv_intercept_parameters.md
31+
- name: HV_INTERCEPT_PARAMETERS_EX
32+
href: hv_intercept_parameters_ex.md
33+
- name: HV_INTERCEPT_TYPE
34+
href: hv_intercept_type.md
35+
- name: HV_INTERRUPT_CONTROL
36+
href: hv_interrupt_control.md
1137
- name: HV_INTERRUPT_ENTRY
12-
href: HV_INTERRUPT_ENTRY.md
38+
href: hv_interrupt_entry.md
39+
- name: HV_INTERRUPT_TYPE
40+
href: hv_interrupt_type.md
41+
- name: HV_INTERRUPT_VECTOR
42+
href: hv_interrupt_vector.md
43+
- name: HV_IO_PORT
44+
href: hv_io_port.md
45+
- name: HV_MAP_GPA_FLAGS
46+
href: hv_map_gpa_flags.md
1347
- name: HV_MESSAGE
14-
href: HV_MESSAGE.md
48+
href: hv_message.md
1549
- name: HV_MESSAGE_TYPE
16-
href: HV_MESSAGE_TYPE.md
50+
href: hv_message_type.md
1751
- name: HV_MSI_ENTRY
18-
href: HV_MSI_ENTRY.md
52+
href: hv_msi_entry.md
1953
- name: HV_NESTED_ENLIGHTENMENTS_CONTROL
20-
href: HV_NESTED_ENLIGHTENMENTS_CONTROL.md
54+
href: hv_nested_enlightenments_control.md
55+
- name: HV_PARTITION_CREATION_FLAGS
56+
href: hv_partition_creation_flags.md
57+
- name: HV_PARTITION_CREATION_PROPERTIES
58+
href: hv_partition_creation_properties.md
59+
- name: HV_PARTITION_ID
60+
href: hv_partition_id.md
61+
- name: HV_PARTITION_PROCESSOR_FEATURES
62+
href: hv_partition_processor_features.md
2163
- name: HV_PARTITION_PRIVILEGE_MASK
22-
href: HV_PARTITION_PRIVILEGE_MASK.md
64+
href: hv_partition_privilege_mask.md
65+
- name: HV_PARTITION_PROPERTY_CODE
66+
href: hv_partition_property_code.md
67+
- name: HV_PORT_ID
68+
href: hv_port_id.md
69+
- name: HV_PORT_INFO
70+
href: hv_port_info.md
71+
- name: HV_PORT_TYPE
72+
href: hv_port_type.md
73+
- name: HV_PROXIMITY_DOMAIN_ID
74+
href: hv_proximity_domain_id.md
75+
- name: HV_PROXIMITY_DOMAIN_INFO
76+
href: hv_proximity_domain_info.md
77+
- name: HV_REGISTER_INTERCEPT_RESULT_PARAMETERS
78+
href: hv_register_intercept_result_parameters.md
2379
- name: HV_REGISTER_NAME
24-
href: HV_REGISTER_NAME.md
80+
href: hv_register_name.md
2581
- name: HV_REGISTER_VALUE
26-
href: HV_REGISTER_VALUE.md
82+
href: hv_register_value.md
83+
- name: HV_SPA_PAGE_NUMBER
84+
href: hv_spa_page_number.md
85+
- name: HV_STATS_OBJECT_IDENTITY
86+
href: hv_stats_object_identity.md
87+
- name: HV_STATS_OBJECT_TYPE
88+
href: hv_stats_object_type.md
89+
- name: HV_STATUS
90+
href: hv_status.md
2791
- name: HV_SVM_ENLIGHTENED_VMCB_FIELDS
28-
href: HV_SVM_ENLIGHTENED_VMCB_FIELDS.md
92+
href: hv_svm_enlightened_vmcb_fields.md
2993
- name: HV_SYNIC_EVENT_FLAGS
30-
href: HV_SYNIC_EVENT_FLAGS.md
94+
href: hv_synic_event_flags.md
95+
- name: HV_SYNIC_SINT_INDEX
96+
href: hv_synic_sint_index.md
3197
- name: HV_TIMER_MESSAGE_PAYLOAD
32-
href: HV_TIMER_MESSAGE_PAYLOAD.md
98+
href: hv_timer_message_payload.md
99+
- name: HV_TRANSLATE_GVA_CONTROL_FLAGS
100+
href: hv_translate_gva_control_flags.md
101+
- name: HV_TRANSLATE_GVA_RESULT
102+
href: hv_translate_gva_result.md
103+
- name: HV_TRANSLATE_GVA_RESULT_EX
104+
href: hv_translate_gva_result_ex.md
105+
- name: HV_UNMAP_GPA_FLAGS
106+
href: hv_unmap_gpa_flags.md
107+
- name: HV_UNREGISTER_INTERCEPT_RESULT_PARAMETERS
108+
href: hv_unregister_intercept_result_parameters.md
33109
- name: HV_VIRTUALIZATION_FAULT_INFORMATION
34-
href: HV_VIRTUALIZATION_FAULT_INFORMATION.md
110+
href: hv_virtualization_fault_information.md
35111
- name: HV_VMX_ENLIGHTENED_VMCS
36-
href: HV_VMX_ENLIGHTENED_VMCS.md
112+
href: hv_vmx_enlightened_vmcs.md
37113
- name: HV_VP_ASSIST_PAGE
38-
href: HV_VP_ASSIST_PAGE.md
114+
href: hv_vp_assist_page.md
115+
- name: HV_VP_INDEX
116+
href: hv_vp_index.md
39117
- name: HV_VP_SET
40-
href: HV_VP_SET.md
118+
href: hv_vp_set.md
41119
- name: HV_VP_VTL_CONTROL
42-
href: HV_VP_VTL_CONTROL.md
120+
href: hv_vp_vtl_control.md
121+
- name: HV_VTL
122+
href: hv_vtl.md
43123
- name: HV_X64_FP_CONTROL_STATUS_REGISTER
44-
href: HV_X64_FP_CONTROL_STATUS_REGISTER.md
124+
href: hv_x64_fp_control_status_register.md
45125
- name: HV_X64_FP_REGISTER
46-
href: HV_X64_FP_REGISTER.md
126+
href: hv_x64_fp_register.md
47127
- name: HV_X64_MSR_NPIEP_CONFIG_CONTENTS
48-
href: HV_X64_MSR_NPIEP_CONFIG_CONTENTS.md
128+
href: hv_x64_msr_npiep_config_contents.md
49129
- name: HV_X64_SEGMENT_REGISTER
50-
href: HV_X64_SEGMENT_REGISTER.md
130+
href: hv_x64_segment_register.md
51131
- name: HV_X64_TABLE_REGISTER
52-
href: HV_X64_TABLE_REGISTER.md
132+
href: hv_x64_table_register.md
53133
- name: HV_X64_XMM_CONTROL_STATUS_REGISTER
54-
href: HV_X64_XMM_CONTROL_STATUS_REGISTER.md
134+
href: hv_x64_xmm_control_status_register.md
55135
- name: HV_X64_REGISTER_SEV_GPA_PAGE
56-
href: HV_X64_REGISTER_SEV_GPA_PAGE.md
136+
href: HV_X64_REGISTER_SEV_GPA_PAGE.md

virtualization/hyper-v-on-windows/tlfs/datatypes/hv_connection_id.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@ author: alexgrest
66
ms.author: hvdev
77
ms.date: 10/15/2020
88
ms.topic: reference
9+
ms.prod: windows-10-hyperv
910
---
1011

1112
# HV_CONNECTION_ID
1213

14+
## Overview
1315
Connections are identified by 32-bit IDs. The high 8 bits are reserved and must be zero. All connection IDs are unique within a partition.
1416

1517
## Syntax
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
---
2+
title: HV_CONNECTION_INFO
3+
description: HV_CONNECTION_INFO data type
4+
keywords: hyper-v
5+
author: hvdev
6+
ms.author: hvdev
7+
ms.date: 08/28/2025
8+
ms.topic: reference
9+
ms.prod: windows-10-hyperv
10+
---
11+
12+
# HV_CONNECTION_INFO
13+
14+
## Overview
15+
Per-connection type descriptor used when establishing a connection (`HvCallConnectPort`). Only the union member matching `PortType` is interpreted; other members are zero.
16+
17+
## Syntax
18+
19+
```c
20+
typedef enum
21+
{
22+
HvPortTypeDoorbell = 4,
23+
} HV_PORT_TYPE;
24+
25+
typedef struct
26+
{
27+
HV_PORT_TYPE PortType;
28+
UINT32 Padding;
29+
30+
union
31+
{
32+
struct
33+
{
34+
HV_GPA GuestPhysicalAddress;
35+
UINT64 TriggerValue;
36+
UINT64 Flags;
37+
} DoorbellConnectionInfo;
38+
};
39+
} HV_CONNECTION_INFO;
40+
```
41+
42+
### Port Types
43+
44+
| Enum | Value | Meaning | Use Cases |
45+
|------|-------|---------|-----------|
46+
| HvPortTypeDoorbell | 4 | Lightweight guest doorbell (write / trigger semantics) | Low latency memory-mapped notifications. |
47+
48+
### Connection Type Details
49+
50+
#### Doorbell Connections (HvPortTypeDoorbell)
51+
**Purpose**: Memory-mapped notification mechanism with configurable trigger semantics.
52+
**Configuration**:
53+
- `GuestPhysicalAddress`: Target memory location for write operations
54+
- `TriggerValue`: Expected value to trigger the doorbell (when using specific value matching)
55+
- `Flags`: Controls trigger behavior and access pattern
56+
57+
### Doorbell Flags Configuration
58+
59+
| Flag | Value | Description |
60+
|------|-------|-------------|
61+
| HV_DOORBELL_FLAG_TRIGGER_SIZE_ANY | 0x00000000 | Trigger on any write operation regardless of size |
62+
| HV_DOORBELL_FLAG_TRIGGER_SIZE_BYTE | 0x00000001 | Trigger only on 1-byte writes |
63+
| HV_DOORBELL_FLAG_TRIGGER_SIZE_WORD | 0x00000002 | Trigger only on 2-byte writes |
64+
| HV_DOORBELL_FLAG_TRIGGER_SIZE_DWORD | 0x00000003 | Trigger only on 4-byte writes |
65+
| HV_DOORBELL_FLAG_TRIGGER_SIZE_QWORD | 0x00000004 | Trigger only on 8-byte writes |
66+
| HV_DOORBELL_FLAG_TRIGGER_ANY_VALUE | 0x80000000 | Trigger on any written value (ignore TriggerValue) |
67+
68+
**Flag Combinations**:
69+
- **Size-specific + value-specific**: Triggers only when the exact size and value match
70+
- **Size-specific + HV_DOORBELL_FLAG_TRIGGER_ANY_VALUE**: Triggers on any write of the specified size
71+
- **HV_DOORBELL_FLAG_TRIGGER_SIZE_ANY + value-specific**: Triggers when any write matches the value
72+
- **HV_DOORBELL_FLAG_TRIGGER_SIZE_ANY + HV_DOORBELL_FLAG_TRIGGER_ANY_VALUE**: Triggers on any write operation
73+
74+
### Restrictions and Limitations
75+
* **Doorbell connections**:
76+
- Must not cross page boundaries
77+
- Target GPA must be valid and accessible
78+
79+
## See Also
80+
* [HvCallConnectPort](../hypercalls/HvCallConnectPort.md)
81+
* [HV_PORT_TYPE](hv_port_type.md)
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
title: HV_CPUID_RESULT
3+
description: HV_CPUID_RESULT
4+
keywords: hyper-v
5+
author: hvdev
6+
ms.author: hvdev
7+
ms.date: 11/07/2025
8+
ms.topic: reference
9+
---
10+
11+
# HV_CPUID_RESULT
12+
13+
The HV_CPUID_RESULT data type contains the result of a CPUID instruction execution. This structure holds the register values returned by the CPUID instruction for a specific function and subfunction.
14+
15+
## Syntax
16+
17+
```c
18+
typedef union {
19+
UINT32 AsUINT32[4];
20+
struct
21+
{
22+
UINT32 Eax;
23+
UINT32 Ebx;
24+
UINT32 Ecx;
25+
UINT32 Edx;
26+
};
27+
} HV_CPUID_RESULT;
28+
```
29+
30+
### Members
31+
32+
- **Eax**: The value returned in the EAX register by the CPUID instruction
33+
- **Ebx**: The value returned in the EBX register by the CPUID instruction
34+
- **Ecx**: The value returned in the ECX register by the CPUID instruction
35+
- **Edx**: The value returned in the EDX register by the CPUID instruction
36+
37+
The CPUID instruction returns processor identification and feature information in these four 32-bit registers. The specific meaning of each register's contents depends on the CPUID function and subfunction that was executed.
38+
39+
## See also
40+
41+
* [HvCallGetVpCpuidValues](../hypercalls/HvCallGetVpCpuidValues.md)
42+
* [HV_PARTITION_ID](hv_partition_id.md)
43+
* [HV_VP_INDEX](hv_vp_index.md)

virtualization/hyper-v-on-windows/tlfs/datatypes/hv_crash_ctl_reg_contents.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ author: alexgrest
66
ms.author: hvdev
77
ms.date: 10/15/2020
88
ms.topic: reference
9+
ms.prod: windows-10-hyperv
910
---
1011

1112
# HV_CRASH_CTL_REG_CONTENTS
@@ -20,10 +21,11 @@ typedef union
2021
UINT64 AsUINT64;
2122
struct
2223
{
23-
UINT64 Reserved : 62; // Reserved bits
24-
UINT64 CrashMessage : 1; // P3 is the PA of the message
25-
// P4 is the length in bytes
26-
UINT64 CrashNotify : 1; // Log contents of crash parameter
24+
UINT64 Reserved : 58; // Reserved bits
25+
UINT64 PreOSId : 3; // Crash occurred in the preOS environment
26+
UINT64 NoCrashDump : 1; // Crash dump will not be captured
27+
UINT64 CrashMessage : 1; // P3 is the PA of the message, P4 is the length in bytes
28+
UINT64 CrashNotify : 1; // Log contents of crash parameter system registers
2729
};
2830
} HV_CRASH_CTL_REG_CONTENTS;
2931
```

virtualization/hyper-v-on-windows/tlfs/datatypes/hv_device_interrupt_target.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@ author: alexgrest
66
ms.author: hvdev
77
ms.date: 10/15/2020
88
ms.topic: reference
9+
ms.prod: windows-10-hyperv
910
---
1011

1112
# HV_DEVICE_INTERRUPT_TARGET
1213

1314
## Syntax
1415

1516
```c
17+
1618
#define HV_DEVICE_INTERRUPT_TARGET_MULTICAST 1
1719
#define HV_DEVICE_INTERRUPT_TARGET_PROCESSOR_SET 2
1820

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
title: HV_GET_VP_CPUID_VALUES_FLAGS
3+
description: HV_GET_VP_CPUID_VALUES_FLAGS data type
4+
keywords: hyper-v
5+
author: hvdev
6+
ms.author: hvdev
7+
ms.date: 09/08/2025
8+
ms.topic: reference
9+
ms.prod: windows-10-hyperv
10+
---
11+
12+
# HV_GET_VP_CPUID_VALUES_FLAGS
13+
14+
## Overview
15+
16+
Control flags for `HvCallGetVpCpuidValues` hypercall that specify how CPUID values should be retrieved and processed for the target virtual processor.
17+
18+
## Syntax
19+
20+
```c
21+
typedef union {
22+
UINT32 AsUINT32;
23+
struct {
24+
UINT32 UseVpXfemXss : 1;
25+
UINT32 ApplyRegisteredValues : 1;
26+
UINT32 Reserved : 30;
27+
};
28+
} HV_GET_VP_CPUID_VALUES_FLAGS;
29+
```
30+
31+
### Members
32+
33+
| Member | Description |
34+
|--------|-------------|
35+
| UseVpXfemXss | If set, use the VP's current XFEM/XSS values when synthesizing CPUID results |
36+
| ApplyRegisteredValues | If set, apply any registered CPUID value overrides to the results |
37+
| Reserved | Must be zero |
38+
39+
## See Also
40+
41+
- [HvCallGetVpCpuidValues](../hypercalls/HvCallGetVpCpuidValues.md)
42+
- [HV_CPUID_RESULT](hv_cpuid_result.md)

0 commit comments

Comments
 (0)