// Copyright (c) 2005 DMTF. All rights reserved.
// Add UmlPackagePath
// qualifier values to CIM Schema.
// Add PUnit qualifier values
// to Units qualifier values.
// ==================================================================
// CIM_MediaAccessDevice
// ==================================================================
[Version ( "2.6.0" ),
UMLPackagePath ( "CIM::Device::StorageDevices" ),
Description (
"A MediaAccessDevice represents the ability to access one or "
"more media and use this media to store and retrieve data." )]
class CIM_MediaAccessDevice : CIM_LogicalDevice {
[Description (
"Capabilities of the MediaAccessDevice. For example, the "
"Device may support \"Random Access\", removeable media "
"and \"Automatic Cleaning\". In this case, the values 3, "
"7 and 9 would be written to the array. \n"
"Several of the enumerated values require some "
"explanation: 1) Value 11, Supports Dual Sided Media, "
"distinguishes a Device that can access both sides of "
"dual sided Media, from a Device that reads only a single "
"side and requires the Media to be flipped; and, 2) Value "
"12, Predismount Eject Not Required, indicates that Media "
"does not have to be explicitly ejected from the Device "
"before being accessed by a PickerElement." ),
ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"10", "11", "12" },
Values { "Unknown", "Other", "Sequential Access",
"Random Access", "Supports Writing", "Encryption",
"Compression", "Supports Removeable Media",
"Manual Cleaning", "Automatic Cleaning",
// 10
"SMART Notification",
"Supports Dual Sided Media",
"Predismount Eject Not Required" },
ArrayType ( "Indexed" ),
MappingStrings { "MIF.DMTF|Storage Devices|001.9",
"MIF.DMTF|Storage Devices|001.11",
"MIF.DMTF|Storage Devices|001.12", "MIF.DMTF|Disks|003.7",
"MIF.DMTF|Host Disk|001.2", "MIF.DMTF|Host Disk|001.4" },
ModelCorrespondence {
"CIM_MediaAccessDevice.CapabilityDescriptions" }]
uint16 Capabilities[];
[Description (
"An array of free-form strings providing more detailed "
"explanations for any of the AccessDevice features "
"indicated in the Capabilities array. Note, each entry of "
"this array is related to the entry in the Capabilities "
"array that is located at the same index." ),
ArrayType ( "Indexed" ),
ModelCorrespondence { "CIM_MediaAccessDevice.Capabilities" }]
string CapabilityDescriptions[];
[Description (
"ErrorMethodology is a free-form string describing the "
"type(s) of error detection and correction supported by "
"this Device." )]
string ErrorMethodology;
[Description (
"A free form string indicating the algorithm or tool used "
"by the device to support compression. If it is not "
"possible or not desired to describe the compression "
"scheme (perhaps because it is not known), recommend "
"using the following words: \"Unknown\" to represent that "
"it is not known whether the device supports compression "
"capabilities or not, \"Compressed\" to represent that "
"the device supports compression capabilities but either "
"its compression scheme is not known or not disclosed, "
"and \"Not Compressed\" to represent that the devices "
"does not support compression capabilities." )]
string CompressionMethod;
[Description (
"When the MediaAccessDevice supports multiple individual "
"Media, this property defines the maximum number which "
"can be supported or inserted." )]
uint32 NumberOfMediaSupported;
[Description (
"Maximum size, in KBytes, of media supported by this "
"Device. KBytes is interpreted as the number of bytes "
"multiplied by 1000 (NOT the number of bytes multiplied "
"by 1024)." ),
MappingStrings { "MIF.DMTF|Sequential Access Devices|001.2",
"MIF.DMTF|Host Disk|001.5" }]
uint64 MaxMediaSize;
[Description (
"Default block size, in bytes, for this Device." ),
Units ( "Bytes" ),
PUnit ( "byte" )]
uint64 DefaultBlockSize;
[Description (
"Maximum block size, in bytes, for media accessed by this Device."
),
Units ( "Bytes" ),
PUnit ( "byte" )]
uint64 MaxBlockSize;
[Description (
"Minimum block size, in bytes, for media accessed by this Device."
),
Units ( "Bytes" ),
PUnit ( "byte" )]
uint64 MinBlockSize;
[Description (
"Boolean indicating that the MediaAccessDevice needs "
"cleaning. Whether manual or automatic cleaning is "
"possible is indicated in the Capabilities array "
"property." )]
boolean NeedsCleaning;
[Description (
"True indicates that the media is locked in the Device "
"and can not be ejected. For non-removeable Devices, this "
"value should be true." )]
boolean MediaIsLocked;
[Description (
"An enumeration indicating the operational security "
"defined for the MediaAccessDevice. For example, "
"information that the Device is \"Read Only\" (value=4) "
"or \"Boot Bypass\" (value=6) can be described using this "
"property." ),
ValueMap { "1", "2", "3", "4", "5", "6", "7" },
Values { "Other", "Unknown", "None", "Read Only",
"Locked Out", "Boot Bypass", "Boot Bypass and Read Only" },
MappingStrings { "MIF.DMTF|Disks|003.22" }]
uint16 Security;
[Description (
"The date and time on which the Device was last cleaned." )]
datetime LastCleaned;
[Description (
"Time in milliseconds to move from the first location on "
"the Media to the location that is furthest with respect "
"to time. For a DiskDrive, this represents full seek + "
"full rotational delay. For TapeDrives, this represents a "
"search from the beginning of the tape to the most "
"physically distant point. (The end of a tape may be at "
"its most physically distant point, but this is not "
"necessarily true.)" ),
Units ( "MilliSeconds" ),
PUnit ( "second * 10^-3" )]
uint64 MaxAccessTime;
[Description (
"The sustained data transfer rate in KB/sec that the "
"Device can read from and write to a Media. This is a "
"sustained, raw data rate. Maximum rates or rates "
"assuming compression should not be reported in this "
"property." ),
Units ( "KiloBytes per Second" ),
PUnit ( "byte / second * 10^3" )]
uint32 UncompressedDataRate;
[Description (
"Time in milliseconds from \'load\' to being able to read "
"or write a Media. For example, for DiskDrives, this is "
"the interval between a disk not spinning to the disk "
"reporting that it is ready for read/write (ie, the disk "
"spinning at nominal speeds). For TapeDrives, this is the "
"time from a Media being injected to reporting that it is "
"ready for an application. This is usually at the tape\'s "
"BOT area." ),
Units ( "MilliSeconds" ),
PUnit ( "second * 10^-3" )]
uint64 LoadTime;
[Description (
"Time in milliseconds from being able to read or write a "
"Media to its \'unload\'. For example, for DiskDrives, "
"this is the interval between a disk spinning at nominal "
"speeds and a disk not spinning. For TapeDrives, this is "
"the time for a Media to go from its BOT to being fully "
"ejected and accessible to a PickerElement or human "
"operator." ),
Units ( "MilliSeconds" ),
PUnit ( "second * 10^-3" )]
uint64 UnloadTime;
[Description (
"For a MediaAccessDevice that supports removable Media, "
"the number of times that Media have been mounted for "
"data transfer or to clean the Device. For Devices "
"accessing nonremovable Media, such as hard disks, this "
"property is not applicable and should be set to 0." ),
Counter]
uint64 MountCount;
[Description (
"For a MediaAccessDevice that supports removable Media, "
"the most recent date and time that Media was mounted on "
"the Device. For Devices accessing nonremovable Media, "
"such as hard disks, this property has no meaning and is "
"not applicable." )]
datetime TimeOfLastMount;
[Description (
"For a MediaAccessDevice that supports removable Media, "
"the total time (in seconds) that Media have been mounted "
"for data transfer or to clean the Device. For Devices "
"accessing nonremovable Media, such as hard disks, this "
"property is not applicable and should be set to 0." )]
uint64 TotalMountTime;
[Description (
"Defines \'Units\' relative to its use in the property, "
"MaxUnitsBeforeCleaning. This describes the criteria used "
"to determine when the MediaAccessDevice should be "
"cleaned." ),
ModelCorrespondence {
"CIM_MediaAccessDevice.MaxUnitsBeforeCleaning",
"CIM_MediaAccessDevice.UnitsUsed" }]
string UnitsDescription;
[Description (
"An unsigned integer indicating the maximum \'units\' "
"that can be used, with respect to the AccessDevice, "
"before the Device should be cleaned. The property, "
"UnitsDescription, defines how \'units\' should be "
"interpreted." ),
ModelCorrespondence { "CIM_MediaAccessDevice.UnitsDescription" }]
uint64 MaxUnitsBeforeCleaning;
[Description (
"An unsigned integer indicating the currently used "
"\'units\' of the AccessDevice, helpful to describe when "
"the Device may require cleaning. The property, "
"UnitsDescription, defines how \'units\' should be "
"interpreted." ),
Gauge, ModelCorrespondence {
"CIM_MediaAccessDevice.UnitsDescription",
"CIM_MediaAccessDevice.MaxUnitsBeforeCleaning" }]
uint64 UnitsUsed;
[Description (
"Method to lock and unlock the media in a removeable "
"Access Device. The method takes one parameter as input - "
"a boolean indicating whether to lock or unlock. TRUE "
"indicates that the media should be locked in the Device, "
"FALSE indicates that the media should be unlocked. The "
"method returns 0 if successful, 1 if not supported, and "
"any other value if an error occurred. The set of "
"possible return codes should be specified in a ValueMap "
"qualifier on the method. The strings to which the "
"ValueMap contents are \'translated\' should be specified "
"as a Values array qualifier on the method." )]
uint32 LockMedia(
[IN, Description (
"If TRUE, lock the media. If FALSE release the media."
)]
boolean Lock);
};