2025-11-28 00:35:46 +09:00

449 lines
17 KiB
HTML
Raw Blame History

<!- Copyright (c) Microsoft Corporation, All Rights Reserved ->
<!doctype html public "-//W3C//DTD HTML 4.0 Draft//EN">
<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 10">
<meta name=Originator content="Microsoft Word 10">
<link rel=File-List href="DInstProv_files/filelist.xml">
<title>WMI SDK Sample - Decoupled Instance Provider</title>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Author>Steve Menzies</o:Author>
<o:Template>Normal</o:Template>
<o:LastAuthor>Zina Pozen</o:LastAuthor>
<o:Revision>9</o:Revision>
<o:TotalTime>350</o:TotalTime>
<o:Created>1999-01-25T23:59:00Z</o:Created>
<o:LastSaved>2002-05-03T21:13:00Z</o:LastSaved>
<o:Pages>1</o:Pages>
<o:Words>405</o:Words>
<o:Characters>2314</o:Characters>
<o:Company>Microsoft</o:Company>
<o:Lines>19</o:Lines>
<o:Paragraphs>5</o:Paragraphs>
<o:CharactersWithSpaces>2714</o:CharactersWithSpaces>
<o:Version>10.3501</o:Version>
</o:DocumentProperties>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:"MS Mincho";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-alt:"MS Mincho";
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;
mso-font-alt:"?? ??";
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:1627421319 -2147483648 8 0 66047 0;}
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:536871559 0 0 0 415 0;}
@font-face
{font-family:"\@MS Mincho";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
color:black;}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{color:blue;
text-decoration:underline;
text-underline:single;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Courier New";
mso-fareast-font-family:"Times New Roman";}
p
{font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;
mso-header-margin:.5in;
mso-footer-margin:.5in;
mso-paper-source:0;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:426930674;
mso-list-type:hybrid;
mso-list-template-ids:1414049038 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
{mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level2
{mso-level-tab-stop:1.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level3
{mso-level-tab-stop:1.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level4
{mso-level-tab-stop:2.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level5
{mso-level-tab-stop:2.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level6
{mso-level-tab-stop:3.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level7
{mso-level-tab-stop:3.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level8
{mso-level-tab-stop:4.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level9
{mso-level-tab-stop:4.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1
{mso-list-id:837699372;
mso-list-type:hybrid;
mso-list-template-ids:1177857162 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
{mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level2
{mso-level-tab-stop:1.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level3
{mso-level-tab-stop:1.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level4
{mso-level-tab-stop:2.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level5
{mso-level-tab-stop:2.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level6
{mso-level-tab-stop:3.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level7
{mso-level-tab-stop:3.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level8
{mso-level-tab-stop:4.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level9
{mso-level-tab-stop:4.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2
{mso-list-id:994183607;
mso-list-type:hybrid;
mso-list-template-ids:-208100182 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l2:level1
{mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Times New Roman";}
@list l2:level2
{mso-level-tab-stop:1.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2:level3
{mso-level-tab-stop:1.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2:level4
{mso-level-tab-stop:2.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2:level5
{mso-level-tab-stop:2.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2:level6
{mso-level-tab-stop:3.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2:level7
{mso-level-tab-stop:3.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2:level8
{mso-level-tab-stop:4.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2:level9
{mso-level-tab-stop:4.5in;
mso-level-number-position:left;
text-indent:-.25in;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
-->
</style>
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]-->
<meta name=MS-HAID content=VJsamples>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="2050"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1"/>
</o:shapelayout></xml><![endif]-->
</head>
<body bgcolor=white lang=EN-US link=blue vlink=blue style='tab-interval:.5in'>
<div class=Section1>
<table class=MsoNormalTable border=0 cellpadding=0 width="100%"
style='width:100.0%;mso-cellspacing:1.5pt;mso-padding-alt:0in 0in 0in 0in'>
<tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes'>
<td width=160 style='width:120.0pt;background:#330099;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Verdana;
color:white'>&nbsp;<nobr><b>Windows Management Instrumentation SDK Sample</b></span>
<o:p></o:p></p>
</td>
</tr>
</table>
<p class=MsoPlainText><br>
<strong><span style='font-size:13.5pt;font-family:Verdana;mso-bidi-font-family:
"Courier New"'>Decoupled Instance Provider</span></strong><br style='mso-special-character:
line-break'>
<![if !supportLineBreakNewLine]><br style='mso-special-character:line-break'>
<![endif]><span style='font-family:Verdana'><o:p></o:p></span></p>
<p class=MsoPlainText><span style='font-family:Verdana'>The Decoupled instance
provider sample code creates an instance provider for WMI.<span
style='mso-spacerun:yes'><EFBFBD> </span>An instance provider allows instances to be
retrieved from a dynamic data source. The instance provider is called when a
client request requires information relevant to that particular provider. The
instance provider is a decoupled provider. A decoupled provider 'decouples' the
lifetime of the hosting process from the liftetime of the wmi service, this is
distinct from existing 'coupled' providers that are launched by the WMI service
through the com activation mechanism. Typically an application or server
process is launched and services requests relating to a particular application
domain, e.g. database server, mail server, etc. A decoupled provider registers
it's ability to handle provider requests, associated with the application
domain, during the startup procedure for the application or service; whilst the
application or service is not running or registered WMI will not attempt to
satisfy client requests associated with the provider. </span></p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText><span style='font-family:Verdana'>The sample provider
supports a single class 'Win32_ProcessEx', that returns static instances that
were captured from the existing system class 'Win32_Process'. </span></p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText><span style='font-size:12.0pt;mso-bidi-font-size:10.0pt;
font-family:Verdana'>Building the Provider EXE</span></p>
<p class=MsoPlainText>&nbsp;</p>
<p class=MsoPlainText><span style='font-family:Verdana'>The&nbsp;EXE can be
built using Microsoft
Visual C++.<span style='mso-spacerun:yes'><EFBFBD> </span><o:p></o:p></span></p>
<p class=MsoPlainText><span style='font-family:Verdana'>&nbsp;<o:p></o:p></span></p>
<p class=MsoPlainText style='margin-left:.5in;text-indent:-.25in;mso-list:l1 level1 lfo2;
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Verdana;
mso-fareast-font-family:Verdana;mso-bidi-font-family:Verdana'><span
style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-family:Verdana'>Select File +
Open Workspace<o:p></o:p></span></p>
<p class=MsoPlainText style='margin-left:.5in;text-indent:-.25in;mso-list:l1 level1 lfo2;
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Verdana;
mso-fareast-font-family:Verdana;mso-bidi-font-family:Verdana'><span
style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-family:Verdana'>Select the
SdkSample.DSP file<o:p></o:p></span></p>
<p class=MsoPlainText style='tab-stops:list .5in'>&nbsp;</p>
<p class=MsoPlainText style='tab-stops:list .5in'>&nbsp;</p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-size:12.0pt;
mso-bidi-font-size:10.0pt;font-family:Verdana'>Registering the Class and
provider</span></p>
<p class=MsoPlainText style='tab-stops:list .5in'>&nbsp;</p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana'><o:p>&nbsp;</o:p></span></p>
<p class=MsoNormal><span style='font-family:Verdana;color:windowtext'>You must
also compile the MOF in order to make the WMI CIMOM aware of the class.<span
style='mso-spacerun:yes'><EFBFBD> </span>From the command line in the sample installation
directory, type the following:</span><span style='color:windowtext'> </span><span
style='font-family:Verdana;color:windowtext'><o:p></o:p></span></p>
<blockquote style='margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'>
<blockquote style='margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'>
<p class=MsoPlainText style='tab-stops:list .5in'><b><span style='font-family:
Verdana'>MOFCOMP ProvReg.MOF</span></b><span style='font-family:Verdana'>&nbsp;<o:p></o:p></span></p>
</blockquote>
</blockquote>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana'>At this point, you should be able to exercise the provider using WMI
tools such as WbemDump, CIM Studio or your own WMI application.<o:p></o:p></span></p>
<p class=MsoPlainText style='tab-stops:list .5in'>&nbsp;</p>
<p class=MsoNormal style='tab-stops:list .5in'><strong><span style='font-family:
Verdana;font-weight:normal'>General Notes<o:p></o:p></span></strong></p>
<p class=MsoNormal style='tab-stops:list .5in'><strong><span style='font-family:
Verdana;font-weight:normal'>&nbsp;<o:p></o:p></span></strong></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana;mso-fareast-font-family:"MS Mincho";mso-bidi-font-family:"Times New Roman"'>Things
to remember when you're building your own WMI provider:</span><span
style='mso-fareast-font-family:"MS Mincho";mso-bidi-font-family:"Times New Roman"'><o:p></o:p></span></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana;mso-fareast-font-family:"MS Mincho";mso-bidi-font-family:"Times New Roman"'>&nbsp;<o:p></o:p></span></p>
<p class=MsoPlainText style='margin-left:.25in;text-indent:-.25in;mso-list:
l2 level1 lfo6;tab-stops:list .25in .5in'><![if !supportLists]><span
style='font-family:"Times New Roman"'><span style='mso-list:Ignore'>1.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-family:Verdana;mso-fareast-font-family:
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>WMI interfaces are defined
in wbemcli.h and wbemprov.h found in the wmi\include directory.<span
style='mso-spacerun:yes'><EFBFBD> </span>You may #include both these files by
including just wbemidl.h located in the same directory.<o:p></o:p></span></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana;mso-fareast-font-family:"MS Mincho";mso-bidi-font-family:"Times New Roman"'>&nbsp;<o:p></o:p></span></p>
<p class=MsoPlainText style='margin-left:.25in;text-indent:-.25in;mso-list:
l2 level1 lfo6;tab-stops:list .25in .5in'><![if !supportLists]><span
style='font-family:"Times New Roman"'><span style='mso-list:Ignore'>2.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-family:Verdana;mso-fareast-font-family:
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>WMI interface CLSIDs are defined
in wbemuuid.lib. If you get unresolved externals in interfaces and CLSIDs, this
is what is missing. <o:p></o:p></span></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana;mso-fareast-font-family:"MS Mincho";mso-bidi-font-family:"Times New Roman"'>&nbsp;<o:p></o:p></span></p>
<p class=MsoPlainText style='margin-left:.25in;text-indent:-.25in;mso-list:
l2 level1 lfo6;tab-stops:list .25in .5in'><![if !supportLists]><span
style='font-family:"Times New Roman"'><span style='mso-list:Ignore'>3.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-family:Verdana;mso-fareast-font-family:
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>You'll need to link with
oleaut32.lib and ole32.lib to get the needed COM support.<o:p></o:p></span></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana;mso-fareast-font-family:"MS Mincho";mso-bidi-font-family:"Times New Roman"'>&nbsp;<o:p></o:p></span></p>
<p class=MsoPlainText style='margin-left:.25in;text-indent:-.25in;mso-list:
l2 level1 lfo6;tab-stops:list .25in .5in'><![if !supportLists]><span
style='font-family:"Times New Roman"'><span style='mso-list:Ignore'>4.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-family:Verdana;mso-fareast-font-family:
"MS Mincho";mso-bidi-font-family:"Times New Roman"'>In the Link|Output
settings, specify 'wWinMainCRTStartup' as the entry point. This is per the
Unicode programming instructions.<o:p></o:p></span></p>
<p class=MsoPlainText style='tab-stops:list .5in'><span style='font-family:
Verdana;mso-fareast-font-family:"MS Mincho";mso-bidi-font-family:"Times New Roman"'>&nbsp;<o:p></o:p></span></p>
<p class=MsoPlainText style='margin-left:.25in;text-indent:-.25in;mso-list:
l2 level1 lfo6;tab-stops:list .25in .5in'><![if !supportLists]><span
style='font-family:"Times New Roman"'><span style='mso-list:Ignore'>5.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-family:Verdana;mso-fareast-font-family:
"MS Mincho"'>If you're using the makefiles, don't forget to set the Visual C++
environment variables. This is done by running VCVARS32.BAT.<o:p></o:p></span></p>
<p class=MsoNormal style='tab-stops:list .5in'><br style='mso-special-character:
line-break'>
<![if !supportLineBreakNewLine]><br style='mso-special-character:line-break'>
<![endif]></p>
</div>
</body>
</html>