Package com.sun.jna.platform.win32

## Class WinNT.PROCESSOR_RELATIONSHIP

- java.lang.Object
- - com.sun.jna.Structure
  - - com.sun.jna.platform.win32.WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
    - - com.sun.jna.platform.win32.WinNT.PROCESSOR_RELATIONSHIP

- Enclosing interface:
    WinNT

      @FieldOrder({"flags","efficiencyClass","reserved","groupCount","groupMask"})
      public static class WinNT.PROCESSOR_RELATIONSHIP
      extends WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX

  Describes the logical processors associated with either a processor core or a processor package.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class com.sun.jna.Structure

      `Structure.ByReference, Structure.ByValue, Structure.FieldOrder, Structure.StructField`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `byte` | `efficiencyClass` | If the `WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX.relationship` member of the `WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX` structure is `WinNT.LOGICAL_PROCESSOR_RELATIONSHIP.RelationProcessorCore`, EfficiencyClass specifies the intrinsic tradeoff between performance and power for the applicable core.
    `byte` | `flags` | If the `WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX.relationship` member of the `WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX` structure is `WinNT.LOGICAL_PROCESSOR_RELATIONSHIP.RelationProcessorCore`, this member is `WinNT.LTP_PC_SMT` if the core has more than one logical processor, or 0 if the core has one logical processor.
    `short` | `groupCount` | This member specifies the number of entries in the GroupMask array.
    `WinNT.GROUP_AFFINITY[]` | `groupMask` | An array of `WinNT.GROUP_AFFINITY` structures.
    `byte[]` | `reserved` | This member is reserved.

    - ### Fields inherited from class com.sun.jna.platform.win32.WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX

      `relationship, size`

    - ### Fields inherited from class com.sun.jna.Structure

      `ALIGN_DEFAULT, ALIGN_GNUC, ALIGN_MSVC, ALIGN_NONE, CALCULATE_SIZE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `PROCESSOR_RELATIONSHIP()` |
    `PROCESSOR_RELATIONSHIP​(Pointer memory)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `read()` | Reads the fields of the struct from native memory

    - ### Methods inherited from class com.sun.jna.platform.win32.WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX

      `fromPointer`

    - ### Methods inherited from class com.sun.jna.Structure

      `allocateMemory, allocateMemory, autoAllocate, autoRead, autoRead, autoWrite, autoWrite, cacheTypeInfo, calculateSize, clear, createFieldsOrder, createFieldsOrder, createFieldsOrder, createFieldsOrder, dataEquals, dataEquals, ensureAllocated, equals, fieldOffset, getAutoRead, getAutoWrite, getFieldList, getFieldOrder, getFields, getNativeAlignment, getNativeSize, getNativeSize, getPointer, getStringEncoding, getStructAlignment, hashCode, newInstance, newInstance, readField, readField, setAlignType, setAutoRead, setAutoSynch, setAutoWrite, setStringEncoding, size, sortFields, toArray, toArray, toString, toString, useMemory, useMemory, write, writeField, writeField, writeField`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### flags

          public byte flags

      If the `WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX.relationship` member of the `WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX` structure is `WinNT.LOGICAL_PROCESSOR_RELATIONSHIP.RelationProcessorCore`, this member is `WinNT.LTP_PC_SMT` if the core has more than one logical processor, or 0 if the core has one logical processor.

      If the `WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX.relationship` member of the `WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX` structure is `WinNT.LOGICAL_PROCESSOR_RELATIONSHIP.RelationProcessorPackage`, this member is always 0.

    - #### efficiencyClass

          public byte efficiencyClass

      If the `WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX.relationship` member of the `WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX` structure is `WinNT.LOGICAL_PROCESSOR_RELATIONSHIP.RelationProcessorCore`, EfficiencyClass specifies the intrinsic tradeoff between performance and power for the applicable core. A core with a higher value for the efficiency class has intrinsically greater performance and less efficiency than a core with a lower value for the efficiency class. EfficiencyClass is only nonzero on systems with a heterogeneous set of cores.

      If the `WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX.relationship` member of the `WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX` structure is `WinNT.LOGICAL_PROCESSOR_RELATIONSHIP.RelationProcessorPackage`, EfficiencyClass is always 0.

      The minimum operating system version that supports this member is Windows 10.

    - #### reserved

          public byte[] reserved

      This member is reserved.

    - #### groupCount

          public short groupCount

      This member specifies the number of entries in the GroupMask array.

      If the PROCESSOR_RELATIONSHIP structure represents a processor core, the GroupCount member is always 1.

      If the `WinNT.PROCESSOR_RELATIONSHIP` structure represents a processor package, the `groupCount` member is 1 only if all processors are in the same processor group. If the package contains more than one NUMA node, the system might assign different NUMA nodes to different processor groups. In this case, the `groupCount` member is the number of groups to which NUMA nodes in the package are assigned.

    - #### groupMask

          public WinNT.GROUP_AFFINITY[] groupMask

      An array of `WinNT.GROUP_AFFINITY` structures. The `groupCount` member specifies the number of structures in the array. Each structure in the array specifies a group number and processor affinity within the group.

  - ### Constructor Detail

    - #### PROCESSOR_RELATIONSHIP

          public PROCESSOR_RELATIONSHIP()

    - #### PROCESSOR_RELATIONSHIP

          public PROCESSOR_RELATIONSHIP​(Pointer memory)

  - ### Method Detail

    - #### read

          public void read()

      Description copied from class: `Structure`
      Reads the fields of the struct from native memory
      Overrides:
        `read` in class `Structure`