HV_X64_MSR_POWER_STATE_CONFIG union
The HV_X64_MSR_POWER_STATE_CONFIG union identifies how one of the power state configuration registers is encoded.
Syntax
typedef union _HV_X64_MSR_POWER_STATE_CONFIG { UINT64 AsUINT64; struct { UINT64 TypeSpecific :52; UINT64 ChangeType :4; UINT64 CheckBM_STS :1; UINT64 SetBM_RST :1; UINT64 ClearBM_RST :1; UINT64 SetARB_DIS :1; UINT64 ReservedZ :4; }; struct { UINT64 ReservedZ :52; } Hlt; struct { UINT16 Port; UINT16 ReservedZ1; UINT32 ReservedZ2 :20; } Io; struct { UINT64 Address :52; } Memory; struct { UINT32 Hints; UINT32 BreakOnMaskedInterrupt :1; UINT32 ReservedZ :19; } Mwait; } HV_X64_MSR_POWER_STATE_CONFIG, *PHV_X64_MSR_POWER_STATE_CONFIG;
Members
- AsUINT64
-
A member in the union that can hold one 64-bit value that identifies the encoding of a power state configuration register.
- TypeSpecific
-
A UINT64 value that specifies the input format for the particular type of power change method that the root partition requests. Setting this member is equivalent to setting the first 52 bits (bits 0 through 51) of the 64-bit AsUINT64 member (0x000FFFFFFFFFFFFF). The format depends on the value that is set in the ChangeType member. For more information about formats, see the Remarks section.
- ChangeType
-
A HV_X64_POWER_CHANGE_METHOD-typed value that indicates the power change method for the hypervisor to use. Setting this member is equivalent to setting bits 52 through the 56 of the 64-bit AsUINT64 member (0x00F0000000000000).
- CheckBM_STS
-
A UINT64 value that indicates whether to determine the value of the ACPI power management bit BM_STS, which determines the power state to enter when considering a transition to or from the C2 and C3 power states. Setting this member is equivalent to setting bit 57 of the 64-bit AsUINT64 member (0x0100000000000000).
- SetBM_RST
-
A UINT64 value that sets the ACPI power management bit BM_RLD, which determines whether the power state was exited as a result of bus master requests. Setting this member is equivalent to setting bit 58 of the 64-bit AsUINT64 member (0x0200000000000000).
- ClearBM_RST
-
A UINT64 value that clears the ACPI power management bit BM_RLD, which determines whether the power state was exited as a result of bus master requests. Setting this member is equivalent to setting bit 59 of the 64-bit AsUINT64 member (0x0400000000000000).
- SetARB_DIS
-
A UINT64 value that defines the value for the ACPI power management bit ARB_DIS, which is used to enable and disable the system arbiter. Setting this member is equivalent to setting bit 60 of the 64-bit AsUINT64 member (0x0800000000000000).
- ReservedZ
-
This member is reserved and should be set to zero. Setting this member to zero is equivalent to setting each of the remaining four bits (0xF000000000000000) of the 64-bit AsUINT64 member to zero.
- Hlt
-
A structure that describes the HLT instruction power change method. This structure contains the following member:
- ReservedZ
-
This member is reserved and should be set to zero. Setting this member to zero is equivalent to setting each of the first 52 bits (bits 0 through 51) of the 64-bit AsUINT64 member to zero.
- ReservedZ
-
This member is reserved and should be set to zero. Setting this member to zero is equivalent to setting each of the remaining four bits (0xF000000000000000) of the 64-bit AsUINT64 member to zero.
- Io
-
A structure that describes the read I/O port power change method. This structure contains the following members:
- Port
-
A UINT16 value that designates the I/O port from which to read.
- ReservedZ1
-
A UINT16 value that is reserved and should be set to zero.
- ReservedZ2
-
This member is reserved and should be set to zero. Setting this member to zero is equivalent to setting each of bits 33 through 52 of the 64-bit AsUINT64 member (0x000FFFFF00000000) to zero.
- Memory
-
A structure that describes the memory power change method. This structure contains the following member:
- Address
-
A UINT64 value that specifies the memory address. Setting the address in this member is equivalent to setting the first 52 bits (bits 0 through 51) of the 64-bit AsUINT64 member. Note that x64 has a 52-bit physical address space.
- Address
-
x64 has a 52 bit physical address space
- Mwait
-
A structure that describes the MWAIT instruction power change method. This structure contains the following members:
- Hints
-
A UINT32 value that contains hints for the MWAIT instruction that specify the lower power state to enter.
- BreakOnMaskedInterrupt
-
A UINT32 value that indicates whether the receipt of a masked interrupt should cause a break event. Setting this member is equivalent to setting bit 33 of the 64-bit AsUINT64 member (0x0000000100000000).
- ReservedZ
-
This member is reserved and should be set to zero. Setting this member to zero is equivalent to setting each of bits 34 through 52 of the 64-bit AsUINT64 member (0x000FFFFE00000000) to zero.
- ReservedZ
-
This member is reserved and should be set to zero. Setting this member to zero is equivalent to setting each of the remaining four bits (0xF000000000000000) of the 64-bit AsUINT64 member to zero.
Remarks
HV_X64_MSR_POWER_STATE_CONFIG describes how to take a virtual processor to a specific low power state. For more information about power state configuration registers, see Hardware Management Data Types.
The following tables show common values for power state configuration registers and how to set power state configuration registers to perform specific power-change methods.
Common values:
63:60 | 59 | 58 | 57 | 56 | 55:52 | 51:0 |
---|---|---|---|---|---|---|
RsvdZ |
SetARB_DIS |
ClearBM_RST |
SetBM_RST |
CheckBM_STS |
ChangeType |
TypeSpecific |
To issue HLT (ChangeType set to HvX64PowerChangeIssueHlt):
63:52 | 51:0 |
---|---|
Common input - see preceding |
RsvdZ |
To read I/O or to read I/O and then issue HLT (ChangeType set to HvX64PowerChangeReadIo or HvX64PowerChangeReadIoThenIssueHlt):
63:52 | 51:16 | 0:15 |
---|---|---|
Common input - see preceding |
RsvdZ |
Port |
To issue MWAIT (ChangeType set to HvX64PowerChangeIssueMwait):
63:52 | 51:33 | 32 | 31:0 |
---|---|---|---|
Common input - see preceding |
RsvdZ |
BreakOnMaskedInterrupt |
Hints |
Requirements
Header |
|
---|
See also
Send comments about this topic to Microsoft
Build date: 11/16/2013