WinNT.SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX (JNA API)
Description: declaration: package: com.sun.jna.platform.win32, interface: WinNT, class: SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX

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

  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 Details

  - ### 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 Details

  - ### 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 Details

  - ### 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`.