Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Recupera una categoría de estado guardado de 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
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
Identificador del objeto de partición.
VpIndex
Especifica el índice del procesador virtual cuyo estado se recupera.
StateType
Especifica la categoría de estado que se va a recuperar. Consulte la sección Comentarios para obtener el significado de cada valor.
Buffer
Recibe el estado solicitado. El formato del búfer depende StateTypede .
BufferSizeInBytes
Especifica el tamaño de Buffer, en bytes.
BytesWritten
Si no es NULL, recibe el número de bytes escritos en Buffer. Cuando el búfer es demasiado pequeño, recibe el número de bytes necesarios para contener el estado.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es S_OK.
Si Buffer es demasiado pequeño para contener el estado solicitado, el valor devuelto es WHV_E_INSUFFICIENT_BUFFER. En este caso, BytesWritten recibe el número de bytes necesarios. Si StateType no es un tipo de estado válido, el valor devuelto es E_INVALIDARG.
Remarks
La WHvGetVirtualProcessorState función recupera una categoría de estado de procesador virtual identificado por StateType. Proporciona una única interfaz compatible con la arquitectura para guardar el estado del procesador virtual y reemplaza las funciones y WHvGetVirtualProcessorInterruptControllerState2 en desusoWHvGetVirtualProcessorXsaveState.
Tipos de estado comunes a ambas arquitecturas
-
WHvVirtualProcessorStateTypeSynicMessagePageyWHvVirtualProcessorStateTypeSynicEventFlagPagerecuperan las páginas de mensajes y marcas de eventos del controlador de interrupción sintética (SynIC). -
WHvVirtualProcessorStateTypeSynicTimerStaterecupera el estado del temporizador sintético de SynIC.
Tipos de estado x64
-
WHvVirtualProcessorStateTypeInterruptControllerState2recupera el estado APIC local. -
WHvVirtualProcessorStateTypeXsaveStaterecupera el estado extendido del procesador (xsave). -
WHvVirtualProcessorStateTypeNestedStaterecupera el estado de virtualización anidada.
Tipos de estado Arm64
-
WHvVirtualProcessorStateTypeInterruptControllerStaterecupera el estado GIC por procesador. -
WHvVirtualProcessorStateTypeGlobalInterruptStaterecupera el estado del controlador de interrupción en toda la partición. -
WHvVirtualProcessorStateTypeSveStaterecupera el estado extensión de vector escalable (SVE).
Para determinar el tamaño de búfer necesario, llame a la función con un búfer demasiado pequeño y lea el valor devuelto en BytesWritten cuando la función devuelve WHV_E_INSUFFICIENT_BUFFERy llame a la función de nuevo con un búfer de ese tamaño.
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 |