€•P›Œsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ&/translations/zh_CN/wmi/acpi-interface”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ&/translations/zh_TW/wmi/acpi-interface”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ&/translations/it_IT/wmi/acpi-interface”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ&/translations/ja_JP/wmi/acpi-interface”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ&/translations/ko_KR/wmi/acpi-interface”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ&/translations/pt_BR/wmi/acpi-interface”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ&/translations/sp_SP/wmi/acpi-interface”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ)SPDX-License-Identifier: GPL-2.0-or-later”h]”hŒ)SPDX-License-Identifier: GPL-2.0-or-later”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³Œ@/var/lib/git/docbuild/linux/Documentation/wmi/acpi-interface.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒACPI WMI interface”h]”hŒACPI WMI interface”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hXBThe ACPI WMI interface is a proprietary extension of the ACPI specification made by Microsoft to allow hardware vendors to embed WMI (Windows Management Instrumentation) objects inside their ACPI firmware. Typical functions implemented over ACPI WMI are hotkey events on modern notebooks and configuration of BIOS options.”h]”hXBThe ACPI WMI interface is a proprietary extension of the ACPI specification made by Microsoft to allow hardware vendors to embed WMI (Windows Management Instrumentation) objects inside their ACPI firmware. Typical functions implemented over ACPI WMI are hotkey events on modern notebooks and configuration of BIOS options.”…”�”}”(hhßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒPNP0C14 ACPI device”h]”hŒPNP0C14 ACPI device”…”�”}”(hhðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhíh²hh³hÇh´K ubhÞ)�”}”(hX6Discovery of WMI objects is handled by defining ACPI devices with a PNP ID of ``PNP0C14``. These devices will contain a set of ACPI buffers and methods used for mapping and execution of WMI methods and/or queries. If there exist multiple of such devices, then each device is required to have a unique ACPI UID.”h]”(hŒNDiscovery of WMI objects is handled by defining ACPI devices with a PNP ID of ”…”�”}”(hhþh²hh³Nh´NubhŒliteral”“”)�”}”(hŒ ``PNP0C14``”h]”hŒPNP0C14”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhþubhŒÝ. These devices will contain a set of ACPI buffers and methods used for mapping and execution of WMI methods and/or queries. If there exist multiple of such devices, then each device is required to have a unique ACPI UID.”…”�”}”(hhþh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khhíh²hubeh}”(h]”Œpnp0c14-acpi-device”ah ]”h"]”Œpnp0c14 acpi device”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ _WDG buffer”h]”hŒ _WDG buffer”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj(h²hh³hÇh´KubhÞ)�”}”(hŒ¸The ``_WDG`` buffer is used to discover WMI objects and is required to be static. Its internal structure consists of data blocks with a size of 20 bytes, containing the following data:”h]”(hŒThe ”…”�”}”(hj9h²hh³Nh´Nubj)�”}”(hŒ``_WDG``”h]”hŒ_WDG”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj9ubhŒ¬ buffer is used to discover WMI objects and is required to be static. Its internal structure consists of data blocks with a size of 20 bytes, containing the following data:”…”�”}”(hj9h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj(h²hubhŒtable”“”)�”}”(hhh]”hŒtgroup”“”)�”}”(hhh]”(hŒcolspec”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jchj`ubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jchj`ubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K5uh1jchj`ubhŒthead”“”)�”}”(hhh]”hŒrow”“”)�”}”(hhh]”(hŒentry”“”)�”}”(hhh]”hÞ)�”}”(hŒOffset”h]”hŒOffset”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjŠubjŽ)�”}”(hhh]”hÞ)�”}”(hŒSize (in bytes)”h]”hŒSize (in bytes)”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjŠubjŽ)�”}”(hhh]”hÞ)�”}”(hŒContent”h]”hŒContent”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj½ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjŠubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆhj…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jƒhj`ubhŒtbody”“”)�”}”(hhh]”(j‰)�”}”(hhh]”(jŽ)�”}”(hhh]”hÞ)�”}”(hŒ0x00”h]”hŒ0x00”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjèubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjåubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ16”h]”hŒ16”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjåubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ128 bit Variant 2 object GUID.”h]”hŒ128 bit Variant 2 object GUID.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjåubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆhjâubj‰)�”}”(hhh]”(jŽ)�”}”(hhh]”hÞ)�”}”(hŒ0x10”h]”hŒ0x10”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj3ubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ2”h]”hŒ2”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hjMubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj3ubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ52 character method ID or single byte notification ID.”h]”hŒ52 character method ID or single byte notification ID.”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hjdubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆhjâubj‰)�”}”(hhh]”(jŽ)�”}”(hhh]”hÞ)�”}”(hŒ0x12”h]”hŒ0x12”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K!hj„ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj�ubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ1”h]”hŒ1”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K!hj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj�ubjŽ)�”}”(hhh]”hÞ)�”}”(hŒObject instance count.”h]”hŒObject instance count.”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K!hj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆhjâubj‰)�”}”(hhh]”(jŽ)�”}”(hhh]”hÞ)�”}”(hŒ0x13”h]”hŒ0x13”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K"hjÒubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÏubjŽ)�”}”(hhh]”hÞ)�”}”(hj h]”hŒ1”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K"hjéubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÏubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ Object flags.”h]”hŒ Object flags.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K"hjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÏubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆhjâubeh}”(h]”h ]”h"]”h$]”h&]”uh1jàhj`ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1j^hj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhj(h²hh³hÇh´NubhÞ)�”}”(hŒKThe WMI object flags control whether the method or notification ID is used:”h]”hŒKThe WMI object flags control whether the method or notification ID is used:”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K%hj(h²hubhŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒ(0x1: Data block is expensive to collect.”h]”hÞ)�”}”(hjFh]”hŒ(0x1: Data block is expensive to collect.”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K'hjDubah}”(h]”h ]”h"]”h$]”h&]”uh1jBhj?h²hh³hÇh´NubjC)�”}”(hŒ%0x2: Data block contains WMI methods.”h]”hÞ)�”}”(hj]h]”hŒ%0x2: Data block contains WMI methods.”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K(hj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jBhj?h²hh³hÇh´NubjC)�”}”(hŒ&0x4: Data block contains ASCIZ string.”h]”hÞ)�”}”(hjth]”hŒ&0x4: Data block contains ASCIZ string.”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K)hjrubah}”(h]”h ]”h"]”h$]”h&]”uh1jBhj?h²hh³hÇh´NubjC)�”}”(hŒQ0x8: Data block describes a WMI event, use notification ID instead of method ID. ”h]”hÞ)�”}”(hŒP0x8: Data block describes a WMI event, use notification ID instead of method ID.”h]”hŒP0x8: Data block describes a WMI event, use notification ID instead of method ID.”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K*hj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1jBhj?h²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1j=h³hÇh´K'hj(h²hubhÞ)�”}”(hŒ¯Each WMI object GUID can appear multiple times inside a system. The method/notification ID is used to construct the ACPI method names used for interacting with the WMI object.”h]”hŒ¯Each WMI object GUID can appear multiple times inside a system. The method/notification ID is used to construct the ACPI method names used for interacting with the WMI object.”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K-hj(h²hubeh}”(h]”Œ wdg-buffer”ah ]”h"]”Œ _wdg buffer”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒWQxx ACPI methods”h]”hŒWQxx ACPI methods”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj¿h²hh³hÇh´K2ubhÞ)�”}”(hXrIf a data block does not contain WMI methods, then its content can be retrieved by this required ACPI method. The last two characters of the ACPI method name are the method ID of the data block to query. Their single parameter is an integer describing the instance which should be queried. This parameter can be omitted if the data block contains only a single instance.”h]”hXrIf a data block does not contain WMI methods, then its content can be retrieved by this required ACPI method. The last two characters of the ACPI method name are the method ID of the data block to query. Their single parameter is an integer describing the instance which should be queried. This parameter can be omitted if the data block contains only a single instance.”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K4hj¿h²hubeh}”(h]”Œwqxx-acpi-methods”ah ]”h"]”Œwqxx acpi methods”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K2ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒWSxx ACPI methods”h]”hŒWSxx ACPI methods”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjæh²hh³hÇh´K;ubhÞ)�”}”(hŒ¥Similar to the ``WQxx`` ACPI methods, except that it is optional and takes an additional buffer as its second argument. The instance argument also cannot be omitted.”h]”(hŒSimilar to the ”…”�”}”(hj÷h²hh³Nh´Nubj)�”}”(hŒ``WQxx``”h]”hŒWQxx”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj÷ubhŒŽ ACPI methods, except that it is optional and takes an additional buffer as its second argument. The instance argument also cannot be omitted.”…”�”}”(hj÷h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K=hjæh²hubeh}”(h]”Œwsxx-acpi-methods”ah ]”h"]”Œwsxx acpi methods”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K;ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒWMxx ACPI methods”h]”hŒWMxx ACPI methods”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjh²hh³hÇh´KBubhÞ)�”}”(hXNUsed for executing WMI methods associated with a data block. The last two characters of the ACPI method name are the method ID of the data block containing the WMI methods. Their first parameter is a integer describing the instance which methods should be executed. The second parameter is an integer describing the WMI method ID to execute, and the third parameter is a buffer containing the WMI method parameters. If the data block is marked as containing an ASCIZ string, then this buffer should contain an ASCIZ string. The ACPI method will return the result of the executed WMI method.”h]”hXNUsed for executing WMI methods associated with a data block. The last two characters of the ACPI method name are the method ID of the data block containing the WMI methods. Their first parameter is a integer describing the instance which methods should be executed. The second parameter is an integer describing the WMI method ID to execute, and the third parameter is a buffer containing the WMI method parameters. If the data block is marked as containing an ASCIZ string, then this buffer should contain an ASCIZ string. The ACPI method will return the result of the executed WMI method.”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KDhjh²hubeh}”(h]”Œwmxx-acpi-methods”ah ]”h"]”Œwmxx acpi methods”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KBubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒWExx ACPI methods”h]”hŒWExx ACPI methods”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjFh²hh³hÇh´KNubhÞ)�”}”(hX9Used for optionally enabling/disabling WMI events, the last two characters of the ACPI method are the notification ID of the data block describing the WMI event as hexadecimal value. Their first parameter is an integer with a value of 0 if the WMI event should be disabled, other values will enable the WMI event.”h]”hX9Used for optionally enabling/disabling WMI events, the last two characters of the ACPI method are the notification ID of the data block describing the WMI event as hexadecimal value. Their first parameter is an integer with a value of 0 if the WMI event should be disabled, other values will enable the WMI event.”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KPhjFh²hubhÞ)�”}”(hŒ’Those ACPI methods are always called even for WMI events not registered as being expensive to collect to match the behavior of the Windows driver.”h]”hŒ’Those ACPI methods are always called even for WMI events not registered as being expensive to collect to match the behavior of the Windows driver.”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KVhjFh²hubeh}”(h]”Œwexx-acpi-methods”ah ]”h"]”Œwexx acpi methods”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KNubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒWCxx ACPI methods”h]”hŒWCxx ACPI methods”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj{h²hh³hÇh´KZubhÞ)�”}”(hXSimilar to the ``WExx`` ACPI methods, except that instead of WMI events it controls data collection of data blocks registered as being expensive to collect. Thus the last two characters of the ACPI method name are the method ID of the data block to enable/disable.”h]”(hŒSimilar to the ”…”�”}”(hjŒh²hh³Nh´Nubj)�”}”(hŒ``WExx``”h]”hŒWExx”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŒubhŒñ ACPI methods, except that instead of WMI events it controls data collection of data blocks registered as being expensive to collect. Thus the last two characters of the ACPI method name are the method ID of the data block to enable/disable.”…”�”}”(hjŒh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K[hj{h²hubhÞ)�”}”(hŒjThose ACPI methods are also called before setting data blocks to match the behavior of the Windows driver.”h]”hŒjThose ACPI methods are also called before setting data blocks to match the behavior of the Windows driver.”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K`hj{h²hubeh}”(h]”Œwcxx-acpi-methods”ah ]”h"]”Œwcxx acpi methods”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KZubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ_WED ACPI method”h]”hŒ_WED ACPI method”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÂh²hh³hÇh´KdubhÞ)�”}”(hX„Used to retrieve additional WMI event data, its single parameter is a integer holding the notification ID of the event. This method should be evaluated every time an ACPI notification is received, since some ACPI implementations use a queue to store WMI event data items. This queue will overflow after a couple of WMI events are received without retrieving the associated WMI event data.”h]”hX„Used to retrieve additional WMI event data, its single parameter is a integer holding the notification ID of the event. This method should be evaluated every time an ACPI notification is received, since some ACPI implementations use a queue to store WMI event data items. This queue will overflow after a couple of WMI events are received without retrieving the associated WMI event data.”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KfhjÂh²hubeh}”(h]”Œwed-acpi-method”ah ]”h"]”Œ_wed acpi method”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KdubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ$Conversion rules for ACPI data types”h]”hŒ$Conversion rules for ACPI data types”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjéh²hh³hÇh´KmubhÞ)�”}”(hXµConsumers of the ACPI-WMI interface use binary buffers to exchange data with the WMI driver core, with the internal structure of the buffer being only know to the consumers. The WMI driver core is thus responsible for converting the data inside the buffer into an appropriate ACPI data type for consumption by the ACPI firmware. Additionally, any data returned by the various ACPI methods needs to be converted back into a binary buffer.”h]”hXµConsumers of the ACPI-WMI interface use binary buffers to exchange data with the WMI driver core, with the internal structure of the buffer being only know to the consumers. The WMI driver core is thus responsible for converting the data inside the buffer into an appropriate ACPI data type for consumption by the ACPI firmware. Additionally, any data returned by the various ACPI methods needs to be converted back into a binary buffer.”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kohjéh²hubhÞ)�”}”(hŒnThe layout of said buffers is defined by the MOF description of the WMI method or data block in question [1]_:”h]”(hŒiThe layout of said buffers is defined by the MOF description of the WMI method or data block in question ”…”�”}”(hjh²hh³Nh´NubhŒfootnote_reference”“”)�”}”(hŒ[1]_”h]”hŒ1”…”�”}”(hjh²hh³Nh´Nubah}”(h]”Œid1”ah ]”h"]”h$]”h&]”Œrefid”Œid2”Œdocname”Œwmi/acpi-interface”uh1jhjŒresolved”KubhŒ:”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kuhjéh²hubjZ)�”}”(hhh]”j_)�”}”(hhh]”(jd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jchj3ubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”KGuh1jchj3ubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K uh1jchj3ubj„)�”}”(hhh]”j‰)�”}”(hhh]”(jŽ)�”}”(hhh]”hÞ)�”}”(hŒ Data Type”h]”hŒ Data Type”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KyhjZubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjWubjŽ)�”}”(hhh]”hÞ)�”}”(hŒLayout”h]”hŒLayout”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kyhjqubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjWubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ Alignment”h]”hŒ Alignment”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kyhjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjWubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆhjTubah}”(h]”h ]”h"]”h$]”h&]”uh1jƒhj3ubjá)�”}”(hhh]”(j‰)�”}”(hhh]”(jŽ)�”}”(hhh]”hÞ)�”}”(hŒ ``string``”h]”j)�”}”(hj¶h]”hŒstring”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K{hj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj®ubjŽ)�”}”(hhh]”hÞ)�”}”(hXwStarts with an unsigned 16-bit little endian integer specifying the length of the string data in bytes, followed by the string data encoded as UTF-16LE with **optional** NULL termination and padding. Keep in mind that some firmware implementations might depend on the terminating NULL character to be present. Also the padding should always be performed with NULL characters.”h]”(hŒ�Starts with an unsigned 16-bit little endian integer specifying the length of the string data in bytes, followed by the string data encoded as UTF-16LE with ”…”�”}”(hjÔh²hh³Nh´NubhŒstrong”“”)�”}”(hŒ **optional**”h]”hŒoptional”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÔubhŒÎ NULL termination and padding. Keep in mind that some firmware implementations might depend on the terminating NULL character to be present. Also the padding should always be performed with NULL characters.”…”�”}”(hjÔh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K{hjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj®ubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ2 bytes”h]”hŒ2 bytes”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K{hjüubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆhj«ubj‰)�”}”(hhh]”(jŽ)�”}”(hhh]”hÞ)�”}”(hŒ ``boolean``”h]”j)�”}”(hj!h]”hŒboolean”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K�hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ?Single byte where 0 means ``false`` and nonzero means ``true``.”h]”(hŒSingle byte where 0 means ”…”�”}”(hj?h²hh³Nh´Nubj)�”}”(hŒ ``false``”h]”hŒfalse”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj?ubhŒ and nonzero means ”…”�”}”(hj?h²hh³Nh´Nubj)�”}”(hŒ``true``”h]”hŒtrue”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj?ubhŒ.”…”�”}”(hj?h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K�hj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ1 byte”h]”hŒ1 byte”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K�hjwubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆhj«ubj‰)�”}”(hhh]”(jŽ)�”}”(hhh]”hÞ)�”}”(hŒ ``sint8``”h]”j)�”}”(hjœh]”hŒsint8”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjšubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‚hj—ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj”ubjŽ)�”}”(hhh]”hÞ)�”}”(hŒSigned 8-bit integer.”h]”hŒSigned 8-bit integer.”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‚hj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj”ubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ1 byte”h]”hŒ1 byte”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‚hjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆhj«ubj‰)�”}”(hhh]”(jŽ)�”}”(hhh]”hÞ)�”}”(hŒ ``uint8``”h]”j)�”}”(hjóh]”hŒuint8”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjñubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kƒhjîubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjëubjŽ)�”}”(hhh]”hÞ)�”}”(hŒUnsigned 8-bit integer.”h]”hŒUnsigned 8-bit integer.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kƒhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjëubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ1 byte”h]”hŒ1 byte”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kƒhj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjëubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆhj«ubj‰)�”}”(hhh]”(jŽ)�”}”(hhh]”hÞ)�”}”(hŒ ``sint16``”h]”j)�”}”(hjJh]”hŒsint16”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjHubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K„hjEubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjBubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ$Signed 16-bit little endian integer.”h]”hŒ$Signed 16-bit little endian integer.”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K„hjeubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjBubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ2 bytes”h]”hŒ2 bytes”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K„hj|ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjBubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆhj«ubj‰)�”}”(hhh]”(jŽ)�”}”(hhh]”hÞ)�”}”(hŒ ``uint16``”h]”j)�”}”(hj¡h]”hŒuint16”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŸubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K…hjœubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj™ubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ&Unsigned 16-bit little endian integer.”h]”hŒ&Unsigned 16-bit little endian integer.”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K…hj¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj™ubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ2 bytes”h]”hŒ2 bytes”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K…hjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj™ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆhj«ubj‰)�”}”(hhh]”(jŽ)�”}”(hhh]”hÞ)�”}”(hŒ ``sint32``”h]”j)�”}”(hjøh]”hŒsint32”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjöubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K†hjóubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjðubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ$Signed 32-bit little endian integer.”h]”hŒ$Signed 32-bit little endian integer.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K†hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjðubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ4 bytes”h]”hŒ4 bytes”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K†hj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjðubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆhj«ubj‰)�”}”(hhh]”(jŽ)�”}”(hhh]”hÞ)�”}”(hŒ ``uint32``”h]”j)�”}”(hjOh]”hŒuint32”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjMubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‡hjJubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjGubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ&Unsigned 32-bit little endian integer.”h]”hŒ&Unsigned 32-bit little endian integer.”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‡hjjubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjGubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ4 bytes”h]”hŒ4 bytes”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‡hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjGubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆhj«ubj‰)�”}”(hhh]”(jŽ)�”}”(hhh]”hÞ)�”}”(hŒ ``sint64``”h]”j)�”}”(hj¦h]”hŒsint64”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kˆhj¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjžubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ$Signed 64-bit little endian integer.”h]”hŒ$Signed 64-bit little endian integer.”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KˆhjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjžubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ8 bytes”h]”hŒ8 bytes”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KˆhjØubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjžubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆhj«ubj‰)�”}”(hhh]”(jŽ)�”}”(hhh]”hÞ)�”}”(hŒ ``uint64``”h]”j)�”}”(hjýh]”hŒuint64”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjûubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‰hjøubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjõubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ&Unsigned 64-bit little endian integer.”h]”hŒ&Unsigned 64-bit little endian integer.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‰hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjõubjŽ)�”}”(hhh]”hÞ)�”}”(hŒ8 bytes”h]”hŒ8 bytes”…”�”}”(hj2 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‰hj/ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjõubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆhj«ubj‰)�”}”(hhh]”(jŽ)�”}”(hhh]”hÞ)�”}”(hŒ ``datetime``”h]”j)�”}”(hjT h]”hŒdatetime”…”�”}”(hjV h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjR ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KŠhjO ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjL ubjŽ)�”}”(hhh]”hÞ)�”}”(hXA fixed-length 25-character UTF-16LE string with the format *yyyymmddhhmmss.mmmmmmsutc* where *yyyy* is the 4-digit year, *mm* is the 2-digit month, *dd* is the 2-digit day, *hh* is the 2-digit hour based on a 24-hour clock, *mm* is the 2-digit minute, *ss* is the 2-digit second, *mmmmmm* is the 6-digit microsecond, *s* is a plus or minus character depending on whether *utc* is a positive or negative offset from UTC (or a colon if the date is an interval). Unpopulated fields should be filled with asterisks.”h]”(hŒ