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