// =================================================================== // Title: Core Device 2.7 // Filename: Core27_Device.mof // Version: 2.7.0 // Release: Final // Date: 03/31/03 // =================================================================== // Copyright 1998-2003 Distributed Management Task Force, Inc. (DMTF). // All rights reserved. // DMTF is a not-for-profit association of industry members dedicated // to promoting enterprise and systems management and interoperability. // DMTF specifications and documents may be reproduced for uses // consistent with this purpose by members and non-members, // provided that correct attribution is given. // As DMTF specifications may be revised from time to time, // the particular version and release date should always be noted. // // Implementation of certain elements of this standard or proposed // standard may be subject to third party patent rights, including // provisional patent rights (herein "patent rights"). DMTF makes // no representations to users of the standard as to the existence // of such rights, and is not responsible to recognize, disclose, or // identify any or all such third party patent right, owners or // claimants, nor for any incomplete or inaccurate identification or // disclosure of such rights, owners or claimants. DMTF shall have no // liability to any party, in any manner or circumstance, under any // legal theory whatsoever, for failure to recognize, disclose, or // identify any such third party patent rights, or for such party's // reliance on the standard or incorporation thereof in its product, // protocols or testing procedures. DMTF shall have no liability to // any party implementing such standard, whether such implementation // is foreseeable or not, nor to any patent owner or claimant, and shall // have no liability or responsibility for costs or losses incurred if // a standard is withdrawn or modified after publication, and shall be // indemnified and held harmless by any party implementing the // standard from any and all claims of infringement by a patent owner // for such implementations. // // For information about patents held by third-parties which have // notified the DMTF that, in their opinion, such patent may relate to // or impact implementations of DMTF standards, visit // http://www.dmtf.org/about/policies/disclosures.php. // =================================================================== // Description: The Core Model defines basic management concepts. // This file defines the concepts for LogicalDevices (the // logical abstractions and management of installed // hardware). // // The object classes below are listed in an order that // avoids forward references. Required objects, defined // by other working groups, are omitted. // ================================================================== // Change Log for v2.7 Final // CR961 - Change references to EnabledStatus and RequestedStatus to // EnabledState and RequestedState in the LogicalDevice. // StatusInfo, // EnableDevice(), // OnlineDevice(), // QuiesceDevice() // // Change Log for v2.7 // CR624 - Fixed several of the DMI mapping strings that were missing // the attribute number in LogicalDevice // CR720 - Deprecate the use of LogicalDevice.PowerManagementSupported, // LogicalDevice.PowerManagementCapabilities, & LogicalDevice. // SetPowerState() // CR761 - Add the Composition Qualifer to SystemDevice // CR763 - Change subclassing of LogicalDevice from LogicalElement to // EnabledLogicalElement // - Deprecate LogicalDevice.StatusInfo // - Update description of LogicalDevice.EnableDevice() to // explain position relative to LogicalDevice.RequestedStatus // - Update description of LogicalDevice.OnlineDevice() and // QuiesceDevice to make reference to EnabledStatus // ================================================================== #pragma locale ("en_US") // =================================================================== // LogicalDevice // =================================================================== [Abstract, Version ("2.7.0"), Description ( "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.") ] class CIM_LogicalDevice : CIM_EnabledLogicalElement { [Propagated("CIM_System.CreationClassName"), Key, MaxLen (256), Description ( "The scoping System's CreationClassName.") ] string SystemCreationClassName; [Propagated("CIM_System.Name"), Key, MaxLen (256), Description ( "The scoping System's Name.") ] string SystemName; [Key, MaxLen (256), Description ( "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.") ] string CreationClassName; [Key, MaxLen (64), Description ( "An address or other identifying information to uniquely " "name the LogicalDevice.") ] string DeviceID; [Deprecated {"CIM_PowerManagementCapabilities"}, Description ( "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.") ] boolean PowerManagementSupported; [Deprecated {"CIM_PowerManagementCapabilities.PowerCapabilities"}, Description( "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 {"0", "1", "2", "3", "4", "5", "6", "7"}, Values {"Unknown", "Not Supported", "Disabled", "Enabled", "Power Saving Modes Entered Automatically", "Power State Settable", "Power Cycling Supported", "Timed Power On Supported"} ] uint16 PowerManagementCapabilities[]; [Description ( "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."), ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21"}, Values {"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"}, MappingStrings {"MIF.DMTF|Operational State|006.5", "MIB.IETF|HOST-RESOURCES-MIB.hrDeviceStatus", "MIF.DMTF|Host Device|001.5"}, ModelCorrespondence { "CIM_LogicalDevice.AdditionalAvailability"} ] uint16 Availability; [Deprecated {"CIM_EnabledLogicalElement.EnabledStatus"}, Description ( " 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. \n" " 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."), ValueMap {"1", "2", "3", "4", "5"}, Values {"Other", "Unknown", "Enabled", "Disabled", "Not Applicable"}, MappingStrings {"MIF.DMTF|Operational State|006.4"} ] uint16 StatusInfo; [Description ( "LastErrorCode captures the last error code reported by " "the LogicalDevice.") ] uint32 LastErrorCode; [Description ( "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.") ] string ErrorDescription; [Description ( "ErrorCleared is a boolean property indicating that the " "error reported in LastErrorCode is now cleared.") ] boolean ErrorCleared; [MaxLen (256), ArrayType ("Indexed"), Description ( "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."), ModelCorrespondence { "CIM_LogicalDevice.IdentifyingDescriptions"} ] string OtherIdentifyingInfo[]; [Description ( "The number of consecutive hours that this Device has been " "powered, since its last power cycle."), Units ("Hours"), Counter ] uint64 PowerOnHours; [Description ( "The total number of hours that this Device has been " "powered."), Units ("Hours"), Counter ] uint64 TotalPowerOnHours; [ArrayType ("Indexed"), Description ( "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 {"CIM_LogicalDevice.OtherIdentifyingInfo"} ] string IdentifyingDescriptions[]; [Description ( "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\")."), ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21"}, Values {"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"}, ModelCorrespondence {"CIM_LogicalDevice.Availability"} ] uint16 AdditionalAvailability[]; [Description ( "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 ("MilliSeconds") ] uint64 MaxQuiesceTime; [Deprecated {"CIM_PowerManagementService.SetPowerState"}, Description( "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." ) ] uint32 SetPowerState( [IN, ValueMap {"1", "2", "3", "4", "5", "6"}, Values {"Full Power", "Power Save - Low Power Mode", "Power Save - Standby", "Power Save - Other", "Power Cycle", "Power Off"} ] uint16 PowerState, [IN] datetime Time); [Description ( "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.") ] uint32 Reset(); [Description ( " 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. \n" " 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.") ] uint32 EnableDevice( [IN] boolean Enabled); [Description ( "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. \n" "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. \n" "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. \n" "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.") ] uint32 OnlineDevice( [IN] boolean Online); [Description ( "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 " "EnabledState/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 EnabledState/StatusInfo of \"Enabled\". " "In this case, the Device would be returned to an \"Enabled\" " "and \"Running/Full Power\" status. \n" "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. \n" "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 QuiesceDevice " "method should set the RequestedState property " "appropriately.") ] uint32 QuiesceDevice( [IN] boolean Quiesce); [Description ( "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.") ] uint32 SaveProperties(); [Description ( "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.") ] uint32 RestoreProperties(); }; // ================================================================== // Realizes // ================================================================== [Association, Version ("2.6.0"), Description ( "CIM_Realizes is the association that defines the mapping " "between LogicalDevices and the PhysicalElements that " "implement them.") ] class CIM_Realizes : CIM_Dependency { [Override ("Antecedent"), Description ( "The physical component that implements the Device.") ] CIM_PhysicalElement REF Antecedent; [Override ("Dependent"), Description ( "The LogicalDevice.") ] CIM_LogicalDevice REF Dependent; }; // ================================================================== // SystemDevice // ================================================================== [Association, Aggregation, Composition, Version ("2.7.0"), Description ( "LogicalDevices may be aggregated by a System. This " "relationship is made explicit by the SystemDevice " "association.") ] class CIM_SystemDevice:CIM_SystemComponent { [Override ("GroupComponent"), Aggregate, Max (1), Min (1), Description ("The parent system in the Association.") ] CIM_System REF GroupComponent; [Override ("PartComponent"), Weak, Description ( "The LogicalDevice that is a component of a System.") ] CIM_LogicalDevice REF PartComponent; }; // =================================================================== // DeviceServiceImplementation // =================================================================== [Association, Version ("2.6.0"), Description ( "An association between a Service and how it is implemented. " "The cardinality of this association is many-to-many. " "A Service may be provided by more than one Logical" "Device, operating in conjunction. And, any Device may " "provide more than one Service. When multiple Devices are " "associated with a single Service, it is assumed that these " "elements operate in conjunction to provide the Service. If " "different implementations of a Service exist, each of these " "implementations would result in individual instantiations " "of the Service object. These individual instantiations " "would then have associations to the unique implementations.") ] class CIM_DeviceServiceImplementation : CIM_Dependency { [Override ("Antecedent"), Description ("The LogicalDevice.") ] CIM_LogicalDevice REF Antecedent; [Override ("Dependent"), Description ("The Service implemented using the Logical" "Device.") ] CIM_Service REF Dependent; }; // =================================================================== // DeviceSAPImplementation // =================================================================== [Association, Version ("2.6.0"), Description ( "An association between a ServiceAccessPoint and how " "it is implemented. The cardinality of this association " "is many-to-many. A SAP may be provided by more " "than one LogicalDevice, operating in conjunction. And, any " "Device may provide more than one ServiceAccessPoint. " "When many LogicalDevices are associated with a single " "SAP, it is assumed that these elements operate in " "conjunction to provide the AccessPoint. If different " "implementations of a SAP exist, each of these implementations " "would result in individual instantiations of the " "ServiceAccessPoint object. These individual instantiations " "would then have associations to the unique implementations.") ] class CIM_DeviceSAPImplementation : CIM_Dependency { [Override ("Antecedent"), Description ("The LogicalDevice.") ] CIM_LogicalDevice REF Antecedent; [Override ("Dependent"), Description ( "The ServiceAccessPoint implemented using the " "LogicalDevice.") ] CIM_ServiceAccessPoint REF Dependent; }; // =================================================================== // end of file // ===================================================================