WHvCreateVirtualProcessor2

使用可选的创建时属性在分区中创建一个新的虚拟处理器。

Syntax

typedef enum WHV_VIRTUAL_PROCESSOR_PROPERTY_CODE
{
    WHvVirtualProcessorPropertyCodeNumaNode = 0x00000000,
} WHV_VIRTUAL_PROCESSOR_PROPERTY_CODE;

typedef struct WHV_VIRTUAL_PROCESSOR_PROPERTY
{
    WHV_VIRTUAL_PROCESSOR_PROPERTY_CODE PropertyCode;
    UINT32 Reserved;
    union
    {
        USHORT NumaNode;
        UINT64 Padding;
    };
} WHV_VIRTUAL_PROCESSOR_PROPERTY;

HRESULT
WINAPI
WHvCreateVirtualProcessor2(
    _In_ WHV_PARTITION_HANDLE Partition,
    _In_ UINT32 VpIndex,
    _In_reads_(PropertyCount) const WHV_VIRTUAL_PROCESSOR_PROPERTY* Properties,
    _In_ UINT32 PropertyCount
    );

参数

Partition

分区对象的句柄。

VpIndex

指定新虚拟处理器的索引。

Properties

指定要在创建时应用于新虚拟处理器的属性数组。 可能为NULLPropertyCount零。

PropertyCount

指定数组中的 Properties 元素数。 如果为零,则会使用默认属性创建虚拟处理器。

属性

数组的每个元素Properties都是一个WHV_VIRTUAL_PROCESSOR_PROPERTYPropertyCode成员选择要应用的属性,其值成员提供设置。 如果同一属性代码多次出现,则提供的最后一个值将生效。 定义了以下属性代码。

WHvVirtualProcessorPropertyCodeNumaNode

指定成员中 NumaNode 备份虚拟处理器的 NUMA 节点。 如果未提供此属性,虚拟处理器将放置在调用线程的理想 NUMA 节点上。

返回值

如果函数成功,则返回值为 S_OK.

如果虚拟处理器已存在于该位置 VpIndex,则返回值为 WHV_E_VP_ALREADY_EXISTS。 如果 VpIndex 大于或等于分区的处理器计数,如果属性指定未知属性代码,或者 NumaNode 该值不是有效的 NUMA 节点,则返回值为 E_INVALIDARG

Remarks

WHvCreateVirtualProcessor2 函数在分区中创建新的虚拟处理器。 在 x64 上,虚拟处理器的索引用于设置处理器的 APIC ID。 调用 WHvCreateVirtualProcessor(Partition, VpIndex, 0) 相当于调用 WHvCreateVirtualProcessor2(Partition, VpIndex, NULL, 0)

要求

要求 价值
支持的最低Windows Windows 10版本 20H2 (x64):Windows 11版本 24H2 内部版本 26100.3915 (Arm64)
Header WinHvPlatform.h
图书馆 WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64、Arm64

另见