1 kumpf 1.2 // ===================================================================
2 // Title: Storage Devices 2.7
3 // Filename: Device27_StorageDevices.mof
4 // Version: 2.7.0
5 // Release: Final
6 // Date: 03/31/03
7 // ===================================================================
8 // Copyright 1999-2003 Distributed Management Task Force, Inc. (DMTF).
9 // All rights reserved.
10 // DMTF is a not-for-profit association of industry members dedicated
11 // to promoting enterprise and systems management and interoperability.
12 // DMTF specifications and documents may be reproduced for uses
13 // consistent with this purpose by members and non-members,
14 // provided that correct attribution is given.
15 // As DMTF specifications may be revised from time to time,
16 // the particular version and release date should always be noted.
17 //
18 // Implementation of certain elements of this standard or proposed
19 // standard may be subject to third party patent rights, including
20 // provisional patent rights (herein "patent rights"). DMTF makes
21 // no representations to users of the standard as to the existence
22 kumpf 1.2 // of such rights, and is not responsible to recognize, disclose, or
23 // identify any or all such third party patent right, owners or
24 // claimants, nor for any incomplete or inaccurate identification or
25 // disclosure of such rights, owners or claimants. DMTF shall have no
26 // liability to any party, in any manner or circumstance, under any
27 // legal theory whatsoever, for failure to recognize, disclose, or
28 // identify any such third party patent rights, or for such party's
29 // reliance on the standard or incorporation thereof in its product,
30 // protocols or testing procedures. DMTF shall have no liability to
31 // any party implementing such standard, whether such implementation
32 // is foreseeable or not, nor to any patent owner or claimant, and shall
33 // have no liability or responsibility for costs or losses incurred if
34 // a standard is withdrawn or modified after publication, and shall be
35 // indemnified and held harmless by any party implementing the
36 // standard from any and all claims of infringement by a patent owner
37 // for such implementations.
38 //
39 // For information about patents held by third-parties which have
40 // notified the DMTF that, in their opinion, such patent may relate to
41 // or impact implementations of DMTF standards, visit
42 // http://www.dmtf.org/about/policies/disclosures.php.
43 kumpf 1.2 // ===================================================================
44 // Description: The Device Model extends the management concepts that
45 // are related to LogicalDevices. This file defines
46 // the management of storage devices (floppies,
47 // CD-ROMs, hard drives, etc.).
48 //
49 // The object classes below are listed in an order that
50 // avoids forward references. Required objects, defined
51 // by other working groups, are omitted.
52 // ==================================================================
53 // Change Log for v2.7 Final
54 // CR970 - Removal of the Experimental qualifier
55 //
56 // Change Log for v2.7
57 // CR721 - Add DeviceErrorCountData that is part of the new statistics
58 // hierarchy
59 // ==================================================================
60
61 #pragma locale ("en_US")
62
63
64 kumpf 1.2 // ===================================================================
65 // MediaAccessDevice
66 // ===================================================================
67 [Version ("2.6.0"), Description (
68 "A MediaAccessDevice represents the ability to access one or "
69 "more media and use this media to store and retrieve data.") ]
70 class CIM_MediaAccessDevice : CIM_LogicalDevice {
71
72 [Description (
73 "Capabilities of the MediaAccessDevice. For example, the "
74 "Device may support \"Random Access\", removeable media and "
75 "\"Automatic Cleaning\". In this case, the values 3, 7 and 9 "
76 "would be written to the array. \n"
77 "Several of the enumerated values require some explanation: "
78 "1) Value 11, Supports Dual Sided Media, distinguishes a "
79 "Device that can access both sides of dual sided Media, from "
80 "a Device that reads only a single side and requires the "
81 "Media to be flipped; and, 2) Value 12, Predismount Eject "
82 "Not Required, indicates that Media does not have to be "
83 "explicitly ejected from the Device before being accessed "
84 "by a PickerElement."),
85 kumpf 1.2 ArrayType ("Indexed"),
86 ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
87 "10", "11", "12"},
88 Values {"Unknown", "Other", "Sequential Access",
89 "Random Access", "Supports Writing", "Encryption",
90 "Compression", "Supports Removeable Media",
91 "Manual Cleaning", "Automatic Cleaning",
92 // 10
93 "SMART Notification", "Supports Dual Sided Media",
94 "Predismount Eject Not Required"},
95 MappingStrings {"MIF.DMTF|Storage Devices|001.9",
96 "MIF.DMTF|Storage Devices|001.11",
97 "MIF.DMTF|Storage Devices|001.12",
98 "MIF.DMTF|Disks|003.7", "MIF.DMTF|Host Disk|001.2",
99 "MIF.DMTF|Host Disk|001.4"},
100 ModelCorrespondence {
101 "CIM_MediaAccessDevice.CapabilityDescriptions"} ]
102 uint16 Capabilities[];
103
104 [Description (
105 "An array of free-form strings providing more detailed "
106 kumpf 1.2 "explanations for any of the AccessDevice features indicated "
107 "in the Capabilities array. Note, each entry of this array "
108 "is related to the entry in the Capabilities array that "
109 "is located at the same index."),
110 ArrayType ("Indexed"),
111 ModelCorrespondence {"CIM_MediaAccessDevice.Capabilities"} ]
112 string CapabilityDescriptions[];
113
114 [Description (
115 "ErrorMethodology is a free-form string describing "
116 "the type(s) of error detection and correction supported "
117 "by this Device.") ]
118 string ErrorMethodology;
119
120 [Description (
121 "A free form string indicating the algorithm or tool used "
122 "by the device to support compression. "
123 "If it is not possible or not desired to describe the "
124 "compression scheme (perhaps because it is not known), "
125 "recommend using the following words: \"Unknown\" to "
126 "represent that it is not known whether the device supports "
127 kumpf 1.2 "compression capabilities or not, \"Compressed\" to represent "
128 "that the device supports compression capabilities but either "
129 "its compression scheme is not known or not disclosed, and "
130 "\"Not Compressed\" to represent that the devices does not "
131 "support compression capabilities.") ]
132 string CompressionMethod;
133
134 [Description (
135 "When the MediaAccessDevice supports multiple individual "
136 "Media, this property defines the maximum number which can "
137 "be supported or inserted.") ]
138 uint32 NumberOfMediaSupported;
139
140 [Description (
141 "Maximum size, in KBytes, of media supported by this Device. "
142 "KBytes is interpreted as the number of bytes multiplied by "
143 "1000 (NOT the number of bytes multiplied by 1024)."),
144 MappingStrings {"MIF.DMTF|Sequential Access Devices|001.2",
145 "MIF.DMTF|Host Disk|001.5"} ]
146 uint64 MaxMediaSize;
147
148 kumpf 1.2 [Description ("Default block size, in bytes, for this Device."),
149 Units ("Bytes") ]
150 uint64 DefaultBlockSize;
151
152 [Description (
153 "Maximum block size, in bytes, for media accessed by this "
154 "Device."),
155 Units ("Bytes") ]
156 uint64 MaxBlockSize;
157
158 [Description (
159 "Minimum block size, in bytes, for media accessed by this "
160 "Device."),
161 Units ("Bytes") ]
162 uint64 MinBlockSize;
163
164 [Description (
165 "Boolean indicating that the MediaAccessDevice needs cleaning. "
166 "Whether manual or automatic cleaning is possible is indicated "
167 "in the Capabilities array property.") ]
168 boolean NeedsCleaning;
169 kumpf 1.2
170 [Description (
171 "True indicates that the media is locked in the Device "
172 "and can not be ejected. For non-removeable Devices, this "
173 "value should be true.") ]
174 boolean MediaIsLocked;
175
176 [Description (
177 "An enumeration indicating the operational security defined "
178 "for the MediaAccessDevice. For example, information that "
179 "the Device is \"Read Only\" (value=4) or \"Boot Bypass\" "
180 "(value=6) can be described using this property."),
181 ValueMap {"1", "2", "3", "4", "5", "6", "7"},
182 Values {"Other", "Unknown", "None", "Read Only", "Locked Out",
183 "Boot Bypass", "Boot Bypass and Read Only"},
184 MappingStrings {"MIF.DMTF|Disks|003.22"} ]
185 uint16 Security;
186
187 [Description (
188 "The date and time on which the Device was last cleaned.") ]
189 datetime LastCleaned;
190 kumpf 1.2
191 [Description (
192 "Time in milliseconds to move from the first location on "
193 "the Media to the location that is furthest with respect to "
194 "time. For a DiskDrive, this represents full seek + full "
195 "rotational delay. For TapeDrives, this represents a search "
196 "from the beginning of the tape to the most physically "
197 "distant point. (The end of a tape may be at its most "
198 "physically distant point, but this is not necessarily "
199 "true.)"),
200 Units ("MilliSeconds") ]
201 uint64 MaxAccessTime;
202
203 [Description (
204 "The sustained data transfer rate in KB/sec that the "
205 "Device can read from and write to a Media. This is a "
206 "sustained, raw data rate. Maximum rates or rates "
207 "assuming compression should not be reported in this "
208 "property."),
209 Units ("KiloBytes per Second") ]
210 uint32 UncompressedDataRate;
211 kumpf 1.2
212 [Description (
213 "Time in milliseconds from 'load' to being able to read "
214 "or write a Media. For example, for DiskDrives, this is "
215 "the interval between a disk not spinning to the disk "
216 "reporting that it is ready for read/write (ie, the disk "
217 "spinning at nominal speeds). For TapeDrives, this is "
218 "the time from a Media being injected to reporting that "
219 "it is ready for an application. This is usually at the "
220 "tape's BOT area."),
221 Units ("MilliSeconds") ]
222 uint64 LoadTime;
223
224 [Description (
225 "Time in milliseconds from being able to read or write a "
226 "Media to its 'unload'. For example, for DiskDrives, "
227 "this is the interval between a disk spinning at nominal "
228 "speeds and a disk not spinning. For TapeDrives, this is "
229 "the time for a Media to go from its BOT to being fully "
230 "ejected and accessible to a PickerElement or human "
231 "operator."),
232 kumpf 1.2 Units ("MilliSeconds") ]
233 uint64 UnloadTime;
234
235 [Description (
236 "For a MediaAccessDevice that supports removable Media, "
237 "the number of times that Media have been mounted for "
238 "data transfer or to clean the Device. For Devices "
239 "accessing nonremovable Media, such as hard disks, "
240 "this property is not applicable and should be set to 0."),
241 Counter ]
242 uint64 MountCount;
243
244 [Description (
245 "For a MediaAccessDevice that supports removable Media, "
246 "the most recent date and time that Media was mounted "
247 "on the Device. For Devices accessing nonremovable Media, "
248 "such as hard disks, this property has no meaning and is "
249 "not applicable.") ]
250 datetime TimeOfLastMount;
251
252 [Description (
253 kumpf 1.2 "For a MediaAccessDevice that supports removable Media, "
254 "the total time (in seconds) that Media have been mounted "
255 "for data transfer or to clean the Device. For Devices "
256 "accessing nonremovable Media, such as hard disks, "
257 "this property is not applicable and should be set to 0.") ]
258 uint64 TotalMountTime;
259
260 [Description (
261 "Defines 'Units' relative to its use in the property, "
262 "MaxUnitsBeforeCleaning. This describes the criteria used "
263 "to determine when the MediaAccessDevice should be cleaned."),
264 ModelCorrespondence {
265 "CIM_MediaAccessDevice.MaxUnitsBeforeCleaning",
266 "CIM_MediaAccessDevice.UnitsUsed"} ]
267 string UnitsDescription;
268
269 [Description (
270 "An unsigned integer indicating the maximum 'units' "
271 "that can be used, with respect to the AccessDevice, "
272 "before the Device should be cleaned. The property, "
273 "UnitsDescription, defines how 'units' should be "
274 kumpf 1.2 "interpreted."),
275 ModelCorrespondence {
276 "CIM_MediaAccessDevice.UnitsDescription"} ]
277 uint64 MaxUnitsBeforeCleaning;
278
279 [Description (
280 "An unsigned integer indicating the currently used "
281 "'units' of the AccessDevice, helpful to describe "
282 "when the Device may require cleaning. The property, "
283 "UnitsDescription, defines how 'units' should be "
284 "interpreted."),
285 Gauge,
286 ModelCorrespondence {
287 "CIM_MediaAccessDevice.UnitsDescription",
288 "CIM_MediaAccessDevice.MaxUnitsBeforeCleaning"} ]
289 uint64 UnitsUsed;
290
291 [Description (
292 "Method to lock and unlock the media in a removeable Access"
293 "Device. The method takes one parameter as input - a boolean "
294 "indicating whether to lock or unlock. TRUE indicates that "
295 kumpf 1.2 "the media should be locked in the Device, FALSE indicates "
296 "that the media should be unlocked. The method returns 0 if "
297 "successful, 1 if not supported, and any other value if an "
298 "error occurred. The set of possible return codes should be "
299 "specified in a ValueMap qualifier on the method. The strings "
300 "to which the ValueMap contents are 'translated' should be "
301 "specified as a Values array qualifier on the method.") ]
302 uint32 LockMedia (
303 [IN]
304 boolean Lock);
305 };
306
307
308 // ===================================================================
309 // DiskDrive
310 // ===================================================================
311 [Version ("2.6.0"), Description (
312 "Capabilities and managment of a DiskDrive, a subtype of "
313 "MediaAccessDevice.") ]
314 class CIM_DiskDrive : CIM_MediaAccessDevice {
315 };
316 kumpf 1.2
317
318 // ===================================================================
319 // DisketteDrive
320 // ===================================================================
321 [Version ("2.6.0"), Description (
322 "Capabilities and managment of a DisketteDrive, a subtype of "
323 "MediaAccessDevice.") ]
324 class CIM_DisketteDrive : CIM_MediaAccessDevice {
325 };
326
327
328 // ===================================================================
329 // CDROMDrive
330 // ===================================================================
331 [Version ("2.6.0"), Description (
332 "Capabilities and managment of a CDROMDrive, a subtype of "
333 "MediaAccessDevice.") ]
334 class CIM_CDROMDrive : CIM_MediaAccessDevice {
335 };
336
337 kumpf 1.2
338 // ===================================================================
339 // DVDDrive
340 // ===================================================================
341 [Version ("2.6.0"), Description (
342 "Capabilities and management of a DVDDrive, a subtype of "
343 "MediaAccessDevice.") ]
344 class CIM_DVDDrive : CIM_MediaAccessDevice {
345
346 [Description (
347 "The CD and DVD formats that are supported by this Device. "
348 "For example, the Drive may support \"CD-ROM\" and "
349 "\"DVD-RAM\". In this case, the values 16 and 24 would be "
350 "written to the array. This property's values align with "
351 "those defined in PhysicalMedia.MediaType."),
352 ValueMap {"0", "1", "16", "17", "18", "19", "22", "23", "24",
353 "25", "26", "27", "33", "34", "35", "36", "37", "38",
354 "39", "40", "41", "42"},
355 Values {"Unknown", "Other", "CD-ROM", "CD-ROM/XA",
356 "CD-I", "CD Recordable", "DVD", "DVD-RW+",
357 "DVD-RAM", "DVD-ROM", "DVD-Video", "Divx", "CD-RW",
358 kumpf 1.2 "CD-DA", "CD+", "DVD Recordable", "DVD-RW",
359 "DVD-Audio", "DVD-5", "DVD-9", "DVD-10", "DVD-18"},
360 ModelCorrespondence {"CIM_PhysicalMedia.MediaType"} ]
361 uint16 FormatsSupported[];
362 };
363
364
365 // ===================================================================
366 // WORMDrive
367 // ===================================================================
368 [Version ("2.6.0"), Description (
369 "Capabilities and managment of a WORMDrive, a subtype of "
370 "MediaAccessDevice.") ]
371 class CIM_WORMDrive : CIM_MediaAccessDevice {
372 };
373
374
375 // ===================================================================
376 // MagnetoOpticalDrive
377 // ===================================================================
378 [Version ("2.6.0"), Description (
379 kumpf 1.2 "Capabilities and managment of a MagnetoOpticalDrive, a "
380 "subtype of MediaAccessDevice.") ]
381 class CIM_MagnetoOpticalDrive : CIM_MediaAccessDevice {
382 };
383
384
385 // ===================================================================
386 // TapeDrive
387 // ===================================================================
388 [Version ("2.6.0"), Description (
389 "Capabilities and managment of a TapeDrive, a subtype of "
390 "MediaAccessDevice.") ]
391 class CIM_TapeDrive : CIM_MediaAccessDevice {
392
393 [Description (
394 "EOTWarningZoneSize indicates the size, in bytes, of the "
395 "area designated as 'end of tape'. Access in this area "
396 "generates an 'end of tape' warning."),
397 Units ("Bytes") ]
398 uint32 EOTWarningZoneSize;
399
400 kumpf 1.2 [Description (
401 "Maximum partition count for the TapeDrive.") ]
402 uint32 MaxPartitionCount;
403
404 [Description (
405 "Padding indicates the number of bytes inserted between "
406 "blocks on a tape Media."),
407 Units ("Bytes") ]
408 uint32 Padding;
409
410 [Description (
411 "Time in milliseconds to move from the most physically distant "
412 "point on the tape to the beginning."),
413 Units ("MilliSeconds") ]
414 uint64 MaxRewindTime;
415 };
416
417
418 // ===================================================================
419 // MediaAccessStatInfo
420 // ===================================================================
421 kumpf 1.2 [Version ("2.6.0"), Description (
422 "Statistics related to reading and writing at a specific "
423 "MediaAccessDevice, or for a specific StorageExtent. Although "
424 "the same class is used to represent this data, at the instance "
425 "level the object holds information for the MediaAccessDevice "
426 "(independent of the StorageExtent), OR for the Extent "
427 "(independent of its AccessDevice). Note that this class "
428 "models the same properties as MediaAccessStatData. The latter, "
429 "however, uses the simplified key mechanisms of the "
430 "StatisticalData class.") ]
431 class CIM_MediaAccessStatInfo : CIM_DeviceStatisticalInformation {
432
433 [Counter, Description ("The number of attempted read operations.") ]
434 uint64 ReadOperations;
435
436 [Counter,
437 Description ("The number of unrecoverable read operations.") ]
438 uint64 UnrecoverableReadOperations;
439
440 [Counter,
441 Description ("The number of attempted write operations.") ]
442 kumpf 1.2 uint64 WriteOperations;
443
444 [Counter,
445 Description ("The number of unrecoverable write operations.") ]
446 uint64 UnrecoverableWriteOperations;
447
448 [Counter, Description ("The number of recovered read operations.") ]
449 uint64 RecoveredReadOperations;
450
451 [Counter, Description ("The number of recovered write operations.") ]
452 uint64 RecoveredWriteOperations;
453
454 [Counter, Description ("The number of recovered seek operations.") ]
455 uint64 RecoveredSeekOperations;
456
457 [Counter,
458 Description ("The number of unrecoverable seek operations.") ]
459 uint64 UnrecoverableSeekOperations;
460
461 [Description (
462 "Method to reset the statistical counters. The method takes "
463 kumpf 1.2 "one parameter as input - an integer indicating which counter "
464 "to reset. For this input parameter, 0 indicates all, 1-2 and "
465 "5 reset the 'read operation'-related counters, 3-4 and 6 "
466 "reset the 'write operation'-related counters, and 7-8 reset "
467 "the seek-related counters. The method returns 0 if "
468 "successful, 1 if not supported, and any other value if an "
469 "error occurred. A method is specified so that the Device's "
470 "instrumentation can also reset its internal processing and "
471 "counters. \n"
472 "In a subclass, the set of possible return codes should be "
473 "specified in a ValueMap qualifier on the method. The strings "
474 "to which the ValueMap contents are 'translated' can be "
475 "specified as a Values array qualifier.") ]
476 uint32 ResetCounter (
477 [IN,
478 ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8"},
479 Values {"All", "Read Operations",
480 "Unrecoverable Read Operations", "Write Operations",
481 "Unrecoverable Write Operations",
482 "Recovered Read Operations",
483 "Recovered Write Operations", "Recovered Seeks",
484 kumpf 1.2 "Unrecoverable Seeks"} ]
485 uint16 SelectedCounter);
486 };
487
488
489 // ===================================================================
490 // MediaAccessStatData
491 // ===================================================================
492 [Version ("2.7.0"), Description (
493 "Statistics related to reading and writing at a specific "
494 "MediaAccessDevice, or for a specific StorageExtent. The same "
495 "class is used to represent this data - whether for the "
496 "MediaAccessDevice (independent of the StorageExtent), OR for "
497 "the Extent (independent of its AccessDevice). The element "
498 "whose statistics are described is associated using the "
499 "relationship, ElementStatisticalData. Note that this class "
500 "models the same properties as MediaAccessStatInfo. This class, "
501 "however, uses the simplified key mechanisms of its "
502 "superclass, StatisticalData.") ]
503 class CIM_MediaAccessStatData : CIM_StatisticalData {
504
505 kumpf 1.2 [Counter, Description ("The number of attempted read operations.") ]
506 uint64 ReadOperations;
507
508 [Counter,
509 Description ("The number of unrecoverable read operations.") ]
510 uint64 UnrecoverableReadOperations;
511
512 [Counter, Description ("The number of attempted write operations.") ]
513 uint64 WriteOperations;
514
515 [Counter,
516 Description ("The number of unrecoverable write operations.") ]
517 uint64 UnrecoverableWriteOperations;
518
519 [Counter, Description ("The number of recovered read operations.") ]
520 uint64 RecoveredReadOperations;
521
522 [Counter, Description ("The number of recovered write operations.") ]
523 uint64 RecoveredWriteOperations;
524
525 [Counter, Description ("The number of recovered seek operations.") ]
526 kumpf 1.2 uint64 RecoveredSeekOperations;
527
528 [Counter,
529 Description ("The number of unrecoverable seek operations.") ]
530 uint64 UnrecoverableSeekOperations;
531 };
532
533
534 // ===================================================================
535 // end of file
536 // ===================================================================
|