# Class CIM_LogicalDevice
extends CIM_EnabledLogicalElement

An abstraction or emulation of a hardware entity, that may or may not be Realized in physical hardware. Any characteristics of a LogicalDevice that are used to manage its operation or configuration are contained in, or associated with, the LogicalDevice object. Examples of the operational properties of a Printer would be paper sizes supported, or detected errors. Examples of the configuration properties of a Sensor Device would be threshold settings. Various configurations could exist for a LogicalDevice. These configurations could be contained in Setting objects and associated with the LogicalDevice.

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

## Class Hierarchy

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

## Direct Known Subclasses

CIM_AlarmDevice
CIM_Battery
CIM_Controller
CIM_CoolingDevice
CIM_Door
CIM_IndicatorLED
CIM_LabelReader
CIM_LogicalModule
CIM_LogicalPort
CIM_MediaAccessDevice
CIM_MediaTransferDevice
CIM_Modem
CIM_NetworkAdapter
CIM_PowerSource
CIM_PowerSupply
CIM_Printer
CIM_Processor
CIM_ProtocolController
CIM_Scanner
CIM_Sensor
CIM_StorageExtent
CIM_USBDevice
CIM_UserDevice
CIM_VideoHead
CIM_Watchdog
CIM_WiFiRadio

## Class Qualifiers

Name | Data Type | Value
--- | --- | ---
Abstract | boolean | true
Description | string | An abstraction or emulation of a hardware entity, that may or may not be Realized in physical hardware. Any characteristics of a LogicalDevice that are used to manage its operation or configuration are contained in, or associated with, the LogicalDevice object. Examples of the operational properties of a Printer would be paper sizes supported, or detected errors. Examples of the configuration properties of a Sensor Device would be threshold settings. Various configurations could exist for a LogicalDevice. These configurations could be contained in Setting objects and associated with the LogicalDevice.
UMLPackagePath | string | CIM::Core::Device
Version | string | 2.8.0

## Class Properties

### Local Class Properties

Name | Data Type | Default Value | Qualifiers
--- | --- | --- | ---
Name | Data Type | Value
Availability | uint16 |
Description | string | The primary availability and status of the Device. (Additional status information can be specified using the Additional Availability array property.) For example, the Availability property indicates that the Device is running and has full power (value=3), or is in a warning (4), test (5), degraded (10) or power save state (values 13-15 and 17). Regarding the Power Save states, these are defined as follows: Value 13 ("Power Save - Unknown") indicates that the Device is known to be in a power save mode, but its exact status in this mode is unknown; 14 ("Power Save - Low Power Mode") indicates that the Device is in a power save state but still functioning, and may exhibit degraded performance; 15 ("Power Save - Standby") describes that the Device is not functioning but could be brought to full power 'quickly'; and value 17 ("Power Save - Warning") indicates that the Device is in a warning state, though also in a power save mode.
MappingStrings | string | MIF.DMTF|Operational State|006.5, MIB.IETF|HOST-RESOURCES-MIB.hrDeviceStatus, MIF.DMTF|Host Device|001.5
ModelCorrespondence | string | CIM_LogicalDevice.AdditionalAvailability
ValueMap | string | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21
Values | string | Other, Unknown, Running/Full Power, Warning, In Test, Not Applicable, Power Off, Off Line, Off Duty, Degraded, Not Installed, Install Error, Power Save - Unknown, Power Save - Low Power Mode, Power Save - Standby, Power Cycle, Power Save - Warning, Paused, Not Ready, Not Configured, Quiesced
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
DeviceID | string |
Description | string | An address or other identifying information to uniquely name the LogicalDevice.
Key | boolean | true
MaxLen | uint32 | 64
ErrorCleared | boolean |
Deprecated | string | CIM_ManagedSystemElement.OperationalStatus
Description | string | ErrorCleared is a boolean property indicating that the error reported in LastErrorCode is now cleared.
ErrorDescription | string |
Deprecated | string | CIM_DeviceErrorData.ErrorDescription
Description | string | ErrorDescription is a free-form string supplying more information about the error recorded in LastErrorCode, and information on any corrective actions that may be taken.
LastErrorCode | uint32 |
Deprecated | string | CIM_DeviceErrorData.LastErrorCode
Description | string | LastErrorCode captures the last error code reported by the LogicalDevice.
MaxQuiesceTime | uint64 |
Deprecated | string | No value
Description | string | The MaxQuiesceTime property has been deprecated. When evaluating the use of Quiesce, it was determine that this single property is not adequate for describing when a device will automatically exit a quiescent state. In fact, the most likely scenario for a device to exit a quiescent state was determined to be based on the number of outstanding requests queued rather than on a maximum time. This will be re-evaluated and repositioned later. Maximum time in milliseconds, that a Device can run in a "Quiesced" state. A Device's state is defined in its Availability and AdditionalAvailability properties, where "Quiesced" is conveyed by the value 21. What occurs at the end of the time limit is device-specific. The Device may unquiesce, may offline or take other action. A value of 0 indicates that a Device can remain quiesced indefinitely.
Units | string | MilliSeconds
PowerManagementSupported | boolean |
Deprecated | string | CIM_PowerManagementCapabilities
Description | string | Boolean indicating that the Device can be power managed. The use of this property has been deprecated. Instead, the existence of an associated PowerManagementCapabilities class (associated using the ElementCapabilities relationhip) indicates that power management is supported.
PowerOnHours | uint64 |
Counter | boolean | true
Description | string | The number of consecutive hours that this Device has been powered, since its last power cycle.
Units | string | Hours
StatusInfo | uint16 |
Deprecated | string | CIM_EnabledLogicalElement.EnabledState
Description | string | The StatusInfo property indicates whether the Logical Device is in an enabled (value = 3), disabled (value = 4) or some other (1) or unknown (2) state. If this property does not apply to the LogicalDevice, the value, 5 ("Not Applicable"), should be used. StatusInfo has been deprecated in lieu of a more clearly named property with additional enumerated values (EnabledState), that is inherited from ManagedSystemElement. If a Device is ("Enabled")(value=3), it has been powered up, and is configured and operational. The Device may or may not be functionally active, depending on whether its Availability (or AdditionalAvailability) indicate that it is ("Running/Full Power")(value=3) or ("Off line") (value=8). In an enabled but offline mode, a Device may be performing out-of-band requests, such as running Diagnostics. If ("Disabled") StatusInfo value=4), a Device can only be "enabled" or powered off. In a personal computer environment, ("Disabled") means that the Device's driver is not available in the stack. In other environments, a Device can be disabled by removing its configuration file. A disabled device is physically present in a System and consuming resources, but can not be communicated with until a load of a driver, a load of a configuration file or some other "enabling" activity has occurred.
MappingStrings | string | MIF.DMTF|Operational State|006.4
ValueMap | string | 1, 2, 3, 4, 5
Values | string | Other, Unknown, Enabled, Disabled, Not Applicable
SystemCreationClassName | string |
Description | string | The scoping System's CreationClassName.
Key | boolean | true
MaxLen | uint32 | 256
Propagated | string | CIM_System.CreationClassName
SystemName | string |
Description | string | The scoping System's Name.
Key | boolean | true
MaxLen | uint32 | 256
Propagated | string | CIM_System.Name
TotalPowerOnHours | uint64 |
Counter | boolean | true
Description | string | The total number of hours that this Device has been powered.
Units | string | Hours
AdditionalAvailability | uint16[] |
Description | string | Additional availability and status of the Device, beyond that specified in the Availability property. The Availability property denotes the primary status and availability of the Device. In some cases, this will not be sufficient to denote the complete status of the Device. In those cases, the AdditionalAvailability property can be used to provide further information. For example, a Device's primary Availability may be "Off line" (value=8), but it may also be in a low power state (AdditonalAvailability value=14), or the Device could be running Diagnostics (AdditionalAvailability value=5, "In Test").
ModelCorrespondence | string | CIM_LogicalDevice.Availability
ValueMap | string | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21
Values | string | Other, Unknown, Running/Full Power, Warning, In Test, Not Applicable, Power Off, Off Line, Off Duty, Degraded, Not Installed, Install Error, Power Save - Unknown, Power Save - Low Power Mode, Power Save - Standby, Power Cycle, Power Save - Warning, Paused, Not Ready, Not Configured, Quiesced
IdentifyingDescriptions | string[] |
ArrayType | string | Indexed
Description | string | An array of free-form strings providing explanations and details behind the entries in the OtherIdentifyingInfo array. Note, each entry of this array is related to the entry in OtherIdentifyingInfo that is located at the same index.
ModelCorrespondence | string | CIM_LogicalDevice.OtherIdentifyingInfo
OtherIdentifyingInfo | string[] |
ArrayType | string | Indexed
Description | string | OtherIdentifyingInfo captures additional data, beyond DeviceID information, that could be used to identify a LogicalDevice. One example would be to hold the Operating System's user friendly name for the Device in this property.
MaxLen | uint32 | 256
ModelCorrespondence | string | CIM_LogicalDevice.IdentifyingDescriptions
PowerManagementCapabilities | uint16[] |
Deprecated | string | CIM_PowerManagementCapabilities.PowerCapabilities
Description | string | An enumerated array describing the power management capabilities of the Device. The use of this property has been deprecated. Instead, the PowerCapabilites property in an associated PowerManagementCapabilities class should be used.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, 7
Values | string | Unknown, Not Supported, Disabled, Enabled, Power Saving Modes Entered Automatically, Power State Settable, Power Cycling Supported, Timed Power On Supported

### 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
Name | string | CIM_ManagedSystemElement
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

### Local Class Methods

#### SetPowerState (uint32)

#### Method Qualifiers (SetPowerState)

Name | Data Type | Value
--- | --- | ---
Deprecated | string | CIM_PowerManagementService.SetPowerState
Description | string | Sets the power state of the Device. The use of this method has been deprecated. Instead, use the SetPowerState method in the associated PowerManagementService class.

#### Method Parameters (SetPowerState)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
PowerState | uint16
Description | string | The power state to set.
IN | boolean | true
ValueMap | string | 1, 2, 3, 4, 5, 6
Values | string | Full Power, Power Save - Low Power Mode, Power Save - Standby, Power Save - Other, Power Cycle, Power Off
Time | datetime
Description | string | Time indicates when the power state should be set, either as a regular date-time value or as an interval value (where the interval begins when the method invocation is received.
IN | boolean | true

#### Reset (uint32)

#### Method Qualifiers (Reset)

Name | Data Type | Value
--- | --- | ---
Description | string | Requests a reset of the LogicalDevice. The return value should be 0 if the request was successfully executed, 1 if the request is not supported and some 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' may also be specified in the subclass as a Values array qualifier.

#### Method Parameters (Reset)

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

#### EnableDevice (uint32)

#### Method Qualifiers (EnableDevice)

Name | Data Type | Value
--- | --- | ---
Deprecated | string | CIM_EnabledLogicalElement.RequestStateChange
Description | string | The EnableDevice method has been deprecated in lieu of the more general RequestStateChange method that directly overlaps with the functionality provided by this method. Requests that the LogicalDevice be enabled ("Enabled" input parameter = TRUE) or disabled (= FALSE). If successful, the Device's StatusInfo/EnabledState properties should reflect the desired state (enabled/disabled). Note that this method's function overlaps with the RequestedState property. RequestedState was added to the model to maintain a record (i.e., a persisted value) of the last state request. Invoking the EnableDevice method should set the RequestedState property appropriately. The return code should be 0 if the request was successfully executed, 1 if the request is not supported and some 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' may also be specified in the subclass as a Values array qualifier.

#### Method Parameters (EnableDevice)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
Enabled | boolean
Description | string | If TRUE enable the device, if FALSE disable the device.
IN | boolean | true

#### OnlineDevice (uint32)

#### Method Qualifiers (OnlineDevice)

Name | Data Type | Value
--- | --- | ---
Deprecated | string | CIM_EnabledLogicalElement.RequestStateChange
Description | string | The OnlineDevice method has been deprecated in lieu of the more general RequestStateChange method that directly overlaps with the functionality provided by this method. Requests that the LogicalDevice be brought online ("Online" input parameter = TRUE) or taken offline (= FALSE). "Online" indicates that the Device is ready to accept requests, and is operational and fully functioning. In this case, the Device's Availability property would be set to a value of 3 ("Running/Full Power"). "Offline" indicates that a Device is powered up and operational, but not processing functional requests. In an offline state, a Device may be capable of running diagnostics or generating operational alerts. For example, when the "Offline" button is pushed on a Printer, the Device is no longer available to process print jobs, but could be available for diagnostics or maintenance. If this method is successful, the Device's Availability and AdditionalAvailability properties should reflect the updated status. If a failure occurs trying to bring the Device online or offline, it should remain in its current state. IE, the request, if unsuccessful, should not leave the Device in an indeterminate state. When bringing a Device back "Online", from an "Offline" mode, the Device should be restored to its last "Online" state, if at all possible. Only a Device that has an EnabledState/StatusInfo of "Enabled" and has been configured can be brought online or taken offline. OnlineDevice should return 0 if successful, 1 if the request is not supported at all, 2 if the request is not supported due to the current state of the Device, and some other value if any other 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' may also be specified in the subclass as a Values array qualifier. Note that this method's function overlaps with the RequestedState property. RequestedState was added to the model to maintain a record (i.e., a persisted value) of the last state request. Invoking the OnlineDevice method should set the RequestedState property appropriately.

#### Method Parameters (OnlineDevice)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
Online | boolean
Description | string | If TRUE, take the device online, if FALSE, take the device OFFLINE.
IN | boolean | true

#### QuiesceDevice (uint32)

#### Method Qualifiers (QuiesceDevice)

Name | Data Type | Value
--- | --- | ---
Deprecated | string | CIM_EnabledLogicalElement.RequestStateChange
Description | string | The QuiesceDevice method has been deprecated in lieu of the more general RequestStateChange method that directly overlaps with the functionality provided by this method. Requests that the LogicalDevice cleanly cease all current activity ("Quiesce" input parameter = TRUE) or resume activity (= FALSE). For this method to quiesce a Device, that Device should have an Availability (or Additional Availability) of "Running/Full Power" (value=3) and an EnabledStatus/StatusInfo of "Enabled". For example, if quiesced, a Device may then be offlined for diagnostics, or disabled for power off and hot swap. For the method to "unquiesce" a Device, that Device should have an Availability (or AdditionalAvailability) of "Quiesced" (value=21) and an EnabledStatus/StatusInfo of "Enabled". In this case, the Device would be returned to an "Enabled" and "Running/Full Power" status. The method's return code should indicate the success or failure of the quiesce. It should return 0 if successful, 1 if the request is not supported at all, 2 if the request is not supported due to the current state of the Device, and some other value if any other 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' may also be specified in the subclass as a Values array qualifier.

#### Method Parameters (QuiesceDevice)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
Quiesce | boolean
Description | string | If set to TRUE then cleanly cease all activity, if FALSE resume activity.
IN | boolean | true

#### SaveProperties (uint32)

#### Method Qualifiers (SaveProperties)

Name | Data Type | Value
--- | --- | ---
Description | string | Requests that the Device capture its current configuration, setup and/or state information in a backing store. The goal would be to use this information at a later time (via the RestoreProperties method), to return a Device to its present "condition". This method may not be supported by all Devices. The method should return 0 if successful, 1 if the request is not supported, and some other value if any other 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' may also be specified in the subclass as a Values array qualifier.

#### Method Parameters (SaveProperties)

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

#### RestoreProperties (uint32)

#### Method Qualifiers (RestoreProperties)

Name | Data Type | Value
--- | --- | ---
Description | string | Requests that the Device re-establish its configuration, setup and/or state information from a backing store. The intent is to capture this information at an earlier time (via the SaveProperties method), and use it to return a Device to this earlier "condition". This method may not be supported by all Devices. The method should return 0 if successful, 1 if the request is not supported, and some other value if any other 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' may also be specified in the subclass as a Values array qualifier.

#### Method Parameters (RestoreProperties)

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

### Inherited Class Methods

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