WHvSetVirtualProcessorState

Définit une catégorie d’état enregistré sur un processeur virtuel.

Syntaxe

// WHvGetVirtualProcessorState and WHvSetVirtualProcessorState types.
#if defined(_AMD64_)

typedef enum WHV_VIRTUAL_PROCESSOR_STATE_TYPE
{
    WHvVirtualProcessorStateTypeSynicMessagePage          = 0x00000000,
    WHvVirtualProcessorStateTypeSynicEventFlagPage        = 0x00000001,
    WHvVirtualProcessorStateTypeSynicTimerState           = 0x00000002,

    WHvVirtualProcessorStateTypeInterruptControllerState2 = 0x00001000,
    WHvVirtualProcessorStateTypeXsaveState                = 0x00001001,
    WHvVirtualProcessorStateTypeNestedState               = 0x00001002,
} WHV_VIRTUAL_PROCESSOR_STATE_TYPE;

#elif defined (_ARM64_)

#define WHV_VIRTUAL_PROCESSOR_STATE_TYPE_PFN    (1ui32 << 31)
#define WHV_VIRTUAL_PROCESSOR_STATE_TYPE_ANY_VP (1ui32 << 30)

typedef enum WHV_VIRTUAL_PROCESSOR_STATE_TYPE
{
    WHvVirtualProcessorStateTypeInterruptControllerState  = 0x00000000 | WHV_VIRTUAL_PROCESSOR_STATE_TYPE_PFN,

    WHvVirtualProcessorStateTypeSynicMessagePage          = 0x00000002 | WHV_VIRTUAL_PROCESSOR_STATE_TYPE_PFN,
    WHvVirtualProcessorStateTypeSynicEventFlagPage        = 0x00000003 | WHV_VIRTUAL_PROCESSOR_STATE_TYPE_PFN,
    WHvVirtualProcessorStateTypeSynicTimerState           = 0x00000004,

    WHvVirtualProcessorStateTypeGlobalInterruptState      = 0x00000006 | WHV_VIRTUAL_PROCESSOR_STATE_TYPE_PFN | WHV_VIRTUAL_PROCESSOR_STATE_TYPE_ANY_VP,
    WHvVirtualProcessorStateTypeSveState                  = 0x00000007 | WHV_VIRTUAL_PROCESSOR_STATE_TYPE_PFN,
} WHV_VIRTUAL_PROCESSOR_STATE_TYPE;

#endif

HRESULT
WINAPI
WHvSetVirtualProcessorState(
    _In_ WHV_PARTITION_HANDLE Partition,
    _In_ UINT32 VpIndex,
    _In_ WHV_VIRTUAL_PROCESSOR_STATE_TYPE StateType,
    _In_reads_bytes_(BufferSizeInBytes) const VOID* Buffer,
    _In_ UINT32 BufferSizeInBytes
    );

Paramètres

Partition

Gérer l’objet de partition.

VpIndex

Spécifie l’index du processeur virtuel dont l’état est défini.

StateType

Spécifie la catégorie d’état à définir. Consultez WHvGetVirtualProcessorState la signification de chaque valeur.

Buffer

Spécifie l’état à appliquer. Le format de la mémoire tampon dépend StateTypede .

BufferSizeInBytes

Spécifie la taille de Buffer, en octets. La taille doit correspondre à la taille de l’état identifié par StateType.

Valeur de retour

Si la fonction réussit, la valeur de retour est S_OK.

La fonction retourne E_INVALIDARG si StateType elle n’est pas un type d’état valide.

Remarks

La WHvSetVirtualProcessorState fonction applique une catégorie d’état de processeur virtuel identifiée par StateType. C’est l’équivalent de WHvGetVirtualProcessorState.

Contrairement à l’opération get, la mémoire tampon fournie à l’opération set doit être exactement la taille de l’état en cours de restauration.

Exigences

Requirement Valeur
Windows minimum pris en charge Windows 10, version 20H2 (x64) ; Windows 11, version 24H2, build 26100.3915 (Arm64)
Header WinHvPlatform.h
Bibliothèque WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64, Arm64

Voir aussi