MI_Application_InitializeV1 function (mi.h)

Initializes an application so that it can make Management Infrastructure (MI) client API calls.


MI_Result MI_MAIN_CALL MI_Application_InitializeV1(
                  MI_Uint32      flags,
  [in, optional]  const MI_Char  *applicationID,
  [out, optional] MI_Instance    **extendedError,
  [out]           MI_Application *application



Must be 0.

[in, optional] applicationID

An optional string (usually GUID in string format) to represent a client application. This string may be used for application specific configuration and application specific logging.

[out, optional] extendedError

Optional parameter giving more error information if the operation failed. If an instance is returned, MI_Instance_Delete must be called to free it when it is no longer needed.

[out] application

A pointer to an uninitialized MI_Application handle is passed in and a populated handle is returned. The initialized handle must be passed to MI_Application_Close before the application shuts down. If an application passes this handle, pass it by value rather than as a pointer.

Return value

This function returns MI_Result MI_MAIN_CALL.


This API needs to be called only once per application; although, it can be called multiple times safely. Calling this API multiple times will result in a small amount of extra memory usage. When called, the application passes in an MI_Application pointer to be initialized. This pointer must be closed by calling MI_Application_Close. Not doing so will cause memory leaks and potential crashes during shutdown.

MI.h defines MI_Application_Initialize as MI_Application_InitializeV1 with this line:

#define MI_Application_Initialize MI_Application_InitializeV1


Minimum supported client Windows 8
Minimum supported server Windows Server 2012
Target Platform Windows
Header mi.h
Library Mi.lib
DLL Mi.dll
Redistributable Windows Management Framework 3.0 on Windows Server 2008 R2 with SP1, Windows 7 with SP1, and Windows Server 2008 with SP2