WMI Provider Extensions

Windows Management Instrumentation (WMI) is a standardized infrastructure that enables the management of computers running on Windows operating systems. It provides a consistent way to register and discover which system components and applications can be managed. WMI also provides guidelines about how to implement new management functionality and how to use that functionality.

The WMI repository is the database that stores the information about what can be managed by using WMI. If you are writing client code to access functionality provided within the WMI framework, you query the WMI repository to discover what functionality is available and how to use it. When you augment WMI by providing additional functionality, you register your new functionality in the WMI repository.

Without WMI Provider Extensions, augmenting the functionality provided by WMI is challenging. It involves two primary tasks: describing and registering the new functionality and implementing it.

You describe the functionality with class declarations. They are authored in text files and use the Managed Object Format (MOF) language. When they are complete, you use a command line tool called Mofcomp.exe to store them in a binary format in the WMI repository. You must then create a dynamic-link library (DLL) or a program (EXE) using a COM capable language like C++ that implements the functionality. Even the simplest WMI providers can be complicated to create.

WMI Provider Extensions make it easier to create WMI providers. Using the extensions primarily involves adding attributes at the assembly, class, property, and method level to describe what and how you want functionality in your application or library exposed within the WMI framework.

The WMI Provider Extensions framework uses the information you provide by applying attributes to automatically generate and register MOF-based descriptions of your functionality in the WMI repository. This saves you time because you do not have to run Mofcomp.exe. It also provides a natural way for you to expose functionality you implemented within WMI.

In This Section


  • System.Management Namespace
    Provides reference documentation for the System.Management namespace, which contains classes used for accessing and manipulating WMI management information.
  • System.Management.Instrumentation Namespace
    Provides reference documentation for the System.Management.Instrumentation namespace, which contains classes used for creating data and event providers.

See Also



Other Resources


Send comments about this topic to Microsoft.

Copyright © 2007 by Microsoft Corporation. All rights reserved.