Class Win32Processor

java.lang.Object
io.github.eggy03.ferrumx.windows.entity.processor.Win32Processor

@ShallowImmutable public class Win32Processor extends Object
Immutable representation of a CPU device on a Windows system.

Fields correspond to properties retrieved from the Win32_Processor WMI class.

Usage examples

// Build a new Processor instance
Win32Processor cpu = Win32Processor.builder()
    .name("Intel Core i9-13900K")
    .numberOfCores(24)
    .threadCount(32)
    .maxClockSpeed(5300)
    .build();

// Create a modified copy using the builder
Win32Processor updated = cpu.toBuilder()
    .threadCount(64)
    .build();

See Win32CacheMemory for related cache information.

Since:
3.0.0
See Also:
  • Field Details

    • deviceId

      @SerializedName("DeviceID") @Nullable @Nullable String deviceId
      Unique identifier of the processor on the system.
    • name

      @SerializedName("Name") @Nullable @Nullable String name
      Processor name: Typically includes manufacturer, brand, and model information.
    • numberOfCores

      @SerializedName("NumberOfCores") @Nullable @Nullable Integer numberOfCores
      Number of physical cores on the processor.
    • numberOfEnabledCores

      @SerializedName("NumberOfEnabledCore") @Nullable @Nullable Integer numberOfEnabledCores
      Number of enabled processor cores.
    • threadCount

      @SerializedName("ThreadCount") @Nullable @Nullable Integer threadCount
      Number of hardware threads across all cores.
    • numberOfLogicalProcessors

      @SerializedName("NumberOfLogicalProcessors") @Nullable @Nullable Integer numberOfLogicalProcessors
      Number of logical processors on the system.
    • manufacturer

      @SerializedName("Manufacturer") @Nullable @Nullable String manufacturer
      Name of the processor manufacturer.
    • addressWidth

      @SerializedName("AddressWidth") @Nullable @Nullable Integer addressWidth
      Width of the processor address bus in bits. For a 32-bit CPU the value is 32 and for a 64-bit CPU, the value is 64
    • l2CacheSize

      @SerializedName("L2CacheSize") @Nullable @Nullable Integer l2CacheSize
      Size of the Level 2 cache in kilobytes.
    • l3CacheSize

      @SerializedName("L3CacheSize") @Nullable @Nullable Integer l3CacheSize
      Size of the Level 3 cache in kilobytes.
    • maxClockSpeed

      @SerializedName("MaxClockSpeed") @Nullable @Nullable Integer maxClockSpeed
      Maximum speed of the processor in megahertz under normal operating conditions.
    • extClock

      @SerializedName("ExtClock") @Nullable @Nullable Integer extClock
      External clock frequency of the processor in megahertz.
    • socketDesignation

      @SerializedName("SocketDesignation") @Nullable @Nullable String socketDesignation
      Type of socket or slot used by the processor.
    • version

      @SerializedName("Version") @Nullable @Nullable String version
      Version of the processor as reported by the manufacturer.
    • caption

      @SerializedName("Caption") @Nullable @Nullable String caption
      Short textual description of the processor.
    • family

      @SerializedName("Family") @Nullable @Nullable Integer family
      Processor family type. Indicates the manufacturer and generation of the processor.
    • stepping

      @SerializedName("Stepping") @Nullable @Nullable String stepping
      Stepping information for the processor revision.
    • virtualizationFirmwareEnabled

      @SerializedName("VirtualizationFirmwareEnabled") @Nullable @Nullable Boolean virtualizationFirmwareEnabled
      Indicates whether virtualization technology is enabled in firmware.
    • processorId

      @SerializedName("ProcessorId") @Nullable @Nullable String processorId
      Processor identifier string, which may include family, model, and stepping information.
    • architecture

      @SerializedName("Architecture") @Nullable @Nullable Integer architecture
      Processor architecture used by the platform.

      Possible Values:

      • x86 (0)
      • MIPS (1)
      • Alpha (2)
      • PowerPC (3)
      • ARM (5)
      • ia64 (6)
      • x64 (9)
      • ARM64 (12)
  • Constructor Details

    • Win32Processor

      public Win32Processor()
  • Method Details

    • isVirtualizationEnabled

      @Nullable public @Nullable Boolean isVirtualizationEnabled()
    • toString

      @NotNull public @NotNull String toString()
      Retrieves the entity in a JSON pretty-print formatted string
      Overrides:
      toString in class Object
      Returns:
      the String value of the object in JSON pretty-print format