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