Package com.sun.jna.platform.win32

## Class WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX

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

- Direct Known Subclasses:
    `WinNT.CACHE_RELATIONSHIP`, `WinNT.GROUP_RELATIONSHIP`, `WinNT.NUMA_NODE_RELATIONSHIP`, `WinNT.PROCESSOR_RELATIONSHIP`, `WinNT.UNKNOWN_RELATIONSHIP`
  Enclosing interface:
    WinNT

      @FieldOrder({"relationship","size"})
      public abstract static class WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
      extends Structure

  Contains information about the relationships of logical processors and related hardware. The `Kernel32.GetLogicalProcessorInformationEx(int, com.sun.jna.Pointer, com.sun.jna.platform.win32.WinDef.DWORDByReference)` function uses this structure.

  The native structure contains a union, which is mapped to JNA as subclasses.

- - ### 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
    --- | --- | ---
    `int` | `relationship` | The type of relationship between the logical processors.
    `int` | `size` | The size of the structure, in bytes.

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

      `ALIGN_DEFAULT, ALIGN_GNUC, ALIGN_MSVC, ALIGN_NONE, CALCULATE_SIZE`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `` | `SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX()` |
    `protected` | `SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX​(Pointer memory)` | This constructor should only be called by a subclass to ensure memory is properly allocated to the subclass fields.

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX` | `fromPointer​(Pointer memory)` | Create a new instance of the appropriate subclass of `WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX` from the provided `Pointer` to native memory.

    - ### 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, read, 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

    - #### relationship

          public int relationship

      The type of relationship between the logical processors. This parameter can be one of the following values: `WinNT.LOGICAL_PROCESSOR_RELATIONSHIP.RelationCache`, `WinNT.LOGICAL_PROCESSOR_RELATIONSHIP.RelationGroup`, `WinNT.LOGICAL_PROCESSOR_RELATIONSHIP.RelationNumaNode`, `WinNT.LOGICAL_PROCESSOR_RELATIONSHIP.RelationProcessorCore`, or `WinNT.LOGICAL_PROCESSOR_RELATIONSHIP.RelationProcessorPackage`.

      This field identifies which subclass will be instantiated by the `fromPointer(Pointer)` method.

    - #### size

          public int size

      The size of the structure, in bytes.

  - ### Constructor Detail

    - #### SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX

          public SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX()

    - #### SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX

          protected SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX​(Pointer memory)

      This constructor should only be called by a subclass to ensure memory is properly allocated to the subclass fields.
      Parameters:
        `memory` - A pointer to the allocated native memory.

  - ### Method Detail

    - #### fromPointer

          public static WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX fromPointer​(Pointer memory)

      Create a new instance of the appropriate subclass of `WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX` from the provided `Pointer` to native memory. Use this method rather than `SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX(Pointer)` to properly cast the Pointer to the appropriate subclass and populate variable length arrays.
      Parameters:
        `memory` - A pointer to allocated memory to be cast to this class.
      Returns:
        An instance of the appropriate subclass depending on the value of the `relationship` field. If the `relationship` member is `WinNT.LOGICAL_PROCESSOR_RELATIONSHIP.RelationProcessorCore` or `WinNT.LOGICAL_PROCESSOR_RELATIONSHIP.RelationProcessorPackage`, the return type will be `WinNT.PROCESSOR_RELATIONSHIP`. If the `relationship` member is `WinNT.LOGICAL_PROCESSOR_RELATIONSHIP.RelationNumaNode`, the return type will be `WinNT.NUMA_NODE_RELATIONSHIP`. If the `relationship` member is `WinNT.LOGICAL_PROCESSOR_RELATIONSHIP.RelationCache`, the return type will be `WinNT.CACHE_RELATIONSHIP`. If the `relationship` member is `WinNT.LOGICAL_PROCESSOR_RELATIONSHIP.RelationGroup`, the return type will be `WinNT.GROUP_RELATIONSHIP`.