Best Practices for MI Provider and Client Development

This topic explains some of the best practices for developing Windows Management Infrastructure (MI) providers and clients.

CIM Classes and Namespaces

  • Interop namespaceβ€”It is strongly recommended that you not update or delete CIM classes in the root/interop namespace unless Microsoft updates them.

Providers

  • Implementing a Custom OperationOptionβ€” It is recommended that you not use UINT16 or UINT32 as a data type for a custom Operation Option. While these data types are supported, they are converted to SINT32 on the provider. Therefore, you should use the SINT32 data type instead.

  • Localizing MOF Filesβ€” When localizing providers for PowerShell, it is recommended that you do not localize elements that users will use on which to base PowerShell script decisions. However, the Convert-MofToProvider tool always sets the value/valuemap to Translatable, which implies that all elements are localized. To avoid this, you can do one of two things:

    • Choose not to localize the MOF. If you do not specify the localization flag, Convert-MofToProvider will not generate the references.
    • Alternately, you can localize the MOF, and then remove the Translatable qualifier from the generated schema. Note that you must also remove the reference ID.