1 karl 1.1 // ===================================================================
2 // Title: Storage Devices 2.7
3 // Filename: Device27_StorageDevices.mof
4 // Version: 2.7.0
5 // Release: Preliminary
6 // Date: 07/17/02
7 // ===================================================================
8 // Copyright 2002 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 karl 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 karl 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.7
54 // CR721 - Add DeviceErrorCountData that is part of the new statistics
55 // hierarchy
56 // ==================================================================
57
58 #pragma locale ("en_US")
59
60
61 // ===================================================================
62 // MediaAccessDevice
63 // ===================================================================
64 karl 1.1 [Version ("2.6.0"), Description (
65 "A MediaAccessDevice represents the ability to access one or "
66 "more media and use this media to store and retrieve data.") ]
67 class CIM_MediaAccessDevice : CIM_LogicalDevice {
68
69 [Description (
70 "Capabilities of the MediaAccessDevice. For example, the "
71 "Device may support \"Random Access\", removeable media and "
72 "\"Automatic Cleaning\". In this case, the values 3, 7 and 9 "
73 "would be written to the array. \n"
74 "Several of the enumerated values require some explanation: "
75 "1) Value 11, Supports Dual Sided Media, distinguishes a "
76 "Device that can access both sides of dual sided Media, from "
77 "a Device that reads only a single side and requires the "
78 "Media to be flipped; and, 2) Value 12, Predismount Eject "
79 "Not Required, indicates that Media does not have to be "
80 "explicitly ejected from the Device before being accessed "
81 "by a PickerElement."),
82 ArrayType ("Indexed"),
83 ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
84 "10", "11", "12"},
85 karl 1.1 Values {"Unknown", "Other", "Sequential Access",
86 "Random Access", "Supports Writing", "Encryption",
87 "Compression", "Supports Removeable Media",
88 "Manual Cleaning", "Automatic Cleaning",
89 // 10
90 "SMART Notification", "Supports Dual Sided Media",
91 "Predismount Eject Not Required"},
92 MappingStrings {"MIF.DMTF|Storage Devices|001.9",
93 "MIF.DMTF|Storage Devices|001.11",
94 "MIF.DMTF|Storage Devices|001.12",
95 "MIF.DMTF|Disks|003.7", "MIF.DMTF|Host Disk|001.2",
96 "MIF.DMTF|Host Disk|001.4"},
97 ModelCorrespondence {
98 "CIM_MediaAccessDevice.CapabilityDescriptions"} ]
99 uint16 Capabilities[];
100
101 [Description (
102 "An array of free-form strings providing more detailed "
103 "explanations for any of the AccessDevice features indicated "
104 "in the Capabilities array. Note, each entry of this array "
105 "is related to the entry in the Capabilities array that "
106 karl 1.1 "is located at the same index."),
107 ArrayType ("Indexed"),
108 ModelCorrespondence {"CIM_MediaAccessDevice.Capabilities"} ]
109 string CapabilityDescriptions[];
110
111 [Description (
112 "ErrorMethodology is a free-form string describing "
113 "the type(s) of error detection and correction supported "
114 "by this Device.") ]
115 string ErrorMethodology;
116
117 [Description (
118 "A free form string indicating the algorithm or tool used "
119 "by the device to support compression. "
120 "If it is not possible or not desired to describe the "
121 "compression scheme (perhaps because it is not known), "
122 "recommend using the following words: \"Unknown\" to "
123 "represent that it is not known whether the device supports "
124 "compression capabilities or not, \"Compressed\" to represent "
125 "that the device supports compression capabilities but either "
126 "its compression scheme is not known or not disclosed, and "
127 karl 1.1 "\"Not Compressed\" to represent that the devices does not "
128 "support compression capabilities.") ]
129 string CompressionMethod;
130
131 [Description (
132 "When the MediaAccessDevice supports multiple individual "
133 "Media, this property defines the maximum number which can "
134 "be supported or inserted.") ]
135 uint32 NumberOfMediaSupported;
136
137 [Description (
138 "Maximum size, in KBytes, of media supported by this Device. "
139 "KBytes is interpreted as the number of bytes multiplied by "
140 "1000 (NOT the number of bytes multiplied by 1024)."),
141 MappingStrings {"MIF.DMTF|Sequential Access Devices|001.2",
142 "MIF.DMTF|Host Disk|001.5"} ]
143 uint64 MaxMediaSize;
144
145 [Description ("Default block size, in bytes, for this Device."),
146 Units ("Bytes") ]
147 uint64 DefaultBlockSize;
148 karl 1.1
149 [Description (
150 "Maximum block size, in bytes, for media accessed by this "
151 "Device."),
152 Units ("Bytes") ]
153 uint64 MaxBlockSize;
154
155 [Description (
156 "Minimum block size, in bytes, for media accessed by this "
157 "Device."),
158 Units ("Bytes") ]
159 uint64 MinBlockSize;
160
161 [Description (
162 "Boolean indicating that the MediaAccessDevice needs cleaning. "
163 "Whether manual or automatic cleaning is possible is indicated "
164 "in the Capabilities array property.") ]
165 boolean NeedsCleaning;
166
167 [Description (
168 "True indicates that the media is locked in the Device "
169 karl 1.1 "and can not be ejected. For non-removeable Devices, this "
170 "value should be true.") ]
171 boolean MediaIsLocked;
172
173 [Description (
174 "An enumeration indicating the operational security defined "
175 "for the MediaAccessDevice. For example, information that "
176 "the Device is \"Read Only\" (value=4) or \"Boot Bypass\" "
177 "(value=6) can be described using this property."),
178 ValueMap {"1", "2", "3", "4", "5", "6", "7"},
179 Values {"Other", "Unknown", "None", "Read Only", "Locked Out",
180 "Boot Bypass", "Boot Bypass and Read Only"},
181 MappingStrings {"MIF.DMTF|Disks|003.22"} ]
182 uint16 Security;
183
184 [Description (
185 "The date and time on which the Device was last cleaned.") ]
186 datetime LastCleaned;
187
188 [Description (
189 "Time in milliseconds to move from the first location on "
190 karl 1.1 "the Media to the location that is furthest with respect to "
191 "time. For a DiskDrive, this represents full seek + full "
192 "rotational delay. For TapeDrives, this represents a search "
193 "from the beginning of the tape to the most physically "
194 "distant point. (The end of a tape may be at its most "
195 "physically distant point, but this is not necessarily "
196 "true.)"),
197 Units ("MilliSeconds") ]
198 uint64 MaxAccessTime;
199
200 [Description (
201 "The sustained data transfer rate in KB/sec that the "
202 "Device can read from and write to a Media. This is a "
203 "sustained, raw data rate. Maximum rates or rates "
204 "assuming compression should not be reported in this "
205 "property."),
206 Units ("KiloBytes per Second") ]
207 uint32 UncompressedDataRate;
208
209 [Description (
210 "Time in milliseconds from 'load' to being able to read "
211 karl 1.1 "or write a Media. For example, for DiskDrives, this is "
212 "the interval between a disk not spinning to the disk "
213 "reporting that it is ready for read/write (ie, the disk "
214 "spinning at nominal speeds). For TapeDrives, this is "
215 "the time from a Media being injected to reporting that "
216 "it is ready for an application. This is usually at the "
217 "tape's BOT area."),
218 Units ("MilliSeconds") ]
219 uint64 LoadTime;
220
221 [Description (
222 "Time in milliseconds from being able to read or write a "
223 "Media to its 'unload'. For example, for DiskDrives, "
224 "this is the interval between a disk spinning at nominal "
225 "speeds and a disk not spinning. For TapeDrives, this is "
226 "the time for a Media to go from its BOT to being fully "
227 "ejected and accessible to a PickerElement or human "
228 "operator."),
229 Units ("MilliSeconds") ]
230 uint64 UnloadTime;
231
232 karl 1.1 [Description (
233 "For a MediaAccessDevice that supports removable Media, "
234 "the number of times that Media have been mounted for "
235 "data transfer or to clean the Device. For Devices "
236 "accessing nonremovable Media, such as hard disks, "
237 "this property is not applicable and should be set to 0."),
238 Counter ]
239 uint64 MountCount;
240
241 [Description (
242 "For a MediaAccessDevice that supports removable Media, "
243 "the most recent date and time that Media was mounted "
244 "on the Device. For Devices accessing nonremovable Media, "
245 "such as hard disks, this property has no meaning and is "
246 "not applicable.") ]
247 datetime TimeOfLastMount;
248
249 [Description (
250 "For a MediaAccessDevice that supports removable Media, "
251 "the total time (in seconds) that Media have been mounted "
252 "for data transfer or to clean the Device. For Devices "
253 karl 1.1 "accessing nonremovable Media, such as hard disks, "
254 "this property is not applicable and should be set to 0.") ]
255 uint64 TotalMountTime;
256
257 [Description (
258 "Defines 'Units' relative to its use in the property, "
259 "MaxUnitsBeforeCleaning. This describes the criteria used "
260 "to determine when the MediaAccessDevice should be cleaned."),
261 ModelCorrespondence {
262 "CIM_MediaAccessDevice.MaxUnitsBeforeCleaning",
263 "CIM_MediaAccessDevice.UnitsUsed"} ]
264 string UnitsDescription;
265
266 [Description (
267 "An unsigned integer indicating the maximum 'units' "
268 "that can be used, with respect to the AccessDevice, "
269 "before the Device should be cleaned. The property, "
270 "UnitsDescription, defines how 'units' should be "
271 "interpreted."),
272 ModelCorrespondence {
273 "CIM_MediaAccessDevice.UnitsDescription"} ]
274 karl 1.1 uint64 MaxUnitsBeforeCleaning;
275
276 [Description (
277 "An unsigned integer indicating the currently used "
278 "'units' of the AccessDevice, helpful to describe "
279 "when the Device may require cleaning. The property, "
280 "UnitsDescription, defines how 'units' should be "
281 "interpreted."),
282 Gauge,
283 ModelCorrespondence {
284 "CIM_MediaAccessDevice.UnitsDescription",
285 "CIM_MediaAccessDevice.MaxUnitsBeforeCleaning"} ]
286 uint64 UnitsUsed;
287
288 [Description (
289 "Method to lock and unlock the media in a removeable Access"
290 "Device. The method takes one parameter as input - a boolean "
291 "indicating whether to lock or unlock. TRUE indicates that "
292 "the media should be locked in the Device, FALSE indicates "
293 "that the media should be unlocked. The method returns 0 if "
294 "successful, 1 if not supported, and any other value if an "
295 karl 1.1 "error occurred. The set of possible return codes should be "
296 "specified in a ValueMap qualifier on the method. The strings "
297 "to which the ValueMap contents are 'translated' should be "
298 "specified as a Values array 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 karl 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 karl 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",
351 "39", "40", "41", "42"},
352 Values {"Unknown", "Other", "CD-ROM", "CD-ROM/XA",
353 "CD-I", "CD Recordable", "DVD", "DVD-RW+",
354 "DVD-RAM", "DVD-ROM", "DVD-Video", "Divx", "CD-RW",
355 "CD-DA", "CD+", "DVD Recordable", "DVD-RW",
356 "DVD-Audio", "DVD-5", "DVD-9", "DVD-10", "DVD-18"},
357 ModelCorrespondence {"CIM_PhysicalMedia.MediaType"} ]
358 karl 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 "
377 "subtype of MediaAccessDevice.") ]
378 class CIM_MagnetoOpticalDrive : CIM_MediaAccessDevice {
379 karl 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 karl 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 distant "
409 "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 karl 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 latter, "
426 "however, uses the simplified key mechanisms of the "
427 "StatisticalData class.") ]
428 class CIM_MediaAccessStatInfo : CIM_DeviceStatisticalInformation {
429
430 [Counter, Description ("The number of attempted read operations.") ]
431 uint64 ReadOperations;
432
433 [Counter,
434 Description ("The number of unrecoverable read operations.") ]
435 uint64 UnrecoverableReadOperations;
436
437 [Counter,
438 Description ("The number of attempted write operations.") ]
439 uint64 WriteOperations;
440
441 [Counter,
442 karl 1.1 Description ("The number of unrecoverable write operations.") ]
443 uint64 UnrecoverableWriteOperations;
444
445 [Counter, Description ("The number of recovered read operations.") ]
446 uint64 RecoveredReadOperations;
447
448 [Counter, Description ("The number of recovered write operations.") ]
449 uint64 RecoveredWriteOperations;
450
451 [Counter, Description ("The number of recovered seek operations.") ]
452 uint64 RecoveredSeekOperations;
453
454 [Counter,
455 Description ("The number of unrecoverable seek operations.") ]
456 uint64 UnrecoverableSeekOperations;
457
458 [Description (
459 "Method to reset the statistical counters. The method takes "
460 "one parameter as input - an integer indicating which counter "
461 "to reset. For this input parameter, 0 indicates all, 1-2 and "
462 "5 reset the 'read operation'-related counters, 3-4 and 6 "
463 karl 1.1 "reset the 'write operation'-related counters, and 7-8 reset "
464 "the seek-related counters. The method returns 0 if "
465 "successful, 1 if not supported, and any other value if an "
466 "error occurred. A method is specified so that the Device's "
467 "instrumentation can also reset its internal processing and "
468 "counters. \n"
469 "In a subclass, the set of possible return codes should be "
470 "specified in a ValueMap qualifier on the method. The strings "
471 "to which the ValueMap contents are 'translated' can be "
472 "specified as a Values array qualifier.") ]
473 uint32 ResetCounter (
474 [IN,
475 ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8"},
476 Values {"All", "Read Operations",
477 "Unrecoverable Read Operations", "Write Operations",
478 "Unrecoverable Write Operations",
479 "Recovered Read Operations",
480 "Recovered Write Operations", "Recovered Seeks",
481 "Unrecoverable Seeks"} ]
482 uint16 SelectedCounter);
483 };
484 karl 1.1
485
486 // ===================================================================
487 // MediaAccessStatData
488 // ===================================================================
489 [Experimental, Version ("2.7.0"), Description (
490 "Statistics related to reading and writing at a specific "
491 "MediaAccessDevice, or for a specific StorageExtent. The same "
492 "class is used to represent this data - whether for the "
493 "MediaAccessDevice (independent of the StorageExtent), OR for "
494 "the Extent (independent of its AccessDevice). The element "
495 "whose statistics are described is associated using the "
496 "relationship, ElementStatisticalData. Note that this class "
497 "models the same properties as MediaAccessStatInfo. This class, "
498 "however, uses the simplified key mechanisms of its "
499 "superclass, StatisticalData.") ]
500 class CIM_MediaAccessStatData : CIM_StatisticalData {
501
502 [Counter, Description ("The number of attempted read operations.") ]
503 uint64 ReadOperations;
504
505 karl 1.1 [Counter,
506 Description ("The number of unrecoverable read operations.") ]
507 uint64 UnrecoverableReadOperations;
508
509 [Counter, Description ("The number of attempted write operations.") ]
510 uint64 WriteOperations;
511
512 [Counter,
513 Description ("The number of unrecoverable write operations.") ]
514 uint64 UnrecoverableWriteOperations;
515
516 [Counter, Description ("The number of recovered read operations.") ]
517 uint64 RecoveredReadOperations;
518
519 [Counter, Description ("The number of recovered write operations.") ]
520 uint64 RecoveredWriteOperations;
521
522 [Counter, Description ("The number of recovered seek operations.") ]
523 uint64 RecoveredSeekOperations;
524
525 [Counter,
526 karl 1.1 Description ("The number of unrecoverable seek operations.") ]
527 uint64 UnrecoverableSeekOperations;
528 };
529
530
531 // ===================================================================
532 // end of file
533 // ===================================================================
|