# Class CIM_Watchdog
extends CIM_LogicalDevice

CIM_Watchdog is a timer that is implemented in the system hardware. It allows the hardware to monitor the state of the Operating System, BIOS, or a software component that is installed on the System. If the monitored component fails to re-arm the timer before its expiration, the hardware assumes that the System is in a critical state, and could reset the ComputerSystem. This feature can also be used as an application watchdog timer for a mission-critical application. In this case, the application would assume responsibility for re-arming the timer before expiration.

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

## Class Hierarchy

CIM_ManagedElement
|
+--CIM_ManagedSystemElement
|
+--CIM_LogicalElement
|
+--CIM_EnabledLogicalElement
|
+--CIM_AllocatedLogicalElement
|
+--CIM_LogicalDevice
|
+--CIM_Watchdog

## Direct Known Subclasses

## Class Qualifiers

Name | Data Type | Value
--- | --- | ---
Description | string | CIM_Watchdog is a timer that is implemented in the system hardware. It allows the hardware to monitor the state of the Operating System, BIOS, or a software component that is installed on the System. If the monitored component fails to re-arm the timer before its expiration, the hardware assumes that the System is in a critical state, and could reset the ComputerSystem. This feature can also be used as an application watchdog timer for a mission-critical application. In this case, the application would assume responsibility for re-arming the timer before expiration.
UMLPackagePath | string | CIM::Device::Processor
Version | string | 2.10.0

## Class Properties

### Local Class Properties

Name | Data Type | Default Value | Qualifiers
--- | --- | --- | ---
Name | Data Type | Value
ActionOnExpiration | uint16 |
Description | string | The action that should happen upon the expiry of the watchdog.
ValueMap | string | 0, 1, 2, 3, 4, 5
Values | string | None - Status Only, System Reset, System Power Off, System Power Off, then On, Generate System NonMaskableInterrupt (NMI), Generate System Management Interrupt (SMI)
MonitoredEntity | uint16 |
Description | string | The entity that is currently being monitored by the WatchDog. This property is used to identify the module that is responsible for re-arming, or whose information is used to re-arm, the watchdog at periodic intervals.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, 7, 8
Values | string | Unknown, Other, Operating System, Operating System Boot Process, Operating System Shutdown Process, Firmware Boot Process, BIOS Boot Process, Application, Service Processor
MonitoredEntityDescription | string |
Description | string | A string that describes more textual information about the monitored entity.
MaxLen | uint32 | 256
MonitoredEntityOnLastExpiration | uint16 |
Description | string | Monitored entity at the time of last timer expiry.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, 7, 8
Values | string | Unknown, Other, Operating System, Operating System Boot Process, Operating System Shutdown Process, Firmware Boot Process, BIOS Boot Process, Application, Service Processor
TimeOfLastExpiration | datetime |
Description | string | The time of the last timer expiry.
TimeoutInterval | uint32 |
Description | string | The timeout interval that is used by the watchdog, in MicroSeconds.
PUnit | string | second * 10^-6
Units | string | MicroSeconds
TimerResolution | uint32 |
Description | string | Resolution of the timer. For example, if this value is 100, then the timer can expire anytime between (TimeoutInterval- 100) microseconds or (TimeoutInterval+100) microseconds.
PUnit | string | second * 10^-6
Units | string | MicroSeconds

### Inherited Properties

Name | Data Type | Class Origin
--- | --- | ---
AllocationState | string | CIM_LogicalDevice
Availability | uint16 | CIM_LogicalDevice
Caption | string | CIM_ManagedElement
CommunicationStatus | uint16 | CIM_ManagedSystemElement
CreationClassName | string | CIM_LogicalDevice
Description | string | CIM_ManagedElement
DetailedStatus | uint16 | CIM_ManagedSystemElement
DeviceID | string | CIM_LogicalDevice
ElementName | string | CIM_ManagedElement
EnabledDefault | uint16 | CIM_EnabledLogicalElement
EnabledState | uint16 | CIM_EnabledLogicalElement
ErrorCleared | boolean | CIM_LogicalDevice
ErrorDescription | string | CIM_LogicalDevice
Generation | uint64 | CIM_ManagedElement
HealthState | uint16 | CIM_ManagedSystemElement
InstallDate | datetime | CIM_ManagedSystemElement
InstanceID | string | CIM_ManagedElement
LastErrorCode | uint32 | CIM_LogicalDevice
LocationIndicator | uint16 | CIM_LogicalDevice
MaxQuiesceTime | uint64 | CIM_LogicalDevice
Name | string | CIM_ManagedSystemElement
OperatingStatus | uint16 | CIM_ManagedSystemElement
OtherEnabledState | string | CIM_EnabledLogicalElement
PowerManagementSupported | boolean | CIM_LogicalDevice
PowerOnHours | uint64 | CIM_LogicalDevice
PrimaryStatus | uint16 | CIM_ManagedSystemElement
RequestedState | uint16 | CIM_EnabledLogicalElement
Status | string | CIM_ManagedSystemElement
StatusInfo | uint16 | CIM_LogicalDevice
SystemCreationClassName | string | CIM_LogicalDevice
SystemName | string | CIM_LogicalDevice
TimeOfLastStateChange | datetime | CIM_EnabledLogicalElement
TotalPowerOnHours | uint64 | CIM_LogicalDevice
TransitioningToState | uint16 | CIM_EnabledLogicalElement
AdditionalAvailability | uint16[] | CIM_LogicalDevice
AvailableRequestedStates | uint16[] | CIM_EnabledLogicalElement
IdentifyingDescriptions | string[] | CIM_LogicalDevice
OperationalStatus | uint16[] | CIM_ManagedSystemElement
OtherIdentifyingInfo | string[] | CIM_LogicalDevice
PowerManagementCapabilities | uint16[] | CIM_LogicalDevice
StatusDescriptions | string[] | CIM_ManagedSystemElement

## Class Methods

### Local Class Methods

#### KeepAlive (uint32)

#### Method Qualifiers (KeepAlive)

Name | Data Type | Value
--- | --- | ---
Description | string | A method to re-arm the timer. This method is used only if the MonitoredEntity is "Application". It returns 0 if successful, 1 if unsupported, and any other value if an error occurred. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are 'translated' can also be specified in the subclass as a Values array qualifier.

#### Method Parameters (KeepAlive)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value

### Inherited Class Methods

Name | Return Type | Class Origin
--- | --- | ---
EnableDevice | uint32 | CIM_LogicalDevice
OnlineDevice | uint32 | CIM_LogicalDevice
QuiesceDevice | uint32 | CIM_LogicalDevice
RequestStateChange | uint32 | CIM_EnabledLogicalElement
Reset | uint32 | CIM_LogicalDevice
RestoreProperties | uint32 | CIM_LogicalDevice
SaveProperties | uint32 | CIM_LogicalDevice
SetPowerState | uint32 | CIM_LogicalDevice