// Copyright (c) 2005 DMTF.  All rights reserved.
   [Version ( "2.6.0" ), 
    UMLPackagePath ( "CIM::Device::StorageDevices" ), 
    Description ( 
       "Statistics related to reading and writing at a specific "
       "MediaAccessDevice, or for a specific StorageExtent. Although "
       "the same class is used to represent this data, at the instance "
       "level the object holds information for the MediaAccessDevice "
       "(independent of the StorageExtent), OR for the Extent "
       "(independent of its AccessDevice). Note that this class models "
       "the same properties as MediaAccessStatData. The latter, "
       "however, uses the simplified key mechanisms of the "
       "StatisticalData class." )]
class CIM_MediaAccessStatInfo : CIM_DeviceStatisticalInformation {

      [Description ( "The number of attempted read operations." ), 
       Counter]
   uint64 ReadOperations;

      [Description ( "The number of unrecoverable read operations." ), 
       Counter]
   uint64 UnrecoverableReadOperations;

      [Description ( "The number of attempted write operations." ), 
       Counter]
   uint64 WriteOperations;

      [Description ( "The number of unrecoverable write operations." ), 
       Counter]
   uint64 UnrecoverableWriteOperations;

      [Description ( "The number of recovered read operations." ), 
       Counter]
   uint64 RecoveredReadOperations;

      [Description ( "The number of recovered write operations." ), 
       Counter]
   uint64 RecoveredWriteOperations;

      [Description ( "The number of recovered seek operations." ), 
       Counter]
   uint64 RecoveredSeekOperations;

      [Description ( "The number of unrecoverable seek operations." ), 
       Counter]
   uint64 UnrecoverableSeekOperations;


      [Description ( 
          "Method to reset the statistical counters. The method "
          "takes one parameter as input - an integer indicating "
          "which counter to reset. For this input parameter, 0 "
          "indicates all, 1-2 and 5 reset the \'read "
          "operation\'-related counters, 3-4 and 6 reset the \'write "
          "operation\'-related counters, and 7-8 reset the "
          "seek-related counters. The method returns 0 if "
          "successful, 1 if not supported, and any other value if "
          "an error occurred. A method is specified so that the "
          "Device\'s instrumentation can also reset its internal "
          "processing and counters. \n"
          "In a subclass, the set of possible return codes should "
          "be specified in a ValueMap qualifier on the method. The "
          "strings to which the ValueMap contents are \'translated\' "
          "can be specified as a Values array qualifier." )]
   uint32 ResetCounter(
         [IN, Description ( "The counter to reset." ), 
          ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8" }, 
          Values { "All", "Read Operations", 
             "Unrecoverable Read Operations", "Write Operations", 
             "Unrecoverable Write Operations", 
             "Recovered Read Operations", 
             "Recovered Write Operations", "Recovered Seeks", 
             "Unrecoverable Seeks" }]
      uint16 SelectedCounter);

};
