Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

147 lines
10 KiB

  1. CIMV2 Namespace Usage
  2. This document aligns with Win32 Logo Requirements, and MSI and SMBIOS MOF Additions as of 01/25/99 and defines the proper usage of the classes defined in the CIMV2 namespace. Generally, one of four cases may apply:
  3. 1) CIM classes which can be freely subclassed. The only restriction being that instances must always apply to the local machine.
  4. 2) CIM classes that cannot be subclassed directly. All the instances of the CIM class are required to be instances known to the win32 instrumentation. As a result subclasses may only be added to the provided Win32 subclasses.
  5. 3) CIM classes that can be subclassed even though Win32 classes exist. In this case the set of instances provided by the Win32 classes are not assumed to be complete - that is, the instrumentation supplied cannot detect all relevant instances. It is expected that subclasses of the CIM class will be provided that return instances that are not discovered by the Win32 subclass providers.
  6. 4) CIM classes that cannot be subclassed. These are either classes that are at a level of abstraction that makes subclassing undesirable (such as CIM_ManagedSystemElement) or that are simply not relevant to the local environment (such as CIM_Cluster). Note it is never acceptable in the CIMV2 namespace for third parties to instrument CIM classes directly.
  7. 1) The following classes may be freely subclassed. Subclasses should only be added where the instances introduced are local to the machine.
  8. Classes
  9. * CIM_FRU
  10. * CIM_SupportAccess
  11. * CIM_Configuration
  12. * CIM_MonitorResolution
  13. * CIM_RedundancyGroup and its subclasses
  14. * CIM_ManagementController
  15. * CIM_Statistics and its subclasses
  16. * CIM_StorageError
  17. Associations
  18. * All CIM_Product associations (Exception is the CIM_ProductSoftwareFeatures association which is addressed in the section, "Win32 associations with specific meaning")
  19. * All CIM_FRU and CIM_SupportAccess associations
  20. * All CIM_Configuration associations
  21. * All CIM_Statistics associations
  22. * CIM_Realizes and most associations of the Physical Model (Exception is the CIM_Container association which is addressed in section 3.
  23. * CIM_DeviceSoftware
  24. * CIM_AssociatedSensor and its subclasses
  25. * CIM_BIOSLoadedInNV
  26. * CIM_StorageDefect
  27. * CIM_RedundancyComponent and its subclasses
  28. * CIM_ActsAsSpare
  29. * CIM_CollectionOfSensors
  30. * CIM_DeviceServiceImplementation
  31. * CIM_DeviceSAPImplementation
  32. 2) Win32 subclasses are provided for the following classes. Only direct subclasses of Win32 classes can be added. That is, the CIM classes should not be subclassed directly. All instances must be known to the CIMV2 instrumentation.
  33. Classes
  34. * CIM_UnitaryComputerSystem
  35. * CIM_OperatingSystem
  36. * CIM_FileSystem and its subclasses
  37. * CIM_LogicalFile and its subclasses
  38. * CIM_Process
  39. * CIM_Thread
  40. * CIM_Printer
  41. * CIM_Scanner
  42. * CIM_NetworkAdapter and its subclasses
  43. * CIM_Controller and most of its subclasses (e.g., Video, SCSI, Serial, Parallel, PCI, PCMCIA, USB)
  44. * CIM_POTSModem
  45. * CIM_MediaAccessDevice and its subclasses (e.g., CIM_DisketteDrive, CIM_WORMDrive and CIM_MagnetoOpticalDrive)
  46. * CIM_UserDevice and its subclasses
  47. * CIM_SystemResource and its subclasses
  48. * CIM_Job
  49. * CIM_JobDestination
  50. Associations
  51. * CIM_HostedJobDestination
  52. * CIM_JobDestinationJobs
  53. * CIM_OSProcess
  54. * CIM_ProcessThread
  55. * CIM_FileStorage
  56. * CIM_DirectoryContainsFile
  57. * CIM_OperatingSystemSoftwareFeature
  58. * CIM_HostedFileSystem
  59. * CIM_BootOSFromFS
  60. * CIM_InstalledOS
  61. * CIM_RunningOS
  62. * CIM_ProcessExecutable
  63. * CIM_AllocatedResource
  64. * CIM_ResidesOnExtent
  65. * CIM_ComputerSystemResource
  66. * CIM_Export
  67. * CIM_Mount
  68. 3) The following Win32 subclasses are instrumented to return a specific and limited set of instances. There may be instances relevant to the local machine that are not provided by the Win32 classes and as a result subclasses are permitted of both the Win32 and CIM classes. Direct subclassing of Win32 classes is allowed. Other subclasses of the CIM classes are allowed for instances local to the machine and not already known to the Win32 providers. You must be careful not to return instances that are already returned by the Win32 providers.
  69. Classes
  70. * CIM Battery - Win32 classes represent laptop or UP (COM-port attached) batteries
  71. * CIM_PowerSupply and CIM_UninterruptiblePowerSupply - COM-port attached UPSs are represented
  72. * CIM_StorageExtent and its subclasses - Win32 classes represent logical disks (subclass of CIM_LogicalDisk), partitions (subclass of CIM_DiskPartition) and the logical view of SCSI/RAID-based media (subclass of CIM_VolumeSet)
  73. * CIM_Processor - Win32 classes represent "a device capable of interpreting a sequence of machine instructions on a Win32 system"
  74. * CIM_PhysicalElement and its subclasses - Win32 classes representing data available from SMBIOS (e.g., system slots, connectors and enclosures)
  75. * CIM_Memory and its subclasses - SMBIOS data is available (e.g., system memory arrays and cache)
  76. * CIM_CoolingDevice and its subclasses - Win32 classes represent data available from SMBIOS (e.g., fans and refrigeration elements)
  77. * CIM_Sensor and its subclasses - Win32 classes represent data available from SMBIOS (e.g., temperature and voltage sensors)
  78. * CIM_Product - ComputerSystemProduct and software "products" (installed by the Microsoft Software Installer, MSI) are defined and instantiated
  79. * CIM_Setting - Many subclasses exist containing System Device, User, boot, MSI resource and other information
  80. * CIM_Service, CIM_ServiceAccessPoint and their subclasses - Services represent functionality hosted on the System and OperatingSystem. All OS drivers and Services are instantiated by the CIMV2 instrumentation.
  81. * CIM_SoftwareFeature, CIM_SoftwareElement, CIM_Checks, CIM_Actions and their subclasses represent the MSI (Microsoft Software Installer) view of applications. Other installation technologies and individual applications may choose to add other subclasses at the same level in the schema.
  82. Associations
  83. * CIM_SystemComponent and its subclasses - Many subclasses exist associating devices, users, software and other classes
  84. * CIM_AssociatedBattery
  85. * CIM_AssociatedCooling
  86. * CIM_DeviceConnection - Win32 classes are various types of "ControlledBy" associations
  87. * CIM_BasedOn - Win32 classes reference subclasses of CIM_LogicalDisk based on CIM_DiskPartition or CIM_VolumeSets
  88. * CIM_MediaPresent - Win32 between subclasses of CIM_VolumeSet or CIM_DiskPartition
  89. * CIM_AssociatedMemory - Win32 SMBIOS instrumentation exists for Win32_AssociatedProcessorMemory, relating a Win32_Processor and its cache
  90. * CIM_Container - Win32 instantiates a memory container, with data from SMBIOS
  91. * CIM_ElementSetting - Win32 subclasses exist associating devices and their settings, users with desktops, and many other elements
  92. * CIM_HostedService, CIM_HostedAccessPoint and their subclasses, CIM_ServiceServiceDependency, CIM_ServiceSAPDependency, CIM_SAPSAPDependency, CIM_ServiceAccessBySAP - Win32 classes represent the associations of OS drivers and services
  93. * All associations defined in the Application Model - Win32 classes represent the MSI view of applications
  94. * CIM_ProductSoftwareFeatures - Win32 subclass defines the "product" under which an MSI Software Feature is installed
  95. 4) For the following classes subclassing and direct instantiation is not allowed. These are high level classes or classes that contain instances that are not "local" to the machine.
  96. Classes
  97. * CIM_ManagedSystemElement and CIM_LogicalElement (Subclasses addressed separately)
  98. * CIM_System and CIM_ComputerSystem (Subclasses addressed separately)
  99. * CIM_LogicalDevice (Subclasses addressed separately)
  100. * CIM_VirtualComputerSystem
  101. * CIM_Cluster
  102. * CIM_ClusteringService
  103. Associations
  104. * CIM_ApplicationSystemSoftwareFeature
  105. * CIM_ComponentCS
  106. * CIM_HostedClusterService
  107. * CIM_ClusterServiceAccessBySAP
  108. * CIM_HostingCS
  109. * CIM_ParticipatingCS
  110. * CIM_DeviceAccessedByFile (N/A for Win32 environment)
  111. GENERAL NOTES
  112. Where CIM classes are included in the CimWin32 MOF, these classes reflect the CIM V2.2 Schema, released by the DMTF (Desktop Management Task Force) in September 1998. Several areas where the CimWin32 MOF differs are discussed below:
  113. * Qualifiers exist in CIM as versatile and user-definable meta-data for the Schema. Creating new qualifiers is allowed by the CIM Specification. Several examples of new qualifiers (like the "Dynamic" qualifier) can be found in the CimWin32 MOF.
  114. * Many of the CIM Schema keys (identified using the Key qualifier) are labeled as "propagated" and are meant for object identification in an enterprise environment. These "propagated" keys are typically not needed in the CIMV2 namespace, which reflects the local platform. In these cases, the keys are identified with the CIM_Key qualifier only. If the CimWin32 MOF is exported, the CIM_Key qualifier can be directly replaced with the Key qualifier. The data contained within the CIM_Key properties does not have to be modified.
  115. * Schema-specific properties and methods can be added to CIM classes. This is allowed by the CIM Specification. Microsoft uses this feature throughout the CimWin32 MOF, identifying additions as "Schema ("Win32")".
  116. * CIM classes, with a few exceptions, are marked with the ABSTRACT qualifier throughout the CimWin32 MOF. The "Abstract" qualifier states that there are no direct instances of the class. (In other words, all instances are only instances of subclasses, and not the "Abstract" class itself.) The use of the ABSTRACT qualifier disallows the installation of a Provider (declaring itself the instrumentation for the class). At a CIM class level, a provider would have to be aware of the entire instance-level population, which is very unlikely. In only a few cases does the Win32 Provider instrument CIM classes directly. One example is the instrumentation of CIM_LogicalFile in the CIMV2 namespace.
  117. * The CimWin32 MOF does not consistently include an Override qualifier. This will be corrected in the next release of the MOF. Where property, method or reference names are duplicated in subclasses, these are actually overrides of the parent classes' constructs.
  118. * Where the Write qualifier is not explicitly listed for a property, it is assumed that the qualifier is FALSE. This is different than the CIM Schema definition (default value of TRUE). Changing a qualifier's default value is allowed by the CIM Specification.