# Class CIM_Process
extends CIM_EnabledLogicalElement

Each instance of the CIM_Process class represents a single instance of a running program. A user of the OperatingSystem will typically see a Process as an application or task. Within an OperatingSystem, a Process is defined by a workspace of memory resources and environmental settings that are allocated to it. On a multitasking System, this workspace prevents intrusion of resources by other Processes. Additionally, a Process can execute as multiple Threads, all which run within the same workspace.

### Table of Contents
Hierarchy
Direct Known Subclasses
Class Qualifiers
Class Properties
Class Methods

## Class Hierarchy

CIM_ManagedElement
|
+--CIM_ManagedSystemElement
|
+--CIM_LogicalElement
|
+--CIM_EnabledLogicalElement
|
+--CIM_Process

## Direct Known Subclasses

CIM_UnixProcess

## Class Qualifiers

Name | Data Type | Value
--- | --- | ---
Description | string | Each instance of the CIM_Process class represents a single instance of a running program. A user of the OperatingSystem will typically see a Process as an application or task. Within an OperatingSystem, a Process is defined by a workspace of memory resources and environmental settings that are allocated to it. On a multitasking System, this workspace prevents intrusion of resources by other Processes. Additionally, a Process can execute as multiple Threads, all which run within the same workspace.
UMLPackagePath | string | CIM::System::Processing
Version | string | 2.10.0

## Class Properties

### Local Class Properties

Name | Data Type | Default Value | Qualifiers
--- | --- | --- | ---
Name | Data Type | Value
CreationClassName | string |
Description | string | CreationClassName indicates the name of the class or the subclass used in the creation of an instance. When used with the other key properties of this class, this property allows all instances of this class and its subclasses to be uniquely identified.
Key | boolean | true
MaxLen | uint32 | 256
CreationDate | datetime |
Description | string | Time that the Process began executing.
CSCreationClassName | string |
Description | string | The scoping ComputerSystem's CreationClassName.
Key | boolean | true
MaxLen | uint32 | 256
Propagated | string | CIM_OperatingSystem.CSCreationClassName
CSName | string |
Description | string | The scoping ComputerSystem's Name.
Key | boolean | true
MaxLen | uint32 | 256
Propagated | string | CIM_OperatingSystem.CSName
ExecutionState | uint16 |
Description | string | Indicates the current operating condition of the Process. Values include ready (2), running (3), and blocked (4), among others. The majority of the enumerated values are obvious. However, a few require additional explanation: 7 (Terminated) describes that a process has naturally completed 8 (Stopped) describes that a process has been prematurely 'stopped' by a user or other request 10 (Ready but Relinquished Processor) describes that a process is in the Ready state, but has voluntarily relinquished execution time to other processes. For example, this state may indicate a problem when the relinquishing process is not handling items on its queues. If these semantics cannot be detected, the process should report its state as 2 ("Ready"). 11 (Hung) indicates that a process is not responding and should therefore not be given further execution time.
MappingStrings | string | MIF.DMTF|Process Information|001.9, MIF.UNIX|Process Information|13.9
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
Values | string | Unknown, Other, Ready, Running, Blocked, Suspended Blocked, Suspended Ready, Terminated, Stopped, Growing, Ready But Relinquished Processor, Hung
Handle | string |
Description | string | A string used to identify the Process. A Process ID is a kind of Process Handle.
Key | boolean | true
MappingStrings | string | MIF.DMTF|Process Information|001.1
MaxLen | uint32 | 256
KernelModeTime | uint64 |
Description | string | Time in kernel mode, in milliseconds. If this information is not available, or if the operating system does not distinguish between time in kernel and in user mode, a value of 0 should be used.
MappingStrings | string | MIF.DMTF|Process Information|001.13
PUnit | string | second * 10^-3
Units | string | MilliSeconds
Name | string |
Description | string | The name of the process.
MappingStrings | string | MIF.DMTF|Process Information|001.6
MaxLen | uint32 | 1024
Override | string | Name
OSCreationClassName | string |
Description | string | The scoping OperatingSystem's CreationClassName.
Key | boolean | true
MaxLen | uint32 | 256
Propagated | string | CIM_OperatingSystem.CreationClassName
OSName | string |
Description | string | The scoping OperatingSystem's Name.
Key | boolean | true
MaxLen | uint32 | 256
Propagated | string | CIM_OperatingSystem.Name
OtherExecutionDescription | string |
Description | string | A string describing the state - used when the instance's ExecutionState property is set to 1 ("Other"). Other ExecutionDescription should be set to NULL when the Execution State property is any value other than 1.
Priority | uint32 |
Description | string | Priority indicates the urgency or importance of execution of a Process. Lower values reflect more favorable process scheduling. If a priority is not defined for a Process, a value of 0 should be used.
MappingStrings | string | MIF.DMTF|Process Information|001.10
TerminationDate | datetime |
Description | string | Time that the Process was stopped or terminated.
UserModeTime | uint64 |
Description | string | Time in user mode, in milliseconds. If this information is not available, a value of 0 should be used. If the operating system does not distinguish between time in kernel mode and user mode, the time should be returned in this property.
MappingStrings | string | MIF.DMTF|Process Information|001.14
PUnit | string | second * 10^-3
Units | string | MilliSeconds
WorkingSetSize | uint64 |
Description | string | The amount of memory in bytes that a Process needs to execute efficiently, for an OperatingSystem that uses page-based memory management. If an insufficient amount of memory is available (< working set size), thrashing will occur. If this information is not known, NULL or 0 should be entered. If this data is provided, it could be monitored to understand a Process' changing memory requirements as execution proceeds.
Gauge | boolean | true
PUnit | string | byte
Units | string | Bytes

### Inherited Properties

Name | Data Type | Class Origin
--- | --- | ---
Caption | string | CIM_ManagedElement
CommunicationStatus | uint16 | CIM_ManagedSystemElement
Description | string | CIM_ManagedElement
DetailedStatus | uint16 | CIM_ManagedSystemElement
ElementName | string | CIM_ManagedElement
EnabledDefault | uint16 | CIM_EnabledLogicalElement
EnabledState | uint16 | CIM_EnabledLogicalElement
HealthState | uint16 | CIM_ManagedSystemElement
InstallDate | datetime | CIM_ManagedSystemElement
InstanceID | string | CIM_ManagedElement
OperatingStatus | uint16 | CIM_ManagedSystemElement
OtherEnabledState | string | CIM_EnabledLogicalElement
PrimaryStatus | uint16 | CIM_ManagedSystemElement
RequestedState | uint16 | CIM_EnabledLogicalElement
Status | string | CIM_ManagedSystemElement
TimeOfLastStateChange | datetime | CIM_EnabledLogicalElement
TransitioningToState | uint16 | CIM_EnabledLogicalElement
AvailableRequestedStates | uint16[] | CIM_EnabledLogicalElement
OperationalStatus | uint16[] | CIM_ManagedSystemElement
StatusDescriptions | string[] | CIM_ManagedSystemElement

## Class Methods

### Inherited Class Methods

Name | Return Type | Class Origin
--- | --- | ---
RequestStateChange | uint32 | CIM_EnabledLogicalElement