Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Recupera uma categoria de estado salvo de um processador virtual.
Sintaxe
// 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
WHvGetVirtualProcessorState(
_In_ WHV_PARTITION_HANDLE Partition,
_In_ UINT32 VpIndex,
_In_ WHV_VIRTUAL_PROCESSOR_STATE_TYPE StateType,
_Out_writes_bytes_to_(BufferSizeInBytes, *BytesWritten) VOID* Buffer,
_In_ UINT32 BufferSizeInBytes,
_Out_opt_ UINT32* BytesWritten
);
Parameters
Partition
Manipule para o objeto de partição.
VpIndex
Especifica o índice do processador virtual cujo estado é recuperado.
StateType
Especifica a categoria de estado a ser recuperada. Consulte a seção Comentários para obter o significado de cada valor.
Buffer
Recebe o estado solicitado. O formato do buffer depende StateTypede .
BufferSizeInBytes
Especifica o tamanho de Buffer, em bytes.
BytesWritten
Se não for NULL, receberá o número de bytes gravados em Buffer. Quando o buffer é muito pequeno, ele recebe o número de bytes necessários para manter o estado.
Valor de retorno
Se a função for bem-sucedida, o valor retornado será S_OK.
Se Buffer for muito pequeno para conter o estado solicitado, o valor retornado será WHV_E_INSUFFICIENT_BUFFER. Nesse caso, BytesWritten recebe o número de bytes necessários. Se StateType não for um tipo de estado válido, o valor retornado será E_INVALIDARG.
Remarks
A WHvGetVirtualProcessorState função recupera uma categoria de estado do processador virtual identificada por StateType. Ele fornece uma interface única e com reconhecimento de arquitetura para salvar o estado do processador virtual e substitui as funções preteridas WHvGetVirtualProcessorXsaveState e WHvGetVirtualProcessorInterruptControllerState2 substituídas.
Tipos de estado comuns a ambas as arquiteturas
-
WHvVirtualProcessorStateTypeSynicMessagePageeWHvVirtualProcessorStateTypeSynicEventFlagPagerecupere a mensagem SynIC (controlador de interrupção sintético) e as páginas de sinalizador de evento. -
WHvVirtualProcessorStateTypeSynicTimerStaterecupera o estado do temporizador sintético SynIC.
Tipos de estado x64
-
WHvVirtualProcessorStateTypeInterruptControllerState2recupera o estado APIC local. -
WHvVirtualProcessorStateTypeXsaveStaterecupera o estado estendido do processador (xsave). -
WHvVirtualProcessorStateTypeNestedStaterecupera o estado de virtualização aninhada.
Tipos de estado Arm64
-
WHvVirtualProcessorStateTypeInterruptControllerStaterecupera o estado GIC por processador. -
WHvVirtualProcessorStateTypeGlobalInterruptStaterecupera o estado do controlador de interrupção em toda a partição. -
WHvVirtualProcessorStateTypeSveStaterecupera o estado SVE (Extensão de Vetor Escalonável).
Para determinar o tamanho do buffer necessário, chame a função com um buffer muito pequeno e leia o valor retornado BytesWritten quando a função retornar WHV_E_INSUFFICIENT_BUFFERe chame a função novamente com um buffer desse tamanho.
Requisitos
| Requirement | Value |
|---|---|
| Suporte mínimo Windows | Windows 10, versão 20H2 (x64); Windows 11, versão 24H2, build 26100.3915 (Arm64) |
| Header | WinHvPlatform.h |
| Biblioteca | WinHvPlatform.lib |
| DLL | WinHvPlatform.dll |
| Arquitetura | x64, Arm64 |
Consulte também
WHvSetVirtualProcessorStateWHvGetVirtualProcessorXsaveStateWHvGetVirtualProcessorInterruptControllerState- Nomes e valores de registro do processador virtual
- definições de API da Plataforma do Hipervisor Windows