==================================================================================== MANAGEMENT INFRASTRUCTURE API SAMPLE ==================================================================================== This document explains the samples of Windows Management Infrastructure API, which includes 4 sections: 1. OVERVIEW - Gives overview of Windows Management Infrastructure API. 2. PREPARATION - Instructions of preparations to build samples. 3. SAMPLE FILES STRUCTURE - Describes the samples folder structure. 4. TOOLS - Tools used to build samples. ==================================================================================== 1. OVERVIEW ==================================================================================== These samples demonstrate how to use the Windows Management Infrastructure API to expose data through the new provider model, and consume the data through the new client APIs. Windows 8 / Windows Server 2012 introduce a new set of management APIs, called the Windows Management Infrastructure (MI) APIs. This includes provider C APIs, client C APIs, and client .Net APIs. These new APIs are more tightly aligned with the CIM standard that is the basis for WMI, and provide support for the standard WS-Man protocol via WinRM. These new APIs will interoperate directly with existing Windows Management Instrumentation (WMI) clients and providers. An application written using the new client APIs work with pre-existing WMI providers as well as providers based off the new MI C APIs. Likewise, providers written using the new APIs can be called from client applications written using the older version of the WMI .Net and C APIs. In addition to the APIs, Windows 8 and Windows Server 2012 also introduce a new provider model, with code generation and provider registration tools to support them. A C based provider code skeleton can be generated from user-defined schema in the form of a MOF file, using the tool called Convert-MofToProvider.exe, which ships in the Windows 8 SDK. Register-CimProvider.exe is a new provider registration tool, and ships with Windows 8 and Windows Server 2012, and is used in place of the older MOFCOMP.EXE. These tools work only for providers based on the new APIs. A CIM-Based Cmdlet model was also introduced to support creation of PowerShell cmdlets, which expose the data and the operations of any provider to PowerShell users. It introduces a new way to create cmdlets by using an XML file to describe the cmdlet functionality, and then importing the new module into PowerShell. This new way of writing cmdlets works with both new providers written using the MI APIs, and providers written using the older WMI APIs. A set of generic cmdlets was introduced in Windows 8/ Windows Server 2012, called CIM Cmdlets. These cmdlets are based on the MI client .Net API, and help consume the data and operations from any new or existing providers. ==================================================================================== 2. PREPARATION ==================================================================================== The following steps are mandatory to build these samples. All environment variables created using the steps below will be used by samples. 1) Install the Windows 8 SDK and create environment variables to reference it. Create an environment variable called SDKDIR to point to installation folder. For example: SDKDIR=C:\Program Files (x86)\Windows Kits\8.0 Create environment variables to point to the MI.net API installation folder SDKMIDOTNETDIR=C:\Program Files (x86)\Reference Assemblies\Microsoft\WMI\v1.0 Create additional environment variables as follows, SDKBINDIR=%SDKDIR%\bin\x64 NOTE: The above assumes target machine's processor is amd64. If the target machine is x86, please use the following instead: SDKBINDIR=%SDKDIR%\bin\x86 2) Install Windows 8 SDK samples. Create environment variables to point to installation folder. SDKSAMPLEDIR=%SDKDIR%\Samples\Desktop MISAMPLEDIR=%SDKSAMPLEDIR%\MIAPI 3) Download the CIM schema 2.26 from DMTF website: http://dmtf.org/sites/default/files/cim/cim_schema_v2260/cim_schema_2.26.0Final-MOFs.zip, and unzip the downloaded schema to a local folder. Create an environment variable point to the schema unzip location. For example, CIM2260DIR=c:\cim_schema_2.26.0 4) Install Visual Studio 2012. ==================================================================================== 3. SAMPLE FILES STRUCTURE ==================================================================================== ReadMe.txt Gives an introduction to the MI sample MSFT_Qualifiers.mof Defines 2 qualifiers referenced by sample.mof Sample.mof Defines the schema of the MI sample Misample.sln The Visual Studio solution file that contains all projects of MI sample Process\ This folder contains source code demonstrating an end to end use of the MI API basic features. ReadMe.txt Instructions for the process sample CIM-BasedCmdlet\ This folder is described in the Readme.Txt in the Process folder CIMCmdlet\ This folder is described in the Readme.Txt in the Process folder ManagedClient\ This folder is described in the Readme.Txt in the Process folder NativeClient\ This folder is described in the Readme.Txt in the Process folder Provider\ This folder is described in the Readme.Txt in the Process folder Service\ This directory contains source code of demonstrating an end to end scenario using MI API advanced features, such as, PS semantics and Error APIs. ReadMe.txt Instructions for the service sample CIM-BasedCmdlet\ This folder is described in the Readme.Txt in the Service folder CIMCmdlet\ This folder is described in the Readme.Txt in the Service folder ManagedClient\ This folder is described in the Readme.Txt in the Service folder NativeClient\ This folder is described in the Readme.Txt in the Service folder Provider\ This folder is described in the Readme.Txt in the Service folder Indication\ This directory contains source code of demostrating end to end scenario of CIM indication, which is equivalent to WMI event. ReadMe.txt Instructions for the indication sample CIMCmdlet\ This folder is described in the Readme.Txt in the Indication folder ManagedClient\ This folder is described in the Readme.Txt in the Indication folder NativeClient\ This folder is described in the Readme.Txt in the Indication folder Provider\ This folder is described in the Readme.Txt in the Indication folder DecoupledHost\ This directory contains source code of demonstrating how to write a decoupled host application using MIAPI. ReadMe.txt Instructions for hosting a decoupled provider using MI API ==================================================================================== 4. TOOLS ==================================================================================== Convert-MofToProvider.EXE This tool will be installed as part of Windows 8 SDK, under %SDKBINDIR%. It is used to generate provider code files in C language from schema mof. Please see Convert-MofToProvider.EXE -help for the detail usage. Register-CimProvider.EXE This tool will be installed as part of Windows 8, under %WINDIR%\system32. Used to register cim provider into test box. Please see Register-CimProvider.EXE -help for the detail usage. Visual Studio 2012 Used to build the sample projects.