1 tony 1.1 // ===================================================================
2 // Title: Storage Devices 2.8
3 // Filename: Device28_StorageDevices.mof
4 // Version: 2.8
5 // Status: Final
6 // Date: Jan 26, 2004
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 Final:
54 // CR1233 - SysDev omnibus CR - minor MOF corrections
55 //
56 // Change Log for v2.7 Final
57 // CR970 - Removal of the Experimental qualifier
58 //
59 // Change Log for v2.7
60 // CR721 - Add DeviceErrorCountData that is part of the new statistics
61 // hierarchy
62 // ==================================================================
63
64 tony 1.1 #pragma locale ("en_US")
65
66
67 // ===================================================================
68 // MediaAccessDevice
69 // ===================================================================
70 [Version ( "2.6.0" ), Description (
71 "A MediaAccessDevice represents the ability to access one or "
72 "more media and use this media to store and retrieve data.")]
73 class CIM_MediaAccessDevice : CIM_LogicalDevice {
74
75 [Description (
76 "Capabilities of the MediaAccessDevice. For example, the "
77 "Device may support \"Random Access\", removeable media and "
78 "\"Automatic Cleaning\". In this case, the values 3, 7 and 9 "
79 "would be written to the array. \n"
80 "Several of the enumerated values require some explanation: "
81 "1) Value 11, Supports Dual Sided Media, distinguishes a "
82 "Device that can access both sides of dual sided Media, from "
83 "a Device that reads only a single side and requires the "
84 "Media to be flipped; and, 2) Value 12, Predismount Eject "
85 tony 1.1 "Not Required, indicates that Media does not have to be "
86 "explicitly ejected from the Device before being accessed by "
87 "a PickerElement."),
88 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
89 "10", "11", "12" },
90 Values { "Unknown", "Other", "Sequential Access",
91 "Random Access", "Supports Writing", "Encryption",
92 "Compression", "Supports Removeable Media",
93 "Manual Cleaning", "Automatic Cleaning",
94 // 10
95 "SMART Notification", "Supports Dual Sided Media",
96 "Predismount Eject Not Required" },
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 ArrayType ( "Indexed" ),
102 ModelCorrespondence {
103 "CIM_MediaAccessDevice.CapabilityDescriptions" }]
104 uint16 Capabilities[];
105
106 tony 1.1 [Description (
107 "An array of free-form strings providing more detailed "
108 "explanations for any of the AccessDevice features indicated "
109 "in the Capabilities array. Note, each entry of this array "
110 "is related to the entry in the Capabilities array that is "
111 "located at the same index."),
112 ArrayType ( "Indexed" ),
113 ModelCorrespondence { "CIM_MediaAccessDevice.Capabilities" }]
114 string CapabilityDescriptions[];
115
116 [Description (
117 "ErrorMethodology is a free-form string describing the "
118 "type(s) of error detection and correction supported by this "
119 "Device.")]
120 string ErrorMethodology;
121
122 [Description (
123 "A free form string indicating the algorithm or tool used by "
124 "the device to support compression. If it is not possible or "
125 "not desired to describe the compression scheme (perhaps "
126 "because it is not known), recommend using the following "
127 tony 1.1 "words: \"Unknown\" to represent that it is not known "
128 "whether the device supports compression capabilities or "
129 "not, \"Compressed\" to represent that the device supports "
130 "compression capabilities but either its compression scheme "
131 "is not known or not disclosed, and \"Not Compressed\" to "
132 "represent that the devices does not support compression "
133 "capabilities.")]
134 string CompressionMethod;
135
136 [Description (
137 "When the MediaAccessDevice supports multiple individual "
138 "Media, this property defines the maximum number which can "
139 "be supported or inserted.")]
140 uint32 NumberOfMediaSupported;
141
142 [Description (
143 "Maximum size, in KBytes, of media supported by this Device. "
144 "KBytes is interpreted as the number of bytes multiplied by "
145 "1000 (NOT the number of bytes multiplied by 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 is "
228 "the interval between a disk spinning at nominal speeds and "
229 "a disk not spinning. For TapeDrives, this is the time for a "
230 "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 accessing "
256 "nonremovable Media, such as hard disks, this property is "
257 "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 to "
263 "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 boolean "
290 "indicating whether to lock or unlock. TRUE indicates that "
291 "the media should be locked in the Device, FALSE indicates "
292 "that the media should be unlocked. The method returns 0 if "
293 "successful, 1 if not supported, and any other value if an "
294 "error occurred. The set of possible return codes should be "
295 tony 1.1 "specified in a ValueMap qualifier on the method. The "
296 "strings to which the ValueMap contents are 'translated' "
297 "should be specified as a Values array qualifier on the "
298 "method.")]
299 uint32 LockMedia (
300 [IN, Description (
301 "If TRUE, lock the media. If FALSE release the media.")]
302 boolean Lock);
303 };
304
305
306 // ===================================================================
307 // DiskDrive
308 // ===================================================================
309 [Version ( "2.6.0" ), Description (
310 "Capabilities and managment of a DiskDrive, a subtype of "
311 "MediaAccessDevice.")]
312 class CIM_DiskDrive : CIM_MediaAccessDevice {
313 };
314
315
316 tony 1.1 // ===================================================================
317 // DisketteDrive
318 // ===================================================================
319 [Version ( "2.6.0" ), Description (
320 "Capabilities and managment of a DisketteDrive, a subtype of "
321 "MediaAccessDevice.")]
322 class CIM_DisketteDrive : CIM_MediaAccessDevice {
323 };
324
325
326 // ===================================================================
327 // CDROMDrive
328 // ===================================================================
329 [Version ( "2.6.0" ), Description (
330 "Capabilities and managment of a CDROMDrive, a subtype of "
331 "MediaAccessDevice.")]
332 class CIM_CDROMDrive : CIM_MediaAccessDevice {
333 };
334
335
336 // ===================================================================
337 tony 1.1 // DVDDrive
338 // ===================================================================
339 [Version ( "2.6.0" ), Description (
340 "Capabilities and management of a DVDDrive, a subtype of "
341 "MediaAccessDevice.")]
342 class CIM_DVDDrive : CIM_MediaAccessDevice {
343
344 [Description (
345 "The CD and DVD formats that are supported by this Device. "
346 "For example, the Drive may support \"CD-ROM\" and "
347 "\"DVD-RAM\". In this case, the values 16 and 24 would be "
348 "written to the array. This property's values align with "
349 "those defined in PhysicalMedia.MediaType."),
350 ValueMap { "0", "1", "16", "17", "18", "19", "22", "23", "24",
351 "25", "26", "27", "33", "34", "35", "36", "37", "38", "39",
352 "40", "41", "42" },
353 Values { "Unknown", "Other", "CD-ROM", "CD-ROM/XA", "CD-I",
354 "CD Recordable", "DVD", "DVD-RW+", "DVD-RAM", "DVD-ROM",
355 "DVD-Video", "Divx", "CD-RW", "CD-DA", "CD+",
356 "DVD Recordable", "DVD-RW", "DVD-Audio", "DVD-5", "DVD-9",
357 "DVD-10", "DVD-18" },
358 tony 1.1 ModelCorrespondence { "CIM_PhysicalMedia.MediaType" }]
359 uint16 FormatsSupported[];
360 };
361
362
363 // ===================================================================
364 // WORMDrive
365 // ===================================================================
366 [Version ( "2.6.0" ), Description (
367 "Capabilities and managment of a WORMDrive, a subtype of "
368 "MediaAccessDevice.")]
369 class CIM_WORMDrive : CIM_MediaAccessDevice {
370 };
371
372
373 // ===================================================================
374 // MagnetoOpticalDrive
375 // ===================================================================
376 [Version ( "2.6.0" ), Description (
377 "Capabilities and managment of a MagnetoOpticalDrive, a subtype "
378 "of MediaAccessDevice.")]
379 tony 1.1 class CIM_MagnetoOpticalDrive : CIM_MediaAccessDevice {
380 };
381
382
383 // ===================================================================
384 // TapeDrive
385 // ===================================================================
386 [Version ( "2.6.0" ), Description (
387 "Capabilities and managment of a TapeDrive, a subtype of "
388 "MediaAccessDevice.")]
389 class CIM_TapeDrive : CIM_MediaAccessDevice {
390
391 [Description (
392 "EOTWarningZoneSize indicates the size, in bytes, of the "
393 "area designated as 'end of tape'. Access in this area "
394 "generates an 'end of tape' warning."),
395 Units ( "Bytes" )]
396 uint32 EOTWarningZoneSize;
397
398 [Description (
399 "Maximum partition count for the TapeDrive.")]
400 tony 1.1 uint32 MaxPartitionCount;
401
402 [Description (
403 "Padding indicates the number of bytes inserted between "
404 "blocks on a tape Media."),
405 Units ( "Bytes" )]
406 uint32 Padding;
407
408 [Description (
409 "Time in milliseconds to move from the most physically "
410 "distant point on the tape to the beginning."),
411 Units ( "MilliSeconds" )]
412 uint64 MaxRewindTime;
413 };
414
415
416 // ===================================================================
417 // MediaAccessStatInfo
418 // ===================================================================
419 [Version ( "2.6.0" ), Description (
420 "Statistics related to reading and writing at a specific "
421 tony 1.1 "MediaAccessDevice, or for a specific StorageExtent. Although "
422 "the same class is used to represent this data, at the instance "
423 "level the object holds information for the MediaAccessDevice "
424 "(independent of the StorageExtent), OR for the Extent "
425 "(independent of its AccessDevice). Note that this class models "
426 "the same properties as MediaAccessStatData. The latter, "
427 "however, uses the simplified key mechanisms of the "
428 "StatisticalData class.")]
429 class CIM_MediaAccessStatInfo : CIM_DeviceStatisticalInformation {
430
431 [Description (
432 "The number of attempted read operations."),
433 Counter]
434 uint64 ReadOperations;
435
436 [Description (
437 "The number of unrecoverable read operations."),
438 Counter]
439 uint64 UnrecoverableReadOperations;
440
441 [Description (
442 tony 1.1 "The number of attempted write operations."),
443 Counter]
444 uint64 WriteOperations;
445
446 [Description (
447 "The number of unrecoverable write operations."),
448 Counter]
449 uint64 UnrecoverableWriteOperations;
450
451 [Description (
452 "The number of recovered read operations."),
453 Counter]
454 uint64 RecoveredReadOperations;
455
456 [Description (
457 "The number of recovered write operations."),
458 Counter]
459 uint64 RecoveredWriteOperations;
460
461 [Description (
462 "The number of recovered seek operations."),
463 tony 1.1 Counter]
464 uint64 RecoveredSeekOperations;
465
466 [Description (
467 "The number of unrecoverable seek operations."),
468 Counter]
469 uint64 UnrecoverableSeekOperations;
470
471 [Description (
472 "Method to reset the statistical counters. The method takes "
473 "one parameter as input - an integer indicating which "
474 "counter to reset. For this input parameter, 0 indicates "
475 "all, 1-2 and 5 reset the 'read operation'-related counters, "
476 "3-4 and 6 reset the 'write operation'-related counters, and "
477 "7-8 reset the seek-related counters. The method returns 0 "
478 "if successful, 1 if not supported, and any other value if "
479 "an error occurred. A method is specified so that the "
480 "Device's instrumentation can also reset its internal "
481 "processing and counters. \n"
482 "In a subclass, the set of possible return codes should be "
483 "specified in a ValueMap qualifier on the method. The "
484 tony 1.1 "strings to which the ValueMap contents are 'translated' can "
485 "be specified as a Values array qualifier.")]
486 uint32 ResetCounter (
487 [IN, Description (
488 "The counter to reset."),
489 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8" },
490 Values { "All", "Read Operations",
491 "Unrecoverable Read Operations", "Write Operations",
492 "Unrecoverable Write Operations",
493 "Recovered Read Operations", "Recovered Write Operations",
494 "Recovered Seeks", "Unrecoverable Seeks" }]
495 uint16 SelectedCounter);
496 };
497
498
499 // ===================================================================
500 // MediaAccessStatData
501 // ===================================================================
502 [Version ( "2.7.0" ), Description (
503 "Statistics related to reading and writing at a specific "
504 "MediaAccessDevice, or for a specific StorageExtent. The same "
505 tony 1.1 "class is used to represent this data - whether for the "
506 "MediaAccessDevice (independent of the StorageExtent), OR for "
507 "the Extent (independent of its AccessDevice). The element "
508 "whose statistics are described is associated using the "
509 "relationship, ElementStatisticalData. Note that this class "
510 "models the same properties as MediaAccessStatInfo. This class, "
511 "however, uses the simplified key mechanisms of its superclass, "
512 "StatisticalData.")]
513 class CIM_MediaAccessStatData : CIM_StatisticalData {
514
515 [Description (
516 "The number of attempted read operations."),
517 Counter]
518 uint64 ReadOperations;
519
520 [Description (
521 "The number of unrecoverable read operations."),
522 Counter]
523 uint64 UnrecoverableReadOperations;
524
525 [Description (
526 tony 1.1 "The number of attempted write operations."),
527 Counter]
528 uint64 WriteOperations;
529
530 [Description (
531 "The number of unrecoverable write operations."),
532 Counter]
533 uint64 UnrecoverableWriteOperations;
534
535 [Description (
536 "The number of recovered read operations."),
537 Counter]
538 uint64 RecoveredReadOperations;
539
540 [Description (
541 "The number of recovered write operations."),
542 Counter]
543 uint64 RecoveredWriteOperations;
544
545 [Description (
546 "The number of recovered seek operations."),
547 tony 1.1 Counter]
548 uint64 RecoveredSeekOperations;
549
550 [Description (
551 "The number of unrecoverable seek operations."),
552 Counter]
553 uint64 UnrecoverableSeekOperations;
554 };
555
556
557 // ===================================================================
558 // end of file
559 // ===================================================================
|