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

451 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="DEvtProv_files/filelist.xml">
<title>WMI SDK Sample - Decoupled Event 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:18:00Z</o:LastSaved>
<o:Pages>1</o:Pages>
<o:Words>405</o:Words>
<o:Characters>2309</o:Characters>
<o:Company>Microsoft</o:Company>
<o:Lines>19</o:Lines>
<o:Paragraphs>5</o:Paragraphs>
<o:CharactersWithSpaces>2709</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&nbsp;Event 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&nbsp;event provider sample code creates an&nbsp;event provider for
WMI.<span style='mso-spacerun:yes'><EFBFBD> </span>An event provider allows event
instances to be forwarded based on some change in state of a dynamic data
source. The event provider is called when a client request requires information
relevant to that particular provider. The event 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 event class 'SampleEvent ', that forwards a simple event
instance. </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 event Class and
provider<o:p></o:p></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 can run the executable sdksample.exe in combination
with the event consumer sample and here a beep as each event is received by the
consumer.<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>