diff options
| author | Barry Golden <[email protected]> | 2015-08-05 18:05:49 -0700 |
|---|---|---|
| committer | Barry Golden <[email protected]> | 2015-08-05 18:05:49 -0700 |
| commit | 36bf4df42a182a6b6d3e707099f985fe8a644001 (patch) | |
| tree | db99a24955a528a7b822df98aa6dcdcbce70a9bd /wmi | |
| parent | c7e42e0b72ed24fb3d9bb1da085ea67a68e99554 (diff) | |
Remove obsolete readme.htm
Diffstat (limited to 'wmi')
| -rw-r--r-- | wmi/wmiacpi/readme.htm | 228 | ||||
| -rw-r--r-- | wmi/wmiacpi/wmi-acpi.htm | 1804 |
2 files changed, 0 insertions, 2032 deletions
diff --git a/wmi/wmiacpi/readme.htm b/wmi/wmiacpi/readme.htm deleted file mode 100644 index 15df59fc..00000000 --- a/wmi/wmiacpi/readme.htm +++ /dev/null @@ -1,228 +0,0 @@ -<html 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-1252"> -<meta name=ProgId content=Word.Document> -<meta name=Generator content="Microsoft Word 9"> -<meta name=Originator content="Microsoft Word 9"> -<link rel=File-List href="./readme_files/filelist.xml"> -<title>WMI ACPI Mapper</title> -<!--[if gte mso 9]><xml> - <o:DocumentProperties> - <o:LastAuthor>Alan Warwick</o:LastAuthor> - <o:Revision>3</o:Revision> - <o:TotalTime>1</o:TotalTime> - <o:Created>2001-02-09T22:24:00Z</o:Created> - <o:LastSaved>2001-02-09T22:26:00Z</o:LastSaved> - <o:Pages>1</o:Pages> - <o:Words>324</o:Words> - <o:Characters>1852</o:Characters> - <o:Company>Microsoft Internal</o:Company> - <o:Lines>15</o:Lines> - <o:Paragraphs>3</o:Paragraphs> - <o:CharactersWithSpaces>2274</o:CharactersWithSpaces> - <o:Version>9.3821</o:Version> - </o:DocumentProperties> -</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:"\FF2D\FF33 \660E\671D"; - 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:"\@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";} -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";} -@page Section1 - {size:8.5in 11.0in; - margin:1.0in 65.95pt 1.0in 65.95pt; - mso-header-margin:.5in; - mso-footer-margin:.5in; - mso-paper-source:0;} -div.Section1 - {page:Section1;} ---> -</style> -</head> - -<body lang=EN-US style='tab-interval:.5in'> - -<div class=Section1> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'>This -directory contains files that allow an ACPI bios developer to add <o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'>instrumentation -from within ASL code. ASL code can expose data blocks, methods<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'>and -events via WMI by leveraging the WMIACPI.SYS driver. More information<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'>about the -mechanics of writing ASL to expose instrumentation information is<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'>available -in wmi-acpi.doc or on <o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'>http://www.microsoft.com/HWDev/MANAGEABILITY/wmi-acpi.htm.<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'>Device.ASL -- ASL code that can be included in the acpi bios that exposes <o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><span -style="mso-spacerun: yes">������������ </span>a set of packages, strings, data, -methods and events.<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'>acpimof.mof -- Managed Object Format file that contains a description<span -style="mso-spacerun: yes">� </span>of the <o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><span -style="mso-spacerun: yes">������������� </span>data blocks, methods and events -exposed. This description is<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><span -style="mso-spacerun: yes">������������� </span>required so that WMI is able to -access the data blocks, methods<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><span -style="mso-spacerun: yes">������������� </span>and events.<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'>acpimof.rc, -acpimof.def - FIles required to build acpimof.dll, a resource only<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><span -style="mso-spacerun: yes">������������� </span>dll.<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'>makefile, -sources, makefile.inc - build glue<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'>wmi-acpi.doc -- White paper describing how to add instrumentation to ASL code.<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'>acpimof.vbs -- Built at the same time as acpimof.dll, this file contains a<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><span -style="mso-spacerun: yes">������������� </span>VBScript applet that will query -all classes specified in the<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><span -style="mso-spacerun: yes">������������� </span>acpimof.mof file.<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'>To add -the sample code to your acpi bios and access via WMI:<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'>1. -Include the contents of device.asl to your asl source and rebuild the<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><span -style="mso-spacerun: yes">�� </span>DSDT. Update the OS with the new dsdt via -the registry or reflashing.<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'>2. -Build acpimof.dll in this directory. acpimof.dll is a resource only dll<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><span -style="mso-spacerun: yes">�� </span>that contains the compiled mof in a form -that WMI can import into its<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><span -style="mso-spacerun: yes">�� </span>schema.<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'>3. Copy -acpimof.dll to %windir%\system32 and add a value named "MofImagePath"<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><span -style="mso-spacerun: yes">�� </span>under the -HKEY_LOCAL_MACHINE\CurrentControlSet\Services\WmiAcpi key. The<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><span -style="mso-spacerun: yes">�� </span>contents of the value should be a path to -the acpimof.dll file.<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'>4. -Reboot. When PNP recognizes the new device with a pnpid of pnp0c14<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><span -style="mso-spacerun: yes">�� </span>it will install wmiacpi.sys automatically -and make the mof resource<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><span -style="mso-spacerun: yes">�� </span>in acpimof.dll available to the WMI schema.<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'>5. -Execute the acpimof.vbs test by entering acpimof.vbs at the command line<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><span -style="mso-spacerun: yes">�� </span>and reviewing the acpitest.log to insure -that all data returned is correct.<o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> - -<p class=MsoPlainText><span style='mso-fareast-font-family:"MS Mincho"'>Note -that no INF file is needed since Windows supplies an INF for the ACPI mapper -device as part of Windows<o:p></o:p></span></p> - -</div> - -</body> - -</html> diff --git a/wmi/wmiacpi/wmi-acpi.htm b/wmi/wmiacpi/wmi-acpi.htm deleted file mode 100644 index 6bf9de16..00000000 --- a/wmi/wmiacpi/wmi-acpi.htm +++ /dev/null @@ -1,1804 +0,0 @@ -<html> - -<head> -<meta name="GENERATOR" content="Microsoft FrontPage 5.0"> -<meta name="ProgId" content="FrontPage.Editor.Document"> -<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> -<title>New Page 1</title> -<style> -<!-- - p.MsoNormal - {mso-style-parent:""; - margin-bottom:.0001pt; - font-size:10.0pt; - font-family:"Times New Roman"; - margin-left:0in; margin-right:0in; margin-top:0in} - table.MsoNormalTable - {mso-style-parent:""; - font-size:10.0pt; - font-family:"Times New Roman"} -p.Tt - {mso-style-parent:""; - margin-top:1.0pt; - margin-right:0in; - margin-bottom:3.0pt; - margin-left:0in; - line-height:11.0pt; - page-break-after:avoid; - font-size:9.5pt; - font-family:Arial; - font-weight:bold; - font-style:italic; - } -p.Ch - {mso-style-parent:""; - margin-top:2.0pt; - margin-right:0in; - margin-bottom:27.0pt; - margin-left:0in; - line-height:27.0pt; - page-break-after:avoid; - font-size:22.0pt; - font-family:Arial; - } -p.Tr - {mso-style-parent:""; - margin-bottom:.0001pt; - text-align:right; - line-height:1.0pt; - page-break-after:avoid; - border:medium none; - padding:0in; - font-size:4.0pt; - font-family:"Times New Roman"; - margin-left:0in; margin-right:0in; margin-top:0in} -p.Le - {margin-bottom:.0001pt; - text-align:right; - line-height:8.0pt; - font-size:6.0pt; - font-family:"Times New Roman"; - margin-left:0in; margin-right:0in; margin-top:0in} -p.Tpf - {margin-top:1.0pt; - margin-right:0in; - margin-bottom:3.0pt; - margin-left:0in; - line-height:11.0pt; - tab-stops:14.0pt 28.0pt; - font-size:9.5pt; - font-family:"Times New Roman"; - } -p.MsoToc1 - {margin-bottom:.0001pt; - line-height:11.0pt; - page-break-after:avoid; - tab-stops:right dotted 6.0in; - font-size:9.5pt; - font-family:"Times New Roman"; - margin-left:0in; margin-right:0in; margin-top:0in} -p.MsoToc2 - {margin-top:0in; - margin-right:0in; - margin-bottom:0in; - margin-left:14.0pt; - margin-bottom:.0001pt; - line-height:11.0pt; - tab-stops:right dotted 6.0in; - font-size:9.5pt; - font-family:"Times New Roman"; - } -h1 - {mso-style-parent:""; - margin-top:10.0pt; - margin-right:0in; - margin-bottom:4.0pt; - margin-left:0in; - line-height:22.0pt; - page-break-after:avoid; - border:medium none; - padding:0in; - font-size:20.0pt; - font-family:Arial; - font-weight:normal} -p.MsoListBullet - {margin-top:0in; - margin-right:0in; - margin-bottom:4.0pt; - margin-left:.25in; - text-indent:-.25in; - tab-stops:list blank .25in; - font-size:10.0pt; - font-family:"Times New Roman"; - } -p.Ex - {mso-style-parent:""; - margin-bottom:.0001pt; - line-height:11.0pt; - tab-stops:19.5pt 39.0pt 58.5pt 78.0pt 97.5pt 117.0pt 136.5pt 156.0pt 175.5pt 195.0pt 214.5pt 3.25in 253.5pt 273.0pt 292.5pt 312.0pt 331.5pt; - font-size:8.0pt; - font-family:"Courier New"; - margin-left:0in; margin-right:0in; margin-top:0in} -p.Thf - {margin-top:1.0pt; - margin-right:0in; - margin-bottom:3.0pt; - margin-left:0in; - line-height:11.0pt; - page-break-after:avoid; - font-size:9.5pt; - font-family:"Times New Roman"; - font-weight:bold; - } -p.Th - {margin-top:1.0pt; - margin-right:0in; - margin-bottom:3.0pt; - margin-left:12.0pt; - line-height:11.0pt; - page-break-after:avoid; - font-size:9.5pt; - font-family:"Times New Roman"; - font-weight:bold; - } -p.Tp - {margin-top:1.0pt; - margin-right:0in; - margin-bottom:3.0pt; - margin-left:12.0pt; - line-height:11.0pt; - tab-stops:14.0pt 28.0pt; - font-size:9.5pt; - font-family:"Times New Roman"; - } -p.Lp1 - {margin-top:0in; - margin-right:0in; - margin-bottom:4.0pt; - margin-left:.25in; - font-size:10.0pt; - font-family:"Times New Roman"; - } -p.Term1 - {mso-style-parent:""; - margin-bottom:.0001pt; - line-height:12.0pt; - page-break-after:avoid; - font-size:10.0pt; - font-family:"Times New Roman"; - font-weight:bold; - margin-left:0in; margin-right:0in; margin-top:0in} -p.Def1 - {margin-top:0in; - margin-right:0in; - margin-bottom:8.0pt; - margin-left:10.0pt; - font-size:10.0pt; - font-family:"Times New Roman"; - } -h2 - {margin-top:7.0pt; - margin-right:0in; - margin-bottom:3.0pt; - margin-left:0in; - line-height:19.0pt; - page-break-after:avoid; - font-size:17.0pt; - font-family:Arial; - font-weight:normal} ---> -</style> -</head> - -<body> - -<div style="border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1.5pt solid windowtext; padding-left: 0in; padding-right: 0in; padding-top: 0in; padding-bottom: 1.0pt"> - <p class="MsoNormal" style="border: medium none; padding: 0in"><b> - <span style="font-size: 30.0pt; font-family: Arial Black">WinHEC 99 White - Paper </span></b> -</div> -<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="border-collapse: collapse"> - <tr> - <td width="295" valign="top" style="width: 221.4pt; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; padding-bottom: 0in"> - <p class="Tt">Windows<span style="font-size: 8.0pt">�</span> Hardware - Engineering Conference:<br> - Advancing the Platform</td> - <td width="304" valign="top" style="width: 228.0pt; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; padding-bottom: 0in"> - <p class="MsoNormal" align="right" style="text-align: right"> </td> - </tr> -</table> -<p class="Ch"><a name="_Toc441982198">Windows 2000 Instrumentation: WMI and ACPI</a></p> -<p class="Tt">Abstract</p> -<div style="mso-border-top-alt: solid windowtext .75pt; border-left: medium none; border-right: medium none; border-top: 1.0pt solid windowtext; border-bottom: medium none; padding: 0in"> - <p class="Tr"> </div> -<p class="MsoNormal">This paper describes the process that system manufacturers -(OEMs) can use to provide instrumentation information by including ACPI objects -in the systems they build that will be recognized by Microsoft� Windows� -Management Instrumentation (WMI). This information applies for Windows 2000 and -Windows 98 OSR 1. By including ACPI objects in the systems they build, OEMs can -take advantage of a generic mapping driver that allows WMI to make the -information available to the instrumentation consumers.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal">The ACPI subsystem contains a wealth of instrumentation -information; OEMs are encouraged to use ACPI to add additional platform specific -instrumentation information. However, ACPI objects are not readily accessible by -instrumentation data consumers such as Web-Based Enterprise Management (WBEM). -</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal">This paper assumes the reader is familiar with driver -mapping under Windows operating systems and the Data Block GUID Mapping control -method for WMI. References for background and details are cited at -http://www.microsoft.com/hwdev/manageability/; ACPI implementation information -is available at http://www.teleport.com/~acpi/.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal"><!--[if supportFields]> DATE \@ "MMMM d, yyyy" \* -MERGEFORMAT <![endif]-->March 12, 1999<!--[if supportFields]><![endif]--></p> -<p class="Le"> </p> -<p class="Le"> </p> -<p class="Tt">Disclaimer and Copyright</p> -<div style="mso-border-top-alt: solid windowtext .75pt; border-left: medium none; border-right: medium none; border-top: 1.0pt solid windowtext; border-bottom: medium none; padding: 0in"> - <p class="Tr"> </div> -<p class="Tpf" style="line-height: 9.0pt"><b><span style="font-size: 8.0pt"> -Microsoft Disclaimer: </span></b><span style="font-size: 7.0pt">This document is -for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR -IMPLIED, IN THIS DOCUMENT.</span></p> -<p class="Tpf" style="line-height: 9.0pt"><span style="font-size: 7.0pt"> -Microsoft Corporation may have patents or pending patent applications, -trademarks, copyrights, or other intellectual property rights covering subject -matter in this document. The furnishing of this document does not give you any -license to the patents, trademarks, copyrights, or other intellectual property -rights except as expressly provided in any written license agreement from -Microsoft Corporation. </span></p> -<p class="Tpf" style="line-height: 9.0pt"><span style="font-size: 7.0pt"> -Microsoft does not make any representation or warranty regarding specifications -in this document or any product or item developed based on these specifications. -Microsoft disclaims all express and implied warranties, including but not -limited to the implied warranties or merchantability, fitness for a particular -purpose and freedom from infringement. Without limiting the generality of the -foregoing, Microsoft does not make any warranty of any kind that any item -developed based on these specifications, or any portion of a specification, will -not infringe any copyright, patent, trade secret or other intellectual property -right of any person or entity in any country. It is your responsibility to seek -licenses for such intellectual property rights where appropriate. Microsoft -shall not be liable for any damages arising out of or in connection with the use -of these specifications, including liability for lost profit, business -interruption, or any other damages whatsoever. Some states do not allow the -exclusion or limitation of liability or consequential or incidental damages; the -above limitation may not apply to you. </span></p> -<p class="Tpf" style="line-height: normal"><span style="font-size: 7.0pt"> -Microsoft, DirectX, MS‑DOS, Win32, Windows, and Windows NT are registered -trademarks of Microsoft Corporation. Other product and company names mentioned -herein may be the trademarks of their respective owners.</span></p> -<p class="Tpf" style="line-height: normal"><span style="font-size: 7.0pt">� 1999 -Microsoft Corporation. All rights reserved.</span></p> -<p class="Tt"> </p> -<p class="Tt">Contents</p> -<div style="mso-border-top-alt: solid windowtext .75pt; border-left: medium none; border-right: medium none; border-top: 1.0pt solid windowtext; border-bottom: medium none; padding: 0in"> - <p class="Tr"> </div> -<p class="MsoToc1"><!--[if supportFields]> TOC \o "1-2" <![endif]-->Technology -Overview for Windows 2000 -Instrumentation....................................................................................... -<!--[if supportFields]>PAGEREF _Toc445868966 \h <![endif]-->3<!--[if gte mso 9]><xml> - <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003400340035003800360038003900360036000000</w:data> -</xml><![endif]--><!--[if supportFields]><![endif]--></p> -<p class="MsoToc1">WMI Overview for Windows 2000 -Instrumentation................................................................................................... -<!--[if supportFields]>PAGEREF _Toc445868967 \h <![endif]-->3<!--[if gte mso 9]><xml> - <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003400340035003800360038003900360037000000</w:data> -</xml><![endif]--><!--[if supportFields]><![endif]--></p> -<p class="MsoToc1">ACPI-to-WMI Mapper Goals for Windows 2000 -Instrumentation........................................................................... -<!--[if supportFields]>PAGEREF _Toc445868968 \h <![endif]-->4<!--[if gte mso 9]><xml> - <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003400340035003800360038003900360038000000</w:data> -</xml><![endif]--><!--[if supportFields]><![endif]--></p> -<p class="MsoToc1">ACPI Control Method Naming Conventions and Functionality for -Windows 2000 Instrumentation................ <!--[if supportFields]>PAGEREF -_Toc445868969 \h <![endif]-->5<!--[if gte mso 9]><xml> - <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003400340035003800360038003900360039000000</w:data> -</xml><![endif]--><!--[if supportFields]><![endif]--></p> -<p class="MsoToc1">Data Block Design for Windows 2000 -Instrumentation............................................................................................. -<!--[if supportFields]>PAGEREF _Toc445868970 \h <![endif]-->8<!--[if gte mso 9]><xml> - <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003400340035003800360038003900370030000000</w:data> -</xml><![endif]--><!--[if supportFields]><![endif]--></p> -<p class="MsoToc1">FAQ about WMI and ACPI for Windows 2000 -Instrumentation........................................................................... -<!--[if supportFields]>PAGEREF _Toc445868971 \h <![endif]-->11<!--[if gte mso 9]><xml> - <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003400340035003800360038003900370031000000</w:data> -</xml><![endif]--><!--[if supportFields]><![endif]--></p> -<p class="MsoToc1"><span style="layout-grid-mode: line">ASL Methods and Sample -Code</span>.................................................................................................................................. -<!--[if supportFields]>PAGEREF _Toc445868972 \h <![endif]-->11<!--[if gte mso 9]><xml> - <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003400340035003800360038003900370032000000</w:data> -</xml><![endif]--><!--[if supportFields]><![endif]--></p> -<p class="MsoToc2"><span style="layout-grid-mode: line">ASL Sample Code for an -Event and Initiating Method</span>...................................................................................... -<!--[if supportFields]>PAGEREF _Toc445868973 \h <![endif]-->12<!--[if gte mso 9]><xml> - <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003400340035003800360038003900370033000000</w:data> -</xml><![endif]--><!--[if supportFields]><![endif]--></p> -<p class="MsoToc2">Sample ASL Code Embedding MOD Data in ASL.............................................................................................. -<!--[if supportFields]>PAGEREF _Toc445868974 \h <![endif]-->14<!--[if gte mso 9]><xml> - <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003400340035003800360038003900370034000000</w:data> -</xml><![endif]--><!--[if supportFields]><![endif]--></p> -<p class="MsoToc2">Sample .Mof -File....................................................................................................................................................... -<!--[if supportFields]>PAGEREF _Toc445868975 \h <![endif]-->17<!--[if gte mso 9]><xml> - <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003400340035003800360038003900370035000000</w:data> -</xml><![endif]--><!--[if supportFields]><![endif]--></p> -<p class="Le"><!--[if supportFields]><![endif]--> </p> -<p><span style="font-size: 20.0pt; font-family: Arial"> -<br clear="all" style="page-break-before: always"> - </span></p> -<div style="mso-border-top-alt: solid windowtext .5pt; border-left: medium none; border-right: medium none; border-top: 1.0pt solid windowtext; border-bottom: medium none; padding-left: 0in; padding-right: 0in; padding-top: 1.0pt; padding-bottom: 0in"> - <h1><a name="_Toc440694666">Technology Overview</a> for Windows 2000 - Instrumentation</h1> -</div> -<p class="MsoNormal">The ACPI-to-WMI mapping functionality is achieved by means -of two device drivers provided with the Windows 2000 and Windows 98 OSR1 -operating systems: </p> -<p class="MsoListBullet"><span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span>Acpi.sys is the regular ACPI device driver with some -modifications. </p> -<p class="MsoListBullet"><span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span>Wmiacpi.sys registers with Plug and Play ID PNP0c14. </p> -<p class="Le"> </p> -<p class="MsoNormal">OEMs can differentiate their PC system capabilities by -writing ACPI Source Language (ASL) code and a Managed Object Format (.mof or MOF) -file. The .mof file can be in the BIOS or on disk. For more information about -MOF, see the �MOF Data Types� section later in this paper.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal">ASL code is never executed directly by the Wmiacpi.sys -driver. ASL code is always executed by the Acpi.sys driver (see the ASL -information at http://www.teleport.com/~acpi/). Wmiacpi.sys will invoke Acpi.sys -to call control methods that access the management data exposed by the mapping -driver.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal">Microsoft does not ship a .mof file that is associated with -the Wmiacpi.sys driver. The only information surfaced through ACPI is the -temperature zone information, which is surfaced through and associated with the -Acpi.sys device driver. </p> -<p class="MsoNormal"> </p> -<div style="mso-border-top-alt: solid windowtext .5pt; border-left: medium none; border-right: medium none; border-top: 1.0pt solid windowtext; border-bottom: medium none; padding-left: 0in; padding-right: 0in; padding-top: 1.0pt; padding-bottom: 0in"> - <h1><a name="_Toc440694667">WMI Overview</a> for Windows 2000 Instrumentation</h1> -</div> -<p class="MsoNormal">WMI organizes individual data items (properties) into data -blocks (structures) that contain related information. Data blocks may have one -or more data items. Each data item has a unique index within the data block, and -each data block is named by a globally unique 128-bit number called a globally -unique identifier (GUID). WMI can provide notifications to the data producer as -to when to start and stop collecting the data items that compose a data block. -WMI has no knowledge of the data format for individual data blocks.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal">WMI functionality allows for querying all instances of a -data block or a single instance of a data block. It also allows for setting all -data items in an instance of a data block or a single data item within a single -instance of a data block.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal">In addition to queries and sets, WMI allows WMI method -calls, which are functionally equivalent to an I/O control (IOCTL) call to a -device. Each WMI method call is identified by a GUID and a method index for that -GUID. All WMI method calls use one buffer for input and output parameters. WMI -allows notifications of significant events to be delivered to interested -user-mode applications. Each type of event is uniquely named by a GUID. Events -may also carry a data block with additional information about the event. WMI can -provide notifications to the event generator about when to enable and disable an -event type.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal">WMI is an open architecture that allows OEMs to define -their own data blocks, methods, and events. Along with the data that composes -the custom data block, the OEM must also provide a description that generally -represents how a data block or WMI method is mapped to a 2-character ID. This -2‑character ID is part of the names of the control methods that act upon the -data block. </p> -<p class="MsoNormal"> </p> -<p class="MsoNormal">For example, when a call is made to query about the data -block represented by a WMI GUID, the mapper will evaluate the WQ<i>xx</i> -control method (where <i>xx</i> is the 2-character ID mapped to that GUID). -These mappings are defined by the ACPI code and obtained by the mapper -evaluating the _WDG control method. For more information, see �ACPI Control -Method Naming Conventions and Functionality� later in this paper.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal">The mapping process is similar for events. The _WDG control -method provides a mapping between the WMI event GUID that represents the event -and the notification code specified in the ASL notify instruction. For example, -when ACPI provides a callback to the mapper that a control method executed a <b> -notify(mapper-device, 0x81)</b><i> </i>function<i>,</i> the mapper will look up -the WMI GUID mapped to 0x81 and use this WMI GUID in building the WMI event. -Before launching the WMI event, the mapper will evaluate _WED to retrieve any -additional data that belongs with the event.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal"><a name="_Toc409597061"><b>Loading the Mapping Driver</b></a><b>. -</b>The Plug and Play ID PNP0c14 is assigned as the WMI-mapping pseudo device; -the operating system device INFs (Plug and Play ID-to-device driver lookup -table) point this Plug and Play ID to the ACPI-to-WMI mapping driver. To cause -the ACPI-to-WMI mapping driver to load, an ACPI system needs to define one or -more devices with that Plug and Play ID in the ACPI device tree. Each device -declared in the ACPI device tree would have its own operating system device -object with its own set of mappings. </p> -<p class="MsoNormal"> </p> -<p class="MsoNormal">In this way, different sets of data blocks can be organized -in the appropriate place within the device tree. This organization allows the -different devices and their corresponding data blocks to come and go from the -ACPI device tree. Note that if there are multiple WMI-mapping pseudo devices in -the ACPI device tree, each device must have a unique value for its _UID.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal"><a name="_Toc409597062"><b>Mapping Driver Functionality</b></a><b>. -</b>Essentially the mapping driver will do the following:</p> -<p class="MsoListBullet"><span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span>Manage all registration and unregistration with WMI and other -interactions with the operating system. This registration of data and data -blocks is done when the mapper gets the IRP_MN_REGINFO IRP.</p> -<p class="MsoListBullet"><span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span>At WMI initialization time, the mapping driver will query an ACPI -method for the list of data block, event, and method GUIDs it supports, as well -as the mapping from the GUID to control method IDs. With this information, the -mapping driver will register those GUIDs with WMI.</p> -<p class="MsoListBullet"><span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span>Translate data block queries, sets, and method call I/O IRPs into -the appropriate ACPI control method call.</p> -<p class="MsoListBullet"><span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span>Receive notifications from the ACPI event handler control methods -and relaunch them as WMI events.</p> -<p class="MsoListBullet"><span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span>Translate strings between ASCIZ and UNICODE for data blocks marked -as wholly composed of a string.</p> -<p class="Le"> </p> -<div style="mso-border-top-alt: solid windowtext .5pt; border-left: medium none; border-right: medium none; border-top: 1.0pt solid windowtext; border-bottom: medium none; padding-left: 0in; padding-right: 0in; padding-top: 1.0pt; padding-bottom: 0in"> - <h1><a name="_Toc440694668">ACPI-to-WMI Mapper Goals</a> for Windows 2000 - Instrumentation</h1> -</div> -<p class="MsoNormal">The following list describes the goals for the ACPI-to-WMI -mapper:</p> -<p class="MsoListBullet"><span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span>Expose data maintained by the hardware or firmware and accessible -through ACPI to user-mode instrumentation data consumers, such as WBEM or DMI.</p> -<p class="MsoListBullet"><span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span>Allow specific ACPI control methods to be called from a user-mode -instrumentation data consumer or hardware configuration application�for example, -from a control panel applet.</p> -<p class="MsoListBullet"><span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span>Deliver specific ACPI events to all user-mode callers that request -notification of that particular event.</p> -<p class="MsoListBullet"><span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span>Allow OEMs to include OEM-specific data blocks, user-mode�callable -ACPI control methods, and events without requiring any changes to the -ACPI-to-WMI mapper.</p> -<p class="MsoListBullet"><span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span>Allow general-purpose data consumer applications�those written -without any special knowledge of the data blocks exposed by a particular -machine�to be able to access and understand the data blocks, user-mode�callable -ACPI control methods, and events being mapped�including those that are OEM -specific.</p> -<p class="MsoListBullet"><span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span>Define standard data block formats, user-mode�callable ACPI -control methods, events and their WMI GUID mappings for common data blocks, and -callable control methods and events expected to be provided by all OEMs. This -can include dynamic data and functions identified by the industry in the SMBIOS -specification and other specifications.</p> -<p class="Le"> </p> -<p class="MsoNormal">These goals are achieved by having supporting code in the -ACPI-to-WMI mapper (Wmiacpi.sys) as well as in the core ACPI code itself (Acpi.sys).</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal">The following are <i>not</i> goals for the ACPI-to-WMI -mapper:</p> -<p class="MsoListBullet" style="page-break-after: avoid"> -<span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span>To have specific knowledge about any data block that passes -through the mapper.</p> -<p class="MsoListBullet"><span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span>To provide interfaces specifically for SMBIOS data and functions. -The mapper is an open architecture that is not restricted to SMBIOS data and -functionality.</p> -<p class="Le"> </p> -<p class="MsoNormal"><a name="_Toc440962623"><b>How SMBIOS-provided information -is handled</b></a><b>. </b>Vendors who want to provide OEM and system-specific -instrumentation data may choose to use SMBIOS as the mechanism. To use the -capabilities of the WMI infrastructure to surface this SMBIOS data, they must -conform to any SMBIOS version between 2.0 and 2.2. (Microsoft intends to support -future revisions of SMBIOS as and when they appear. To date, we have only one -SMBIOS 2.2 machine for testing). This allows the Microsoft Win32<span style="font-size: 8.0pt">�</span> -provider�which is shipped with Windows 2000 and future versions of Windows and -is available as an update to Windows 98�to populate almost all of the SMBIOS-provided -information into the CIMv2 namespace. In particular, almost all of the -information is put into Win32 classes. Some of these Win32 classes are derived -from the CIMv2.1 physical MOF. </p> -<p class="MsoNormal"> </p> -<p class="MsoNormal">The one exception where SMBIOS information will not be -automatically populated by the Win32 provider into the CIMv2 namespace is SMBIOS -vendor-specific data. Such SMBIOS vendor-defined data will be placed in a -�VendorBucket� class in a �Root\VendorDefined� namespace, and will not be -available in the CIMv2 namespace by default. Any system vendor who wants to -provide such data must write a provider that will interpret this data.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal">The SMBIOS data is read only once, either at boot time in -Windows 2000 or post boot on Windows 98. Dynamic updates that are made to the -SMBIOS data after it has been read will not be reflected in the namespaces in -this implementation. Microsoft is working with the industry to define standard -ACPI methods for dynamic updates.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal">The SMBIOS raw data will be available as a WMI data block -in Windows 2000 and as a flat file in Windows 98. This data will be interpreted -and populated into the namespaces by the Win32 provider.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal"><b>Note:</b> The Win32 provider capabilities used to read -and populate SMBIOS data as described above will be available in Windows 2000 -Beta 3.</p> -<p class="MsoNormal"> </p> -<div style="mso-border-top-alt: solid windowtext .5pt; border-left: medium none; border-right: medium none; border-top: 1.0pt solid windowtext; border-bottom: medium none; padding-left: 0in; padding-right: 0in; padding-top: 1.0pt; padding-bottom: 0in"> - <h1><a name="_Toc409597063">ACPI Control Method Naming Conventions and - Functionality</a> for Windows 2000 Instrumentation</h1> -</div> -<p class="MsoNormal">The <a name="_Toc409597064">Data Block GUID Mapping control -method</a> named _WDG evaluates to a buffer that has the GUID mapping -information for data blocks, events, and WMI methods. The result of the -evaluation is a buffer containing an array of the following structure. </p> -<p class="MsoNormal"> </p> -<p class="Ex" style="page-break-after: avoid">typedef struct</p> -<p class="Ex" style="page-break-after: avoid">{</p> -<p class="Ex" style="page-break-after: avoid"> GUID guid; // -GUID that names data block</p> -<p class="Ex" style="page-break-after: avoid"> union</p> -<p class="Ex" style="page-break-after: avoid"> {</p> -<p class="Ex" style="page-break-after: avoid"> CHAR ObjectId[2]; // -2-character ACPI ID (Data Blocks and Methods)</p> -<p class="Ex" style="page-break-after: avoid"> struct </p> -<p class="Ex" style="page-break-after: avoid"> {</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -42.0pt"> - UCHAR NotificationValue; // Byte value passed by event handler -control method</p> -<p class="Ex" style="page-break-after: avoid"> UCHAR Reserved[1];</p> -<p class="Ex" style="page-break-after: avoid"> } NotifyId;</p> -<p class="Ex" style="page-break-after: avoid"> }</p> -<p class="Ex" style="page-break-after: avoid"> USHORT InstanceCount; // -Number of separate instances of data block</p> -<p class="Ex" style="page-break-after: avoid"> USHORT Flags; // -Flags</p> -<p class="Ex">};</p> -<p class="Ex"> </p> -<p class="Ex">// Set this flag if the WCxx control method should be run to -whenever the first </p> -<p class="Ex">// data consumer is interested in collecting the data block and -whenever the last data </p> -<p class="Ex">// consumer is no longer interested.</p> -<p class="Ex"> </p> -<p class="Ex">#define WMIACPI_REGFLAG_EXPENSIVE 0x1</p> -<p class="Ex"> </p> -<p class="Ex">// Set this flag if the GUID represents a set of WMI method calls -and not a data block</p> -<p class="Ex"> </p> -<p class="Ex">#define WMIACPI_REGFLAG_METHOD 0x2</p> -<p class="Ex"> </p> -<p class="Ex">// Set this flag if the data block is wholly composed of a string -and should be </p> -<p class="Ex">// translated from ASCIZ to UNICODE in returning queries and from -UNICODE to ASCIZ </p> -<p class="Ex">// when passing sets</p> -<p class="Ex"> </p> -<p class="Ex">#define WMIACPI_REGFLAG_STRING 0x04</p> -<p class="Ex"> </p> -<p class="Ex">// Set this flag if the guid maps to an event rather than a data -block or method</p> -<p class="Ex"> </p> -<p class="Ex">#define WMIACPI_REGFLAG_EVENT 0x08</p> -<p class="Ex"> </p> -<p class="Le"> </p> -<p class="MsoNormal">Each element in the array describes the mapping of a WMI -data block GUID to a 2-letter ACPI method identifier used to compose the method -names that operate on the data block or on the notification value used in the -ASL <b>Notify</b> operation. Each element of the array also contains the number -of instances of the data block that exist and any flags that are set.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal">This control method is required.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal"><a name="_Toc409597067">The following table summarizes the -information for each control method described later in this section.</a></p> -<p class="MsoNormal"> </p> -<p class="Tt">Control Method Summary</p> -<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="border-collapse: collapse"> - <tr> - <td width="120" valign="top" style="width: 1.25in; border-left: medium none; border-right: medium none; border-top: 1.0pt solid windowtext; border-bottom: 1.0pt solid windowtext; padding: 0in; background: #CCCCCC"> - <p class="Thf">Control method</td> - <td width="96" valign="top" style="width: 1.0in; border-left: medium none; border-right: medium none; border-top: 1.0pt solid windowtext; border-bottom: 1.0pt solid windowtext; padding: 0in; background: #CCCCCC"> - <p class="Th">Object name</td> - <td width="103" valign="top" style="width: 77.4pt; border-left: medium none; border-right: medium none; border-top: 1.0pt solid windowtext; border-bottom: 1.0pt solid windowtext; padding: 0in; background: #CCCCCC"> - <p class="Th">Parameters</td> - <td width="281" valign="top" style="width: 210.6pt; border-left: medium none; border-right: medium none; border-top: 1.0pt solid windowtext; border-bottom: 1.0pt solid windowtext; padding: 0in; background: #CCCCCC"> - <p class="Th">Control method required</td> - </tr> - <tr> - <td width="120" valign="top" style="width: 1.25in; padding: 0in"> - <p class="Tpf">Data Block Query</td> - <td width="96" valign="top" style="width: 1.0in; padding: 0in"> - <p class="Th"><span style="font-weight: normal">WQ<i>xx</i></span></td> - <td width="103" valign="top" style="width: 77.4pt; padding: 0in"> - <p class="Th"><span style="font-weight: normal">ULONG</span></td> - <td width="281" valign="top" style="width: 210.6pt; padding: 0in"> - <p class="Th"><span style="font-weight: normal">Yes.</span></td> - </tr> - <tr> - <td width="120" valign="top" style="width: 1.25in; padding: 0in"> - <p class="Tpf">Data Block Set</td> - <td width="96" valign="top" style="width: 1.0in; padding: 0in"> - <p class="Tp">WS<i>xx</i></td> - <td width="103" valign="top" style="width: 77.4pt; padding: 0in"> - <p class="Tp">ULONG, buffer</td> - <td width="281" valign="top" style="width: 210.6pt; padding: 0in"> - <p class="Tp">No. Not required for data blocks that are read only.</td> - </tr> - <tr> - <td width="120" valign="top" style="width: 1.25in; padding: 0in"> - <p class="Tpf">Data Item Set</td> - <td width="96" valign="top" style="width: 1.0in; padding: 0in"> - <p class="Tp">Not supported</td> - <td width="103" valign="top" style="width: 77.4pt; padding: 0in"> - <p class="Tp"> </td> - <td width="281" valign="top" style="width: 210.6pt; padding: 0in"> - <p class="Tp"> </td> - </tr> - <tr> - <td width="120" valign="top" style="width: 1.25in; padding: 0in"> - <p class="Tpf">Method Execution</td> - <td width="96" valign="top" style="width: 1.0in; padding: 0in"> - <p class="Tp">WM<i>xx</i></td> - <td width="103" valign="top" style="width: 77.4pt; padding: 0in"> - <p class="Tp">ULONG, method ID, <br> - buffer</td> - <td width="281" valign="top" style="width: 210.6pt; padding: 0in"> - <p class="Tp">Yes. Required for data blocks specified in the data block GUID - mapping array and that have the WMIACPI_REG_METHOD flag set.</td> - </tr> -</table> -<p class="MsoNormal"> </p> -<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="border-collapse: collapse"> - <tr> - <td width="120" valign="top" style="width: 1.25in; padding: 0in"> - <p class="Tpf">Event Enable and Disable</td> - <td width="96" valign="top" style="width: 1.0in; padding: 0in"> - <p class="Tp">WE<i>xx</i></td> - <td width="103" valign="top" style="width: 77.4pt; padding: 0in"> - <p class="Tp">UCHAR</td> - <td width="281" valign="top" style="width: 210.6pt; padding: 0in"> - <p class="Tp">No. Support only when keeping the event enabled incurs - significant overhead.</td> - </tr> - <tr> - <td width="120" valign="top" style="width: 1.25in; border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1.0pt solid windowtext; padding: 0in"> - <p class="Tpf">Data Collection <br> - Enable and Disable</td> - <td width="96" valign="top" style="width: 1.0in; border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1.0pt solid windowtext; padding: 0in"> - <p class="Tp">WC<i>xx</i></td> - <td width="103" valign="top" style="width: 77.4pt; border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1.0pt solid windowtext; padding: 0in"> - <p class="Tp">UCHAR</td> - <td width="281" valign="top" style="width: 210.6pt; border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1.0pt solid windowtext; padding: 0in"> - <p class="Tp">No. Support only when data collecting for the data block - incurs significant overhead.</td> - </tr> -</table> -<p class="Le"> </p> -<p class="MsoListBullet"><span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span><b>Data Block Query Control Method. </b>If the Data Block GUID -Mapping control method describes a data block that does not have the -WMIACPI_REG_METHOD flag set, there needs to be a control method that evaluates -to the contents of an instance of the data block. </p> -<p class="Lp1">By convention, the name of the object is WQ<i>xx</i>, where <i>xx</i> -is the 2-character ID that maps to the GUID being queried. One parameter is -passed to the method�the index of the instance, which is of type ULONG. Data -blocks registered with only a single instance can ignore the parameter. If the -result of the evaluation of the WQ<i>xx</i> method is a string, then the mapper -will convert that string to UNICODE so that it can be understood by WMI. </p> -<p class="Lp1">This control method is required.</p> -<p class="MsoListBullet"><a name="_Toc409597068"> -<span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span><b>Data Block Set Control Method</b></a><b>. </b>If the Data Block -GUID Mapping control method describes a data block that does not have the -WMIACPI_REG_METHOD flag set, there needs to be a control method that evaluates -to the contents of an instance of the data block. </p> -<p class="Lp1">By convention, the name of the object is WS<i>xx</i>, where <i>xx</i> -is the 2-character ID that maps to the GUID being set. Two parameters are passed -to the method; one is a ULONG that is the index of the instance, and the other -is a buffer that contains the new values for the data block. </p> -<p class="Lp1">If the GUID for the data block is registered with the -WMIACPI_REGFLAG_STRING flag, then the mapper assumes that the data block passed -is wholly composed of a single string and will convert that string from UNICODE -to ASCIZ so that it can be understood by the WS<i>xx</i> control method. </p> -<p class="Lp1">This control method is not required for those data blocks that -are read only. </p> -<p class="Lp1">Because the mapper is unaware of the format of the data block -passed by the caller of the WMI method, it will pass the buffer as a single -buffer parameter to the WM<i>xx</i> control method. The control method can use -the ASL instructions <b>CreateBitField</b>, <b>CreateDWordField</b>, <b> -CreateField</b>, and <b>CreateWordField</b> to break up the buffer into its -parts</p> -<p class="MsoListBullet"><a name="_Toc409597069"> -<span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span><b>Data Item Set Control Method</b></a><b>. </b>Setting of -individual data items within a data block is not supported. Typically, data -items that can be modified should be placed in their own data block or the -entire data block should be modified.</p> -<p class="MsoListBullet"><a name="_Toc409597070"> -<span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span><b>Method Execution Control Method</b></a><b>. </b>If the Data -Block GUID Mapping control method describes a data block that does have the -WMIACPI_REG_METHOD flag set, there needs to be a control method that performs -the action required of the method. </p> -<p class="Lp1">By convention, the name of the control method is WM<i>xx</i>, -where <i>xx</i> is the 2-character ID that maps to the GUID. This method call -has three parameters; the first is a ULONG that has the instance index being -executed; the second contains the method ID for the method being executed; and -the third is a buffer that contains the input for the method call. </p> -<p class="Lp1">If the GUID for the WMI method is registered with the -WMIACPI_REGFLAG_STRING flag, then the mapper assumes that buffer passed in is a -string. The mapper will convert the incoming string from UNICODE to ASCIZ. </p> -<p class="Lp1">If the result of the WM<i>xx</i> control method is a string, the -mapper will convert the result string from ASCIZ to UNICODE. The return value of -the WM<i>xx</i> method should be a buffer with the result of the method call. -</p> -<p class="Lp1">This control method is<b> </b>required for those data blocks -specified in the Data Block GUID Mapping array that have the WMIACPI_REG_METHOD -flag set. </p> -<p class="Lp1">Because the mapper is unaware of the format of the data block -passed by the caller of the WMI method, it will pass the buffer as a single -buffer parameter to the WM<i>xx</i> control method. The control method can use -the ASL instructions <b>CreateBitField</b>, <b>CreateDWordField</b>, <b> -CreateField</b>, and <b>CreateWordField</b> to break the buffer into its parts.</p> -<p class="MsoListBullet"><a name="_Toc409597071"> -<span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span><b>Event Enable and Disable Control Method</b></a><b>. </b>For -each event specified in the Event GUID Mapping control method that has the -WMIACPI_REG_EXPENSIVE flag set, there needs to be a control method that is -invoked whenever launching of the event should be enabled and disabled. </p> -<p class="Lp1">By convention, the control method is named WE<i>xx</i>, where <i> -xx</i> is the hex value of the notification code passed by the event handler -control method. This method has one parameter, a UCHAR that has a value of 0 if -the event is to be disabled or a nonzero value if it is to be enabled. </p> -<p class="Lp1">This method is optional and should only be supported if keeping -the event enabled incurs significant overhead.</p> -<p class="MsoListBullet"><a name="_Toc409597072"> -<span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span><b>Data Collection Enable and Disabl</b></a><b>e Control Method. -</b>For each data block described in the Data Block GUID Mapping control method -that has the WMIACPI_REG_EXPENSIVE flag set, there needs to be a control method -that is invoked whenever collection of the data that composes the data block -should be enabled and disabled </p> -<p class="Lp1">By convention, the control method is named WC<i>xx</i>, where <i> -xx</i> is the 2-character ID that maps to the GUID. This method has one -parameter, a UCHAR that has a value of 0 if data block collection is to be -disabled or a nonzero value if it is to be enabled. </p> -<p class="Lp1">This method is optional and should only be supported if -collecting the data for the data block incurs significant overhead.</p> -<p class="MsoListBullet"><a name="_Toc409597073"> -<span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span><b>Additional Event Data</b></a><b>. </b>The _WED control method -is evaluated by the mapper in response to receiving a notification from a -control method. The results of the evaluation are passed as part of the WMI -event information. This mechanism allows additional data to be included with an -event. </p> -<p class="Lp1">The control method takes one parameter, which is the notification -code that caused the notification to occur. If the result of the _WED control -method is a string, then the string is converted from ASCIZ to UNICODE before -launching the WMI event.</p> -<p class="Le"> </p> -<div style="mso-border-top-alt: solid windowtext .5pt; border-left: medium none; border-right: medium none; border-top: 1.0pt solid windowtext; border-bottom: medium none; padding-left: 0in; padding-right: 0in; padding-top: 1.0pt; padding-bottom: 0in"> - <h1><a name="_Toc409597075">Data Block Design </a>for Windows 2000 - Instrumentation </h1> -</div> -<p class="MsoNormal"><b>Design Considerations. </b>Consider the following in -designing data blocks for instrumentation under Windows 2000:</p> -<p class="MsoListBullet"><span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span>Data items that are read-only and are commonly used together -should be combined into a single data block.</p> -<p class="MsoListBullet"><span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span>Data items that are strings must be segregated into their own data -block and registered with the WMIACPI_REGFLAG_STRING flag set so that the mapper -can convert between ASCIZ and UNICODE.</p> -<p class="MsoListBullet"><span style="font-family: Symbol">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span>Data items that can be set individually should be segregated into -their own data blocks. For example, a set of data items that must be set all at -the same time can be combined into a single data block.</p> -<p class="Le"> </p> -<p class="MsoNormal"><a name="_Toc409597076"><b>MOF</b></a><b> Data Types. </b> -The Managed Object Format (MOF) for the data blocks implemented can be supplied -as either a resource attached to a file or as the buffer that results from the -evaluation of a control method. To establish the former, either bind the -resource to the Wmiacpi.sys image or establish a REG_EXPAND_SZ registry value -named <b>MofImagePath</b> under the WMIACPI service key. The contents of the -value is a path to the image file that contains the resource. In either case, -the resource must be named <b>MofResourceName</b>.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal">The buffer resulting from the evaluation of the WQ<i>xx</i> -control method assigned to the binary MOF GUID describes all data blocks, WMI -methods, and events for the device in a compressed binary format. This binary -data is created by building a text file using the MOF language and compiling it -with the MOF compiler.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal">MOF data types are very rich. MOF supports the basic data -types of 8-, 16-, 32-, and 64-bit signed and unsigned integers, Boolean terms, -floating points, strings, and UTC datetimes. Embedded classes�that is, -structures that can contain basic data types and other embedded classes�are also -supported. In addition, fixed and variable length arrays of basic data types and -embedded classes are supported. </p> -<p class="MsoNormal"> </p> -<p class="MsoNormal">The MOF language defines the data types shown in the -following table.</p> -<p class="MsoNormal"> </p> -<p class="Tt">MOF Data Types</p> -<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="border-collapse: collapse"> - <tr> - <td width="200" valign="top" style="width: 150.0pt; border-left: medium none; border-right: medium none; border-top: 1.0pt solid windowtext; border-bottom: 1.0pt solid windowtext; padding: 0in; background: #CCCCCC"> - <p class="Thf">Data types</td> - <td width="407" valign="top" style="width: 305.4pt; border-left: medium none; border-right: medium none; border-top: 1.0pt solid windowtext; border-bottom: 1.0pt solid windowtext; padding: 0in; background: #CCCCCC"> - <p class="Thf">Data format</td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf">String</td> - <td width="407" valign="top" style="width: 305.4pt; padding: 0in"> - <p class="Tpf">Null terminated ANSI string</td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf">sint32</td> - <td width="407" valign="top" style="width: 305.4pt; padding: 0in"> - <p class="Tpf">Signed 32-bit integer </td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf">uint32</td> - <td width="407" valign="top" style="width: 305.4pt; padding: 0in"> - <p class="Tpf">Unsigned 32-bit integer</td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf">sint16 </td> - <td width="407" valign="top" style="width: 305.4pt; padding: 0in"> - <p class="Tpf">Signed 16-bit integer </td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf">uint16 </td> - <td width="407" valign="top" style="width: 305.4pt; padding: 0in"> - <p class="Tpf">Unsigned 16-bit integer </td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf">sint64</td> - <td width="407" valign="top" style="width: 305.4pt; padding: 0in"> - <p class="Tpf">Signed 64-bit integer</td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf">uint64</td> - <td width="407" valign="top" style="width: 305.4pt; padding: 0in"> - <p class="Tpf">Unsigned 64-bit integer</td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf">sint8</td> - <td width="407" valign="top" style="width: 305.4pt; padding: 0in"> - <p class="Tpf">Signed 8-bit character </td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf">uint8</td> - <td width="407" valign="top" style="width: 305.4pt; padding: 0in"> - <p class="Tpf">Unsigned 8-bit integer</td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf">Datetime</td> - <td width="407" valign="top" style="width: 305.4pt; padding: 0in"> - <p class="Tpf">25-character string used to specify absolute dates or time - intervals. </td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1.0pt solid windowtext; padding: 0in"> - <p class="Tpf">Boolean</td> - <td width="407" valign="top" style="width: 305.4pt; border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1.0pt solid windowtext; padding: 0in"> - <p class="Tpf">Byte where 0 is FALSE, != 0 is TRUE </td> - </tr> -</table> -<p class="Le"> </p> -<p class="MsoNormal"><b>Important: </b>Because the MOF data types are much -richer than those for ACPI control methods, the control method must be careful -to pack the data blocks correctly within an ACPI buffer. The control method can -also restrict itself to using only common data types.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal">Each MOF class represents a data block and may contain one -or more properties that represent data items within the data block. A MOF class -would hold all information needed to parse a data block returned from the mapper. -In addition, the MOF language allows rich meta-data to be included as qualifiers -on properties and classes. Some qualifiers are required, but most are optional.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal">Class and data item qualifiers are defined in the following -table.</p> -<p class="MsoNormal"> </p> -<p class="Tt">Class and Data Item Qualifiers</p> -<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="border-collapse: collapse"> - <tr> - <td width="200" valign="top" style="width: 150.0pt; border-left: medium none; border-right: medium none; border-top: 1.0pt solid windowtext; border-bottom: 1.0pt solid windowtext; padding: 0in; background: #CCCCCC"> - <p class="Thf">Qualifier</td> - <td width="400" valign="top" style="width: 300.0pt; border-left: medium none; border-right: medium none; border-top: 1.0pt solid windowtext; border-bottom: 1.0pt solid windowtext; padding: 0in; background: #CCCCCC"> - <p class="Thf">Description</td> - <td style="border: medium none; padding: 0in" width="7"> - <p class="MsoNormal"> </td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1.0pt solid windowtext; padding: 0in; background: #CCCCCC"> - <p class="Thf">Class qualifiers:</td> - <td width="400" valign="top" style="width: 300.0pt; border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1.0pt solid windowtext; padding: 0in; background: #CCCCCC"> - <p class="Thf"><span style="font-size: 10.5pt"> </span></td> - <td style="border: medium none; padding: 0in" width="7"> - <p class="MsoNormal"> </td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf">[guid(�<i>guid-string</i>�)] </td> - <td width="400" valign="top" style="width: 300.0pt; padding: 0in"> - <p class="Tpf">Declares the GUID that represents the class within WMI. This - qualifier is required.</td> - <td style="border: medium none; padding: 0in" width="7"> - <p class="MsoNormal"> </td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf">[Dynamic] </td> - <td width="400" valign="top" style="width: 300.0pt; padding: 0in"> - <p class="Tpf">Required for WBEM.</td> - <td style="border: medium none; padding: 0in" width="7"> - <p class="MsoNormal"> </td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf">[WMI] </td> - <td width="400" valign="top" style="width: 300.0pt; padding: 0in"> - <p class="Tpf">Required for WBEM.</td> - <td style="border: medium none; padding: 0in" width="7"> - <p class="MsoNormal"> </td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf">[Provider(�WmiProv�)] </td> - <td width="400" valign="top" style="width: 300.0pt; padding: 0in"> - <p class="Tpf">Required for WBEM.</td> - <td style="border: medium none; padding: 0in" width="7"> - <p class="MsoNormal"> </td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf">[Description(<i>�description-text�)</i>]<i> </i></td> - <td width="400" valign="top" style="width: 300.0pt; padding: 0in"> - <p class="Tpf">Specifies description text for the class or property in the - locale specified for the locale qualifier.</td> - <td style="border: medium none; padding: 0in" width="7"> - <p class="MsoNormal"> </td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf">[WmiExpense(<i>expense-value</i>)] </td> - <td width="400" valign="top" style="width: 300.0pt; padding: 0in"> - <p class="Tpf">Specifies the quantity of system resources required in order - to collect data in the data block; <i>expense-value</i> is defined to be the - average number of CPU cycles needed to collect the data block. If this - qualifier is not specified, then the <i>expense-value</i> is assumed to be - 0.</td> - <td style="border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1.0pt solid windowtext" width="7"> - <p class="MsoNormal"> </td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; border-left: medium none; border-right: medium none; border-top: 1.0pt solid windowtext; border-bottom: 1.0pt solid windowtext; padding: 0in; background: #CCCCCC"> - <p class="Thf">Data item qualifiers:</td> - <td width="407" colspan="2" valign="top" style="width: 305.4pt; border-left: medium none; border-right: medium none; border-top: 1.0pt solid windowtext; border-bottom: 1.0pt solid windowtext; padding: 0in; background: #CCCCCC"> - <p class="Thf"><span style="font-size: 10.5pt"> </span></td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf">[read] </td> - <td width="407" colspan="2" valign="top" style="width: 305.4pt; padding: 0in"> - <p class="Tpf">Specifies that the data item may be read.</td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf">[write] </td> - <td width="407" colspan="2" valign="top" style="width: 305.4pt; padding: 0in"> - <p class="Tpf">Specifies that the data item may be written.</td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf">[WmiDataID(<i>data-item-ID</i>)] </td> - <td width="407" colspan="2" valign="top" style="width: 305.4pt; padding: 0in"> - <p class="Tpf">Specifies the data item ID for the data item. This qualifier - is required.</td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf"><span style="layout-grid-mode: line">[WmiScale(<i>scale-factor</i>)] - </span></td> - <td width="407" colspan="2" valign="top" style="width: 305.4pt; padding: 0in"> - <p class="Tpf"><span style="layout-grid-mode: line">Specifies the scaling - factor to use when displaying the data. Before displaying the data returned - from a query of the data item, it is multiplied by 10 to the power of <i> - scale-factor</i>. If this qualifier is not specified, then the <i> - scale-factor</i> is assumed to be 0.</span></td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf">[WmiComplexity(�<i>complexity-category�</i>)] </td> - <td width="407" colspan="2" valign="top" style="width: 305.4pt; padding: 0in"> - <p class="Tpf">Specifies the level of detail associated with the counter. <i> - Complexity-category</i> can have the value of �Novice� for the information - that anyone can understand, �Advanced� for information that is useful for - advanced users, �Expert� for information that is useful to only expert - users, and �Wizard� for information that is useful for the data provider - designer. If this qualifier is not specified, then a <i>complexity-category</i> - of �Novice� is assumed.</td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; padding: 0in"> - <p class="Tpf">[WmiVolatility(<i>validity-interval</i>)] </td> - <td width="407" colspan="2" valign="top" style="width: 305.4pt; padding: 0in"> - <p class="Tpf">Specifies how often this data item value is updated - internally. <i>Validity-interval</i> is defined in units of milliseconds, so - a <i>validity-interval</i> of 1000 would mean that the data item is updated - internally every second. Data consumers can use this measure to determine - how frequently it should poll for changes in a data item. If this qualifier - is not specified, then no assumption on the length of validity for a data - item can be made.</td> - </tr> - <tr> - <td width="200" valign="top" style="width: 150.0pt; border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1.0pt solid windowtext; padding: 0in"> - <p class="Tpf">[WmiSizeIs(�<i>property-name</i>�)] </td> - <td width="407" colspan="2" valign="top" style="width: 305.4pt; border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1.0pt solid windowtext; padding: 0in"> - <p class="Tpf">Specifies the property within the current class that has the - count of the number of array elements (not bytes) contained in a variable - length array.</td> - </tr> -</table> -<p class="Le"> </p> -<p class="MsoNormal" style="margin-right: -24.0pt">The order that the data items -are laid out in the data block is controlled by the data item ID. Data item IDs -must be allocated contiguously starting with data item ID 1. The data item order -specified in the MOF is not relevant. </p> -<p class="MsoNormal" style="margin-right: -24.0pt"> </p> -<p class="MsoNormal" style="margin-right: -24.0pt">MOF supports arrays of the -basic types shown in the �MOF Data Types� table shown earlier. A variable sized -array must have a <b>WmiSizeIs()</b> qualifier that specifies the property that -has the number of elements in the array. </p> -<p class="MsoNormal"> </p> -<p class="MsoNormal"><a name="_Toc409597077"><b>Data Block Format</b></a><b>. -</b>The format of the data block buffer returned from the query control method -and passed into the set control method must be consistent with the description -of it specified by the MOF for that data block with respect to the order and -size of the data items within the data block<span style="layout-grid-mode: line">.</span> -The Boolean data type is 1 byte in length and has a value of 0 for FALSE and -non-zero value for TRUE. The string data type is a C-style ANSI null-terminated -string.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal"><a name="_Toc409597078"><b>Standard Data Blocks, Methods, -and Events</b></a><b>. </b>Additional data blocks, events, and methods will be -defined in the future; they should be implemented by all OEMs in order to ensure -a minimum of functionality on all PCs. In the future, an industry standard will -be defined for the globally unique GUIDs to be assigned to the data blocks. The -WMI component within Windows will contain the MOF definition for these standard -data blocks so it does not need to be part of the result from the binary .mof -query.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal"><a name="_Toc440694672"><b>Custom Data Blocks, Methods and -Events</b></a><b>. </b>Custom or OEM-specific data blocks, events, and methods -can be added by including them in the result of the _WDG method. The GUIDs that -are assigned must be globally unique so they can be generated by a tool such as -Guidgen or Uuidgen, which are provided with the WMI information in the Microsoft -Platform SDK.</p> -<p class="MsoNormal"> </p> -<p class="MsoNormal">The MOF definition for these custom data blocks must be -included in the results of the WQ<i>xx</i> method, where <i>xx</i> has been -mapped to the MOF Data GUID, which is the GUID that is queried and returns MOF -data�in order for applications to be able to access the data blocks. Or the MOF -could be added as a resource to Wmiacpi.sys with a name of <b>MofResourceName</b> -and a type MOFDATA. It can also be a resource in another image file with same -name and type that is pointed to by the <b>MofImagePath </b>value in the -registry key HKLM\CurrentControlSet\Services\WmiAcpi</p> -<p class="MsoNormal"> </p> -<div style="mso-border-top-alt: solid windowtext .5pt; border-left: medium none; border-right: medium none; border-top: 1.0pt solid windowtext; border-bottom: medium none; padding-left: 0in; padding-right: 0in; padding-top: 1.0pt; padding-bottom: 0in"> - <h1><a name="_Toc440694673">FAQ about WMI and ACPI</a> for Windows 2000 - Instrumentation</h1> -</div> -<p class="Term1">How does WMI find ACPI/ASL code?</p> -<p class="Def1"><span style="layout-grid-mode: line">In ASL, the developer -creates a device with an _HID of </span>PNP0c14<span style="layout-grid-mode: line">. -The operating system enumerates the device and loads the Wmiacpi.sys driver on -top of it.</span></p> -<p class="Term1"><span style="layout-grid-mode: line">How does the MOF -associated with ACPI BIOS get registered?</span></p> -<p class="Def1"><span style="layout-grid-mode: line">It is either a resource -attached to Wmiacpi.sys or another image file such as a resource-only DLL. -</span></p> -<p class="Term1"><span style="layout-grid-mode: line">How does a management -application discover the classes and properties provided by ASL instrumentation?</span></p> -<p class="Def1"><span style="layout-grid-mode: line">By looking in the WMI -namespace of the schema.</span></p> -<p class="Term1"><span style="layout-grid-mode: line">Is the following true? -Because very few ACPI standards exist for instrumentation, most of the ACPI -instrumented features will appear differently on each vendor�s product, and -management applications will have to be �taught� to interpret the varying -classes and methods.</span></p> -<p class="Def1"><span style="layout-grid-mode: line">Microsoft is looking at -standardizing this. Any suggestions are appreciated.</span></p> -<p class="Term1"><span style="layout-grid-mode: line">Who provides the .mof -files for standard ACPI features such as thermal monitoring?</span></p> -<p class="Def1"><span style="layout-grid-mode: line">Windows 2000 has a .mof -file for thermal zone temperature as part of the operating system and -instruments it within Acpi.sys, outside of the mapper.</span></p> -<p class="Def1"><span style="layout-grid-mode: line">Typically, .mof files are -compiled into .bmf files and attached to a driver as a resource. The .bmf files -can be in the ROM or on disk. WMI determines the location of the .mof -information by looking at the registry for the <b>MofImagePath</b> value under -the WMIACPI service. If this does not exist, then WMI looks at the <b>ImagePath</b> -value. If Wmiacpi.sys does not have a .mof resource, then WMI will query the -binary .mof GUID for the .mof information.</span></p> -<p class="Def1"><span style="layout-grid-mode: line">A driver may have a static -list of pre-built .mof files; if so, it can �dynamically� report one of them. -The mechanism is to report the file using a predefined GUID that returns a -binary .mof.</span></p> -<p class="Def1"><span style="layout-grid-mode: line">To dynamically build a .mof -file, a driver would have to build a .mof file and then launch the .mof -compiler, which is difficult. Currently, to do this on the machine running -Wmiacpi.sys, the <b>mofcomp</b> command can be used to load the .mof file -directly into the CIMOM database. </span></p> -<div style="mso-border-top-alt: solid windowtext .5pt; border-left: medium none; border-right: medium none; border-top: 1.0pt solid windowtext; border-bottom: medium none; padding-left: 0in; padding-right: 0in; padding-top: 1.0pt; padding-bottom: 0in"> - <h1><a name="_Toc440694675"><span style="layout-grid-mode: line">ASL Methods - and Sample Code</span></a></h1> -</div> -<p class="MsoNormal"><span style="layout-grid-mode: line">The following list -represents some of the ASL methods defined by the ACPI specification. These -methods are of particular interest for systems management. None of these methods -have been implemented yet within the WMI/ACPI mapper to date. </span>A BIOS -developer, for example, could use these methods to expose data using the mapper. -<span style="layout-grid-mode: line">These methods represent good opportunities -for OEMs to differentiate their products with minimal effort:</span></p> -<p class="MsoListBullet"> -<span style="font-family: Symbol; layout-grid-mode: line">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span><span style="layout-grid-mode: line">_ACX � Temperature threshold -at which various degrees of active cooling are engaged</span></p> -<p class="MsoListBullet"> -<span style="font-family: Symbol; layout-grid-mode: line">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span><span style="layout-grid-mode: line">_CRT � Critical temperature -at which system will shut down</span></p> -<p class="MsoListBullet"> -<span style="font-family: Symbol; layout-grid-mode: line">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span><span style="layout-grid-mode: line">_PSV � Temperature at which -system will throttle CPU in order to cool system</span></p> -<p class="MsoListBullet"> -<span style="font-family: Symbol; layout-grid-mode: line">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span><span style="layout-grid-mode: line">_LID � Status of the lid -(open or closed)</span></p> -<p class="MsoListBullet"> -<span style="font-family: Symbol; layout-grid-mode: line">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span><span style="layout-grid-mode: line">_PSR� Whether the machine -running on AC </span></p> -<p class="Le"><span style="layout-grid-mode: line"> </span></p> -<p class="MsoNormal"><span style="layout-grid-mode: line">The same applies for -these method for Control Method Battery devices:</span></p> -<p class="MsoListBullet"> -<span style="font-family: Symbol; layout-grid-mode: line">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span><span style="layout-grid-mode: line">_BIF � Battery information -such as model, serial number, design capacity, last full charge capacity, -technology, and battery capacity</span></p> -<p class="MsoListBullet"> -<span style="font-family: Symbol; layout-grid-mode: line">�<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman"> -</span></span><span style="layout-grid-mode: line">_BST � Battery state, battery -present rate, battery remaining capacity, and battery voltage present</span></p> -<p class="Le"> </p> -<h2><a name="_Toc445868973"><span style="layout-grid-mode: line">ASL Sample Code -for an Event and Initiating Method</span></a></h2> -<p class="MsoNormal"><span style="layout-grid-mode: line">The following ASL code -implements an event and a method that can be called to initiate that event.</span></p> -<p class="Ex">Device(AMW0)</p> -<p class="Ex">{</p> -<p class="Ex"> // pnp0c14 is Plug and Play ID assigned to WMI mapper</p> -<p class="Ex"> Name(_HID, "*pnp0c14")</p> -<p class="Ex"> Name(_UID, 0x0)</p> -<p class="Ex"> </p> -<p class="Ex"> //</p> -<p class="Ex"> // Description of data and events supported</p> -<p class="Ex"> Name(_WDG, Buffer() {</p> -<p class="Ex" style="margin-right: -.75in"> 0x6a, 0x0f, 0xBC, 0xAB, 0xa1, -0x8e, 0xd1, 0x11, 0x00, 0xa0, 0xc9, 0x06, 0x29, 0x10, 0, 0,</p> -<p class="Ex"> 66, 65, // Object ID (BA)</p> -<p class="Ex"> 3, // Instance Count</p> -<p class="Ex"> 0x01, // Flags (WMIACPI_REGFLAG_EXPENSIVE)</p> -<p class="Ex"> </p> -<p class="Ex" style="margin-right: -.75in"> 0x6b, 0x0f, 0xBC, 0xAB, 0xa1, -0x8e, 0xd1, 0x11, 0x00, 0xa0, 0xc9, 0x06, 0x29, 0x10, 0, 0,</p> -<p class="Ex"> 66, 66, // Object ID (BB)</p> -<p class="Ex"> 3, // Instance Count</p> -<p class="Ex"> 0x02, // Flags (WMIACPI_REGFLAG_METHOD)</p> -<p class="Ex"> </p> -<p class="Ex" style="margin-right: -1.0in"> 0x6c, 0x0f, 0xBC, 0xAB, 0xa1, -0x8e, 0xd1, 0x11, 0x00, 0xa0, 0xc9, 0x06, 0x29, 0x10, 0, 0,</p> -<p class="Ex"> 0xb0, 0, // Notification ID</p> -<p class="Ex"> 1, // Instance Count</p> -<p class="Ex"> 0x08 // Flags (WMIACPI_REGFLAG_EVENT)</p> -<p class="Ex"> })</p> -<p class="Ex"> </p> -<p class="Ex"> //</p> -<p class="Ex"> // Storage for the 3 instances of BA</p> -<p class="Ex"> Name(STB0, Buffer(0x10) { </p> -<p class="Ex"> 1,0,0,0, 2,0,0,0, 3,0,0,0, 4,0,0,0</p> -<p class="Ex"> })</p> -<p class="Ex"> Name(STB1, Buffer(0x10) {</p> -<p class="Ex"> 0,1,0,0, 0,2,0,0, 0,3,0,0, 0,4,0,0</p> -<p class="Ex"> })</p> -<p class="Ex"> Name(STB2, Buffer(0x10) {</p> -<p class="Ex"> 0,0,1,0, 0,0,2,0, 0,0,3,0, 0,0,4,0</p> -<p class="Ex"> })</p> -<p class="Ex"> </p> -<p class="Ex"> //</p> -<p class="Ex"> // Query data block</p> -<p class="Ex"> // Arg0 has the instance being queried</p> -<p class="Ex"> Method(WQBA, 1) {</p> -<p class="Ex"> if (LEqual(Arg0, 0)) {</p> -<p class="Ex"> Return(STB0)</p> -<p class="Ex"> }</p> -<p class="Ex"> if (LEqual(Arg0, 1)) {</p> -<p class="Ex"> Return(STB1)</p> -<p class="Ex"> }</p> -<p class="Ex"> if (LEqual(Arg0, 2)) {</p> -<p class="Ex"> Return(STB2)</p> -<p class="Ex"> }</p> -<p class="Ex"> }</p> -<p class="Ex"> </p> -<p class="Ex" style="page-break-after: avoid"> //</p> -<p class="Ex" style="page-break-after: avoid"> // Set Data Block</p> -<p class="Ex" style="page-break-after: avoid"> // Arg0 has the instance being -queried</p> -<p class="Ex" style="page-break-after: avoid"> // Arg1 has the new value for -the data block instance</p> -<p class="Ex" style="page-break-after: avoid"> Method(WSBA, 2) {</p> -<p class="Ex" style="page-break-after: avoid"> if (LEqual(Arg0, 0)) {</p> -<p class="Ex" style="page-break-after: avoid"> Store(Arg1, STB0)</p> -<p class="Ex" style="page-break-after: avoid"> }</p> -<p class="Ex" style="page-break-after: avoid"> if (LEqual(Arg0, 1)) {</p> -<p class="Ex" style="page-break-after: avoid"> Store(Arg1, STB1)</p> -<p class="Ex" style="page-break-after: avoid"> }</p> -<p class="Ex"> if (LEqual(Arg0, 2)) {</p> -<p class="Ex"> Store(Arg1, STB2)</p> -<p class="Ex"> }</p> -<p class="Ex"> }</p> -<p class="Ex"> </p> -<p class="Ex"> //</p> -<p class="Ex"> // Storage for data block BB</p> -<p class="Ex"> Name(B0ED, Buffer(0x10) { </p> -<p class="Ex"> 0,0,0,1, 0,0,0,2, 0,0,0,3, 0,0,0,4</p> -<p class="Ex"> })</p> -<p class="Ex"> </p> -<p class="Ex"> //</p> -<p class="Ex"> // Method Execution</p> -<p class="Ex"> // Arg0 is instance being queried</p> -<p class="Ex"> // Arg1 is the method ID</p> -<p class="Ex"> // Arg2 is the method data passed</p> -<p class="Ex"> Method(WMBB, 3) {</p> -<p class="Ex"> if (LEqual(Arg1, 1))</p> -<p class="Ex"> {</p> -<p class="Ex"> Store(Arg3, B0ED)</p> -<p class="Ex"> Notify(AMW0, 0xB0)</p> -<p class="Ex"> Return(Arg3)</p> -<p class="Ex"> } else {</p> -<p class="Ex"> Return(Arg1)</p> -<p class="Ex"> }</p> -<p class="Ex"> }</p> -<p class="Ex"> </p> -<p class="Ex"> //</p> -<p class="Ex"> // More info about an event</p> -<p class="Ex"> // Arg0 is the event ID that was launched (�fired�)</p> -<p class="Ex"> Method(_WED, 1) {</p> -<p class="Ex"> if (LEqual(Arg0, 0xB0)) {</p> -<p class="Ex"> Return(B0ED)</p> -<p class="Ex"> }</p> -<p class="Ex"> }</p> -<p class="Ex"> </p> -<p class="Ex">}</p> -<p class="Ex"> </p> -<h2><a name="_Toc445868974">Sample ASL Code Embedding MOD Data in ASL</a></h2> -<p class="MsoNormal" style="page-break-after: avoid">The following sample ASL -code shows another example of implementing an event mechanism using ASL code. -It also provides an example of embedding MOF data into ASL.</p> -<p class="Ex" style="page-break-after: avoid">Device(AMW0)</p> -<p class="Ex" style="page-break-after: avoid">{</p> -<p class="Ex" style="page-break-after: avoid">//</p> -<p class="Ex" style="page-break-after: avoid">// pnp0c14 is the ID assigned by -Microsoft to the WMI to ACPI mapper</p> -<p class="Ex" style="page-break-after: avoid"> Name(_HID, "*pnp0c14")</p> -<p class="Ex" style="page-break-after: avoid"> Name(_UID, 0x0)</p> -<p class="Ex" style="page-break-after: avoid">//</p> -<p class="Ex" style="page-break-after: avoid">// _WDG evaluates to a data -structure that specifies the data blocks supported</p> -<p class="Ex" style="page-break-after: avoid">// by the ACPI device.</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -84.0pt"> -Name(_WDG, Buffer() {</p> -<p class="Ex" style="margin-right: -1.25in"> 0x5a, 0x0f, 0xBC, 0xAB, 0xa1, -0x8e, 0xd1, 0x11, 0x00, 0xa0, 0xc9, 0x06, 0x29, 0x10, 0, 0,</p> -<p class="Ex"> 65, 65, // Object ID (AA)</p> -<p class="Ex"> 2, // Instance Count</p> -<p class="Ex"> 0x01, // Flags WMIACPI_REGFLAG_EXPENSIVE</p> -<p class="Ex"> </p> -<p class="Ex" style="margin-right: -1.25in"> 0x5b, 0x0f, 0xBC, 0xAB, 0xa1, -0x8e, 0xd1, 0x11, 0x00, 0xa0, 0xc9, 0x06, 0x29, 0x10, 0, 0,</p> -<p class="Ex"> 65, 66, // Object ID (AB)</p> -<p class="Ex"> 2, // Instance Count</p> -<p class="Ex"> 0x02, // Flags WMIACPI_REGFLAG_METHOD</p> -<p class="Ex"> </p> -<p class="Ex" style="margin-right: -78.0pt"> 0x5c, 0x0f, 0xBC, 0xAB, 0xa1, -0x8e, 0xd1, 0x11, 0x00, 0xa0, 0xc9, 0x06, 0x29, 0x10, 0, 0,</p> -<p class="Ex"> 0xa0, 0, // Notification ID</p> -<p class="Ex"> 1, // Instance Count</p> -<p class="Ex"> 0x08, // Flags (WMIACPI_REGFLAG_EVENT)</p> -<p class="Ex"> </p> -<p class="Ex">//</p> -<p class="Ex">// This <span style="layout-grid-mode: line">GUID</span> for -returning the MOF data</p> -<p class="Ex"> </p> -<p class="Ex" style="margin-right: -1.25in"> 0x21, 0x12, 0x90, 0x05, 0x66, -0xd5, 0xd1, 0x11, 0xb2, 0xf0, 0x00, 0xa0, 0xc9, 0x06, 0x29, 0x10,</p> -<p class="Ex"> 66, 65, // Object ID (BA)</p> -<p class="Ex"> 1, // Instance Count</p> -<p class="Ex"> 0x00, // Flags</p> -<p class="Ex"> </p> -<p class="Ex"> })</p> -<p class="Ex"> </p> -<p class="Ex">//</p> -<p class="Ex">// Collection control method. If Arg0 is not zero then collection -for the</p> -<p class="Ex">// data block is enabled. If Arg0 is zero then collection is -disabled. If </p> -<p class="Ex">// this method does not exist then it is assumed that collection -control is</p> -<p class="Ex">// not required. Collection control is only useful when collection -of the </p> -<p class="Ex">// data block causes overhead.</p> -<p class="Ex"> Method(WCAA, 1) {</p> -<p class="Ex"> if (LEqual(Arg0, Zero)) {</p> -<p class="Ex"> // Disable collection of data</p> -<p class="Ex"> } else {</p> -<p class="Ex"> // Enable collection of data</p> -<p class="Ex"> }</p> -<p class="Ex"> }</p> -<p class="Ex"> </p> -<p class="Ex" style="page-break-after: avoid">//</p> -<p class="Ex" style="page-break-after: avoid">// Query method for data block AA. -Arg0 has the data block instance index</p> -<p class="Ex" style="page-break-after: avoid"> Method(WQAA, 1) {</p> -<p class="Ex" style="page-break-after: avoid"> if (LEqual(Arg0, Zero)) {</p> -<p class="Ex" style="page-break-after: avoid"> // Query is for first -instance of data block</p> -<p class="Ex" style="page-break-after: avoid"> return(0x10)</p> -<p class="Ex" style="page-break-after: avoid"> } else {</p> -<p class="Ex" style="page-break-after: avoid"> // Query is for second -instance of data block</p> -<p class="Ex" style="page-break-after: avoid"> return(0x20)</p> -<p class="Ex" style="page-break-after: avoid"> }</p> -<p class="Ex" style="page-break-after: avoid"> }</p> -<p class="Ex"> </p> -<p class="Ex">//</p> -<p class="Ex">// Set method for data block AA. If data block is read-only then -this method</p> -<p class="Ex">// does not need to exist. Arg0 has the instance index of the data -block,</p> -<p class="Ex">// Arg1 has the new value for the data block.</p> -<p class="Ex"> Method(WSAA, 2) {</p> -<p class="Ex"> if (LEqual(Arg0, Zero)) {</p> -<p class="Ex"> // Set is for first instance of data block</p> -<p class="Ex"> } else {</p> -<p class="Ex"> // Set is for second instance of data block</p> -<p class="Ex"> }</p> -<p class="Ex"> }</p> -<p class="Ex"> </p> -<p class="Ex">//</p> -<p class="Ex">// Event enable/disable method. If event does not need to be -armed/disarmed</p> -<p class="Ex">// then this method is not needed. Arg0 is Zero if event is being -disarmed or</p> -<p class="Ex">// non zero if event is being armed.</p> -<p class="Ex"> Name(ACEN, 0)</p> -<p class="Ex"> Method(WEA0, 1) {</p> -<p class="Ex"> Store(Arg0, ACEN)</p> -<p class="Ex"> }</p> -<p class="Ex"> </p> -<p class="Ex">//</p> -<p class="Ex">// _WED is called in response to an event launching (�firing�) to -gain additional </p> -<p class="Ex">// information about the event. Arg0 has the NotifyId for the -event launched.</p> -<p class="Ex"> Method(_WED, 1) {</p> -<p class="Ex"> if (LEqual(Arg0, 0xA0)) {</p> -<p class="Ex"> Return(0x100)</p> -<p class="Ex"> }</p> -<p class="Ex"> }</p> -<p class="Ex">//</p> -<p class="Ex">// Evaluation of this method causes the event 0xA0 to be fired. -Since it is</p> -<p class="Ex">// defined by the _WDG method it is callable via WMI. Arg0 has the -instance</p> -<p class="Ex">// index and Arg1 has any input parameters.</p> -<p class="Ex"> Method(WMAB, 3) {</p> -<p class="Ex"> //</p> -<p class="Ex"> // If event was armed then launch it</p> -<p class="Ex"> if (LEqual(ACEN, 1)) {</p> -<p class="Ex"> Notify(AMW0, 0xa0)</p> -<p class="Ex"> }</p> -<p class="Ex"> Return(Arg1)</p> -<p class="Ex"> }</p> -<p class="Ex"> </p> -<p class="Ex" style="page-break-after: avoid"> Name(WQBA, Buffer(926) {</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x46, -0x4f, 0x4d, 0x42, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x03, 0x00, 0x00, 0xf6, 0x0f, -0x00, 0x00,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x44, -0x53, 0x00, 0x01, 0x1a, 0x7d, 0xda, 0x54, 0x98, 0xdd, 0x87, 0x00, 0x01, 0x06, -0x18, 0x42,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x10, -0x0b, 0x10, 0x0a, 0x0b, 0x21, 0x02, 0xcb, 0x82, 0x50, 0x3c, 0x18, 0x14, 0xa0, -0x25, 0x41,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0xc8, -0x05, 0x14, 0x55, 0x02, 0x21, 0xc3, 0x02, 0x14, 0x0b, 0x70, 0x2e, 0x40, 0xba, -0x00, 0xe5,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x28, -0x72, 0x0c, 0x22, 0x82, 0xfd, 0xfb, 0x07, 0xc1, 0x90, 0x02, 0x08, 0x29, 0x84, -0x90, 0x08,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x58, -0x2a, 0x04, 0x8d, 0x10, 0xf4, 0x2b, 0x00, 0xa1, 0x43, 0x01, 0x32, 0x05, 0x18, -0x14, 0xe0,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x14, -0x41, 0x04, 0x41, 0x62, 0x17, 0x2e, 0xc0, 0x34, 0x8c, 0x06, 0xd0, 0x36, 0x8a, -0x64, 0x0b,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0xb0, -0x0c, 0x2e, 0x98, 0xa3, 0x08, 0x92, 0xa0, 0xc6, 0x09, 0xa0, 0xc4, 0x4c, 0x00, -0xa5, 0x13,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x5c, -0x36, 0x05, 0x58, 0xc4, 0x96, 0x50, 0x14, 0x0d, 0x22, 0x4a, 0x82, 0x13, 0xea, -0x1b, 0x41,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x13, -0x2a, 0x57, 0x80, 0x64, 0x78, 0x69, 0x1e, 0x81, 0xac, 0xcf, 0x41, 0x93, 0xf2, -0x04, 0xb8,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x9a, -0x05, 0x7a, 0x8c, 0x34, 0xff, 0x30, 0x41, 0x99, 0x14, 0x43, 0x0e, 0x20, 0x24, -0x71, 0x98,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0xa0, -0x9d, 0x59, 0xed, 0x18, 0xd2, 0x3d, 0x07, 0x32, 0x4d, 0x60, 0x21, 0x70, 0x9e, -0xb8, 0x19,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0xa0, -0xf0, 0x5b, 0x1d, 0x80, 0xe0, 0x2b, 0x1d, 0x15, 0xd2, 0xeb, 0x34, 0x64, 0x72, -0x46, 0x48,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0xf8, -0xff, 0x7f, 0x02, 0x26, 0xe3, 0xb7, 0x60, 0x02, 0xa5, 0xd9, 0xb2, 0x82, 0x4b, -0x80, 0xc1,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x68, -0x00, 0x91, 0xa2, 0x69, 0xa3, 0xe6, 0xea, 0xf9, 0x36, 0x8f, 0xaf, 0x59, 0x7a, -0x9e, 0x47,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x7a, -0x34, 0x56, 0x36, 0x05, 0xd4, 0xf8, 0x3d, 0x9d, 0x93, 0xf3, 0x4c, 0x02, 0x1e, -0x9c, 0x61,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x4e, -0x87, 0x83, 0xf1, 0xb1, 0xb1, 0x51, 0x70, 0x74, 0x03, 0xb2, 0x31, 0x38, 0xc6, -0xb0, 0xd1,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x73, -0x39, 0x81, 0x47, 0x82, 0x43, 0x89, 0x7e, 0x0e, 0x6f, 0x00, 0x47, 0x17, 0xe3, -0x04, 0xce,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x27, -0xc1, 0x61, 0x06, 0x39, 0xe3, 0x33, 0xf4, 0x44, 0x2c, 0x68, 0xd6, 0x02, 0x0a, -0x62, 0xa4,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x58, -0xa7, 0xf5, 0x7c, 0x10, 0x8b, 0x41, 0x05, 0x8b, 0x11, 0xdb, 0x50, 0x87, 0x60, -0x18, 0x8b,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x46, -0x11, 0xc8, 0x49, 0x3c, 0x49, 0x30, 0x94, 0x40, 0x51, 0x0c, 0x12, 0xda, 0xc3, -0x36, 0x92,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x81, -0xcf, 0xdb, 0x20, 0xc7, 0x84, 0x51, 0x01, 0x21, 0xcf, 0xe3, 0xd0, 0x28, 0x4d, -0xd0, 0xfd,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x29, -0x40, 0x37, 0x8b, 0x08, 0x67, 0x54, 0xd8, 0x44, 0x64, 0x6d, 0x02, 0xb2, 0x25, -0x40, 0x1c,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0xbe, -0x40, 0x1a, 0x43, 0x11, 0x44, 0x84, 0x98, 0x51, 0x8c, 0x19, 0x30, 0x82, 0x51, -0x0e, 0xa6,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x39, -0x10, 0x69, 0x13, 0x30, 0xf6, 0x20, 0xd1, 0x62, 0x31, 0x04, 0xdb, 0x9f, 0x83, -0x30, 0x0e,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x05, -0xa3, 0x03, 0x42, 0xe7, 0x84, 0xc3, 0x3b, 0x30, 0x9f, 0x1e, 0x4c, 0x70, 0xda, -0xcf, 0x07,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0xaf, -0x0b, 0x21, 0x8b, 0x17, 0x20, 0x0d, 0x43, 0xf8, 0x09, 0x6a, 0x7d, 0x51, 0xe8, -0x5a, 0xe0,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x34, -0xe0, 0xa8, 0xeb, 0x82, 0x6f, 0x01, 0xbe, 0x01, 0x9c, 0xe0, 0xe3, 0x85, 0xf1, -0x83, 0x1c,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0xc1, -0x01, 0x3c, 0x44, 0xbc, 0x1a, 0x78, 0x08, 0x9e, 0xc3, 0xfb, 0x05, 0x3b, 0x0f, -0x60, 0xff,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0xff, -0x04, 0x5d, 0xe3, 0xe9, 0x92, 0x70, 0x02, 0x96, 0x83, 0x86, 0x1a, 0xac, 0x2f, -0x00, 0x27,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0xe9, -0xc1, 0x1a, 0xae, 0xae, 0xd3, 0x06, 0x7a, 0xba, 0xa7, 0x72, 0x5a, 0xa5, 0x0a, -0x30, 0x7b,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x94, -0x20, 0x04, 0xcf, 0x1e, 0x6c, 0xde, 0x67, 0x73, 0xe6, 0x09, 0x9e, 0x14, 0x3c, -0x05, 0x3e,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x2d, -0xcf, 0xd2, 0x97, 0x0e, 0x5f, 0x09, 0x7c, 0x9f, 0x30, 0x41, 0xf4, 0x27, 0x17, -0x36, 0x1a,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0xb8, -0xc3, 0xc6, 0x8d, 0x06, 0xce, 0xe5, 0xe0, 0xb1, 0xc3, 0x33, 0xf7, 0x5c, 0x4d, -0x50, 0xf3,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0xe5, -0x42, 0x4e, 0x66, 0x83, 0xd2, 0x03, 0xa2, 0x01, 0x3f, 0x34, 0x60, 0xd0, 0x1f, -0x19, 0xb8,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0xc8, -0x8b, 0x02, 0x95, 0x86, 0xac, 0xbf, 0x86, 0x45, 0x8d, 0x9b, 0x12, 0x58, 0xca, -0xa1, 0x82,</p> -<p class="Ex" style="margin-right: -1.25in"> 0xdc, 0x33, 0x7c, 0x9e, 0x38, -0x8c, 0x57, 0x00, 0xcf, 0xe6, 0xa0, 0x7c, 0x73, 0x71, 0xba, 0x7b,</p> -<p class="Ex" style="margin-right: -1.25in"> 0x05, 0x68, 0x66, 0x83, 0xbb, -0x51, 0x80, 0x05, 0xc3, 0xd7, 0x03, 0xdf, 0x30, 0xd8, 0xf1, 0xc3,</p> -<p class="Ex" style="margin-right: -1.25in"> 0xd7, 0x0c, 0x36, 0x24, 0x83, -0x45, 0x89, 0x14, 0x9b, 0x4d, 0xca, 0x03, 0xc0, 0xe0, 0xbd, 0xd7,</p> -<p class="Ex" style="margin-right: -1.25in"> 0xf8, 0x70, 0x61, 0x48, 0x9f, -0x31, 0xe0, 0x1e, 0x05, 0xe0, 0xfd, 0xff, 0xcf, 0x09, 0xe0, 0xb8,</p> -<p class="Ex" style="margin-right: -1.25in"> 0x6d, 0xf8, 0x2a, 0x62, 0x67, -0xf7, 0x0b, 0x5d, 0x6f, 0xb0, 0xf7, 0x1d, 0x78, 0xf8, 0x87, 0x85,</p> -<p class="Ex" style="margin-right: -1.25in"> 0xbb, 0x0b, 0x30, 0xb0, 0x13, -0xc5, 0x1c, 0x78, 0x80, 0xc7, 0x64, 0x1e, 0x78, 0xc0, 0x75, 0x96,</p> -<p class="Ex" style="margin-right: -1.25in"> 0x82, 0x3d, 0x04, 0xae, 0xfa, -0xc0, 0x83, 0xca, 0xf1, 0x6a, 0xa0, 0x67, 0x1e, 0xc0, 0xec, 0xff,</p> -<p class="Ex" style="margin-right: -1.25in"> 0xff, 0xcc, 0x03, 0x8c, 0xe0, -0x9f, 0x79, 0x80, 0x6b, 0xf4, 0x6b, 0x81, 0xde, 0x57, 0x3e, 0xf3,</p> -<p class="Ex" style="margin-right: -1.25in"> 0x00, 0x7c, 0x50, 0x79, 0x33, -0x01, 0xcd, 0xff, 0xff, 0x66, 0x02, 0xe3, 0xe0, 0xe0, 0x83, 0x88,</p> -<p class="Ex" style="margin-right: -1.25in"> 0xaf, 0x32, 0x3e, 0x11, 0x02, -0x93, 0xab, 0x09, 0x70, 0x09, 0x79, 0x27, 0xa2, 0x01, 0x07, 0x41,</p> -<p class="Ex" style="margin-right: -1.25in"> 0xaf, 0x01, 0x5c, 0x0b, 0x88, -0x66, 0xc8, 0xa6, 0x89, 0x25, 0x98, 0xe5, 0x22, 0x40, 0xef, 0x8a,</p> -<p class="Ex" style="margin-right: -1.25in"> 0x3e, 0x2a, 0xf1, 0x31, 0xfa, -0xa8, 0xc4, 0x70, 0xdf, 0x85, 0x8c, 0x7b, 0x7a, 0x67, 0xf7, 0xac,</p> -<p class="Ex" style="margin-right: -1.25in"> 0x84, 0xb9, 0x04, 0xbc, 0x8f, -0x80, 0x65, 0xf2, 0xf8, 0xd3, 0x07, 0x47, 0xf4, 0x85, 0xc1, 0x77,</p> -<p class="Ex" style="margin-right: -1.25in"> 0x23, 0x78, 0x04, 0xd5, 0x5f, -0x65, 0xa8, 0xfe, 0xbd, 0x48, 0x2f, 0x0c, 0xea, 0x2a, 0x03, 0x5c,</p> -<p class="Ex" style="margin-right: -1.25in"> 0xff, 0xff, 0x57, 0x19, 0x36, -0xc8, 0x63, 0x05, 0xcb, 0xf9, 0x11, 0x33, 0xc7, 0xd3, 0x8c, 0xe2,</p> -<p class="Ex" style="margin-right: -1.25in"> 0xa9, 0x78, 0xb8, 0xec, 0x62, -0x65, 0xef, 0x53, 0x25, 0xc7, 0x17, 0x5f, 0xab, 0xf0, 0x20, 0x8f,</p> -<p class="Ex" style="margin-right: -1.25in"> 0x31, 0xbe, 0xc3, 0x80, 0x71, -0x04, 0xef, 0x30, 0xc0, 0x35, 0xf0, 0xcb, 0x41, 0xd7, 0x40, 0xc0,</p> -<p class="Ex" style="margin-right: -1.25in"> 0xf6, 0xff, 0xff, 0x0e, 0x03, -0x96, 0xe0, 0x10, 0xba, 0x06, 0xe2, 0x64, 0x1c, 0x5b, 0xc8, 0x4d,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0xca, -0x53, 0x36, 0xc1, 0xa0, 0x13, 0xa6, 0x47, 0x40, 0xf0, 0xdc, 0x2b, 0x7c, 0x98, -0x00, 0xc7,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x48, -0x30, 0xe7, 0x08, 0x9f, 0x1f, 0x7c, 0x7d, 0x78, 0x93, 0x60, 0x37, 0x0e, 0xc3, -0xf8, 0xca,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0x07, -0x0f, 0xf2, 0x15, 0x8b, 0x5d, 0x26, 0xf8, 0x49, 0x0f, 0x6c, 0x17, 0x65, 0x70, -0xdc, 0x7f,</p> -<p class="Ex" style="page-break-after: avoid; margin-right: -1.25in"> 0xe0, -0x5c, 0x94, 0x81, 0x11, 0xee, 0xe3, 0x0f, 0xf8, 0x0f, 0xcb, 0x70, 0xfe, 0xff</p> -<p class="Ex" style="page-break-after: avoid"> })</p> -<p class="Ex" style="page-break-after: avoid"> }</p> -<p class="Ex" style="page-break-after: avoid"> </p> -<h2><a name="_Toc445868975">Sample .Mof File</a></h2> -<p class="MsoNormal" style="page-break-after: avoid">This sample .mof file -complements the previous ASL code.</p> -<p class="Ex" style="page-break-after: avoid">[abstract]</p> -<p class="Ex" style="page-break-after: avoid">class AcpiSampleBase</p> -<p class="Ex" style="page-break-after: avoid">{</p> -<p class="Ex" style="page-break-after: avoid">};</p> -<p class="Ex" style="page-break-after: avoid"> </p> -<p class="Ex" style="page-break-after: avoid">[abstract]</p> -<p class="Ex" style="page-break-after: avoid">class AcpiSampleEvent : WMIEvent</p> -<p class="Ex" style="page-break-after: avoid">{</p> -<p class="Ex" style="page-break-after: avoid">};</p> -<p class="Ex" style="page-break-after: avoid"> </p> -<p class="Ex" style="page-break-after: avoid">[Dynamic, Provider("WMIProv"),</p> -<p class="Ex" style="page-break-after: avoid"> WMI,</p> -<p class="Ex" style="page-break-after: avoid"> Description("Counter for number -of times the case has been hit"),</p> -<p class="Ex" style="page-break-after: avoid"> <span style="layout-grid-mode: line">GUID</span>("{ABBC0f5a-8ea1-11d1-A000-c90629100000}"),</p> -<p class="Ex"> locale("MS\\0x409")]</p> -<p class="Ex">class MachineHitSensor : AcpiSampleBase</p> -<p class="Ex">{</p> -<p class="Ex"> [key, read]</p> -<p class="Ex"> string InstanceName;</p> -<p class="Ex"> [read] Boolean Active;</p> -<p class="Ex"> </p> -<p class="Ex"> [WmiDataId(1),</p> -<p class="Ex"> Description("Number of times the case sensor determined that -the machine has been hit"),</p> -<p class="Ex"> read</p> -<p class="Ex"> ] uint32 NumberTimesHit;</p> -<p class="Ex">};</p> -<p class="Ex"> </p> -<p class="Ex">[Dynamic, Provider("WMIProv"),</p> -<p class="Ex"> WMI,</p> -<p class="Ex"> Description("Counter for number of times the case has been hit"),</p> -<p class="Ex"> <span style="layout-grid-mode: line">GUID</span>("{ABBC0f5b-8ea1-11d1-A000-c90629100000}"),</p> -<p class="Ex"> locale("MS\\0x409")]</p> -<p class="Ex">class MachineHitSimulate : AcpiSampleBase</p> -<p class="Ex">{</p> -<p class="Ex"> [key, read]</p> -<p class="Ex"> string InstanceName;</p> -<p class="Ex"> [read] Boolean Active;</p> -<p class="Ex"> </p> -<p class="Ex"> [WmiMethodId(1),</p> -<p class="Ex"> Description("Simulate hitting the machine")</p> -<p class="Ex"> ] void HitMachine();</p> -<p class="Ex">};</p> -<p class="Ex"> </p> -<p class="Ex">[Dynamic, Provider("WMIProv"),</p> -<p class="Ex"> WMI,</p> -<p class="Ex"> Description("Event generated when machine is hit"),</p> -<p class="Ex"> <span style="layout-grid-mode: line">GUID</span>("{ABBC0f5c-8ea1-11d1-A000-c90629100000}"),</p> -<p class="Ex"> locale("MS\\0x409")]</p> -<p class="Ex">class MachineHitEvent : AcpiSampleEvent</p> -<p class="Ex">{</p> -<p class="Ex"> [key, read]</p> -<p class="Ex"> string InstanceName;</p> -<p class="Ex"> [read] Boolean Active;</p> -<p class="Ex"> </p> -<p class="Ex"> [WmiDataId(1),</p> -<p class="Ex"> Description("Force with which the machine was hit")</p> -<p class="Ex"> ] uint32 Force;</p> -<p class="Ex">};</p> -<p class="Ex"> </p> -<p class="MsoNormal">Appendix C�ASL sample code</p> -<p class="Ex">Device(WMI1) {</p> -<p class="Ex"> Name (_HID, EISAID("PNP0Cxx")) // Plug and Play ID for -mapping driver (TBD)</p> -<p class="Ex"> _UID(1)</p> -<p class="Ex"> </p> -<p class="Ex"> //</p> -<p class="Ex"> // Data block and Wmi method to Object ID mappings</p> -<p class="Ex"> Name(_WDG, Buffer() {</p> -<p class="Ex"> // Object AA - {ABBC0F5A-8EA1-11d1-A53F-00A0C9062910}</p> -<p class="Ex"> 0xABBC0F5A, 0x8ea1, 0x11d1, 0x00, 0xa0, 0xc9, 0x06, -0x29, 0x10,</p> -<p class="Ex"> `A','A', // Object ID</p> -<p class="Ex"> 1, // Instance Count</p> -<p class="Ex"> 0x04, // Flags (WMIACPI_REGFLAG_STRING)</p> -<p class="Ex"> </p> -<p class="Ex"> // Object AB - {ABBC0F5B-8EA1-11d1-A53F-00A0C9062910}</p> -<p class="Ex"> 0xABBC0F5B, 0x8ea1, 0x11d1, 0x00, 0xa0, 0xc9, 0x06, -0x29, 0x10,</p> -<p class="Ex"> `A','B', // Object ID</p> -<p class="Ex"> 2, // Instance Count</p> -<p class="Ex"> 0x01, // Flag (WMIACPI_REGFLAG_EXPENSIVE)</p> -<p class="Ex"> </p> -<p class="Ex"> // Object AC - {ABBC0F5C-8EA1-11d1-A53F-00A0C9062910}</p> -<p class="Ex"> 0xABBC0F5C, 0x8ea1, 0x11d1, 0x00, 0xa0, 0xc9, 0x06, -0x29, 0x10,</p> -<p class="Ex"> `A','C', // Object ID</p> -<p class="Ex"> 1, // Instance Count</p> -<p class="Ex"> 0x06, // Flag (WMIACPI_REGFLAG_METHOD | -_STRING)</p> -<p class="Ex"> </p> -<p class="Ex"> // Event 0x80 - {ABBC0F5D-8EA1-11d1-A53F-00A0C9062910}</p> -<p class="Ex"> 0xABBC0F5D, 0x8ea1, 0x11d1, 0x00, 0xa0, 0xc9, 0x06, -0x29, 0x10,</p> -<p class="Ex"> 0x80, // Notification value</p> -<p class="Ex"> 0, // Reserved</p> -<p class="Ex"> 0, // Instance Count (Not meaningful for -events)</p> -<p class="Ex"> 0x0D // Flags (WMIACPI_REGFLAG_EXPENSIVE | -_STRING |_EVENT)</p> -<p class="Ex"> })</p> -<p class="Ex"> </p> -<p class="Ex"> </p> -<p class="Ex"> </p> -<p class="Ex"> //</p> -<p class="Ex"> // IO ports for configuration of Object AB</p> -<p class="Ex"> OperationRegion(CAB0, SystemIo, 0xf8, 1) // Instance 0</p> -<p class="Ex"> OperationRegion(CAB1, SystemIo, 0xfc, 1) // Instance 1</p> -<p class="Ex"> OperationRegion(CABC, SystemIo, 0xf4, 1) // Enable/Disable -Collection</p> -<p class="Ex"> </p> -<p class="Ex"> Method(WQAB, 1) {</p> -<p class="Ex"> //</p> -<p class="Ex"> // Read value from IO space for instance</p> -<p class="Ex"> if (LEqual(Arg0, Zero) {</p> -<p class="Ex"> Store(CAB0, Local0)</p> -<p class="Ex"> } else {</p> -<p class="Ex"> Store(CAB1, Local0)</p> -<p class="Ex"> }</p> -<p class="Ex"> </p> -<p class="Ex"> //</p> -<p class="Ex"> // If any of the lower 3 bits are set then return TRUE, -else FALSE</p> -<p class="Ex"> if (And(Local0, 7))</p> -<p class="Ex"> Return( 0x00000001 )</p> -<p class="Ex"> } else {</p> -<p class="Ex"> Return( 0x00000000 )</p> -<p class="Ex"> }</p> -<p class="Ex"> }</p> -<p class="Ex"> </p> -<p class="Ex"> //</p> -<p class="Ex"> // Set the values for object AB</p> -<p class="Ex"> Method(WSAB, 2) {</p> -<p class="Ex"> if (LEqual(Arg0, Zero) {</p> -<p class="Ex"> // Change contents of first instance of data block -to </p> -<p class="Ex"> // values in buffer in Arg1</p> -<p class="Ex"> } else {</p> -<p class="Ex"> // Change contents of second instance of data block -to </p> -<p class="Ex"> // values in buffer in Arg1</p> -<p class="Ex"> }</p> -<p class="Ex"> }</p> -<p class="Ex"> </p> -<p class="Ex"> //</p> -<p class="Ex"> // Collection notification for object AB</p> -<p class="Ex"> Method(WCAB, 1) {</p> -<p class="Ex"> if (LEqual(Arg0, 1)</p> -<p class="Ex"> {</p> -<p class="Ex"> Store(One, CABC) // If enable, write all 1's to -port</p> -<p class="Ex"> } else {</p> -<p class="Ex"> Store(Zero, CABC) // If disable, write all 0's to -port</p> -<p class="Ex"> }</p> -<p class="Ex"> }</p> -<p class="Ex"> </p> -<p class="Ex"> </p> -<p class="Ex"> //</p> -<p class="Ex"> // Storage for maintaining values for the AA method. </p> -<p class="Ex"> Name(STAA, "XYZZY")</p> -<p class="Ex"> </p> -<p class="Ex"> Method(WQAA, 1) {</p> -<p class="Ex"> //</p> -<p class="Ex"> // Only one instance for AA so no need to check arg</p> -<p class="Ex"> return(STAA);</p> -<p class="Ex"> }</p> -<p class="Ex"> </p> -<p class="Ex"> // Data block mapped to Object AA does not support set so it -does not need</p> -<p class="Ex"> // a WSAA method</p> -<p class="Ex"> </p> -<p class="Ex"> //</p> -<p class="Ex"> // Storage for maintaining state of flag that determines -whether to fire (launch)</p> -<p class="Ex"> // the event or not. By default firing is disabled</p> -<p class="Ex"> Name(FIRE, 0)</p> -<p class="Ex"> </p> -<p class="Ex" style="page-break-after: avoid"> //</p> -<p class="Ex" style="page-break-after: avoid"> // This method will reset the -values for AA and send a notification of</p> -<p class="Ex" style="page-break-after: avoid"> // its occurrence</p> -<p class="Ex" style="page-break-after: avoid"> Method(WMAC, 3) {</p> -<p class="Ex" style="page-break-after: avoid"> Store(STAA, Local0)</p> -<p class="Ex" style="page-break-after: avoid"> Store("XYZZY", STAA)</p> -<p class="Ex" style="page-break-after: avoid"> if (LEqual(FIRE, 1))</p> -<p class="Ex"> {</p> -<p class="Ex"> Notify(WMI1, 0x80)</p> -<p class="Ex"> }</p> -<p class="Ex"> Return(Local0)</p> -<p class="Ex"> }</p> -<p class="Ex"> </p> -<p class="Ex"> //</p> -<p class="Ex"> // Additional information about event</p> -<p class="Ex"> Method(_WED) {</p> -<p class="Ex"> return("Fired")</p> -<p class="Ex"> }</p> -<p class="Ex"> </p> -<p class="Ex"> //</p> -<p class="Ex"> // Event 0x80 Enable/Disable control method</p> -<p class="Ex"> Method(WE80, 1) {</p> -<p class="Ex"> Store(FIRE, Arg0)</p> -<p class="Ex"> }</p> -<p class="Ex">)</p> -<p class="Ex"> </p> -<p class="MsoNormal"><i> </i></p> -<p class="MsoNormal"> </p> - -</body> - -</html> |
