WHvSetVirtualProcessorState

Establece una categoría de estado guardado en un procesador virtual.

Syntax

// 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
    );

Parameters

Partition

Identificador del objeto de partición.

VpIndex

Especifica el índice del procesador virtual cuyo estado está establecido.

StateType

Especifica la categoría de estado que se va a establecer. Vea WHvGetVirtualProcessorState el significado de cada valor.

Buffer

Especifica el estado que se va a aplicar. El formato del búfer depende StateTypede .

BufferSizeInBytes

Especifica el tamaño de Buffer, en bytes. El tamaño debe coincidir con el tamaño del estado identificado por StateType.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es S_OK.

La función devuelve E_INVALIDARG si StateType no es un tipo de estado válido.

Remarks

La WHvSetVirtualProcessorState función aplica una categoría de estado de procesador virtual identificado por StateType. Es el homólogo de WHvGetVirtualProcessorState.

A diferencia de la operación get, el búfer proporcionado a la operación set debe ser exactamente el tamaño del estado que se va a restaurar.

Requisitos

Requirement Value
Windows mínima admitidas Windows 10, versión 20H2 (x64); Windows 11, versión 24H2, compilación 26100.3915 (Arm64)
Header WinHvPlatform.h
Biblioteca WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64, Arm64

Consulte también