sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget-/translations/zh_CN/wmi/devices/alienware-wmimodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget-/translations/zh_TW/wmi/devices/alienware-wmimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget-/translations/it_IT/wmi/devices/alienware-wmimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget-/translations/ja_JP/wmi/devices/alienware-wmimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget-/translations/ko_KR/wmi/devices/alienware-wmimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget-/translations/sp_SP/wmi/devices/alienware-wmimodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h)SPDX-License-Identifier: GPL-2.0-or-laterh]h)SPDX-License-Identifier: GPL-2.0-or-later}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhG/var/lib/git/docbuild/linux/Documentation/wmi/devices/alienware-wmi.rsthKubhsection)}(hhh](htitle)}(h.Dell AWCC WMI interface driver (alienware-wmi)h]h.Dell AWCC WMI interface driver (alienware-wmi)}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Introductionh]h Introduction}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hX`The WMI device WMAX has been implemented for many Alienware and Dell's G-Series models. Throughout these models, two implementations have been identified. The first one, used by older systems, deals with HDMI, brightness, RGB, amplifier and deep sleep control. The second one used by newer systems deals primarily with thermal control and overclocking.h]hXbThe WMI device WMAX has been implemented for many Alienware and Dell’s G-Series models. Throughout these models, two implementations have been identified. The first one, used by older systems, deals with HDMI, brightness, RGB, amplifier and deep sleep control. The second one used by newer systems deals primarily with thermal control and overclocking.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hX It is suspected that the latter is used by Alienware Command Center (AWCC) to manage manufacturer predefined thermal profiles. The alienware-wmi driver exposes Thermal_Information and Thermal_Control methods through the Platform Profile API to mimic AWCC's behavior.h]hX It is suspected that the latter is used by Alienware Command Center (AWCC) to manage manufacturer predefined thermal profiles. The alienware-wmi driver exposes Thermal_Information and Thermal_Control methods through the Platform Profile API to mimic AWCC’s behavior.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hThis newer interface, named AWCCMethodFunction has been reverse engineered, as Dell has not provided any official documentation. We will try to describe to the best of our ability its discovered inner workings.h]hThis newer interface, named AWCCMethodFunction has been reverse engineered, as Dell has not provided any official documentation. We will try to describe to the best of our ability its discovered inner workings.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubhnote)}(hvThe following method description may be incomplete and some operations have different implementations between devices.h]h)}(hvThe following method description may be incomplete and some operations have different implementations between devices.h]hvThe following method description may be incomplete and some operations have different implementations between devices.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhhhhhhhNubh)}(hhh](h)}(hWMI interface descriptionh]hWMI interface description}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubh)}(hThe WMI interface description can be decoded from the embedded binary MOF (bmof) data using the `bmfdec `_ utility:h](h`The WMI interface description can be decoded from the embedded binary MOF (bmof) data using the }(hj1hhhNhNubh reference)}(h*`bmfdec `_h]hbmfdec}(hj;hhhNhNubah}(h]h ]h"]h$]h&]namebmfdecrefurihttps://github.com/pali/bmfdecuh1j9hj1ubhtarget)}(h! h]h}(h]bmfdecah ]h"]bmfdecah$]h&]refurijLuh1jM referencedKhj1ubh utility:}(hj1hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hj hhubh literal_block)}(hX[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("WMI Function"), guid("{A70591CE-A997-11DA-B012-B622A1EF5492}")] class AWCCWmiMethodFunction { [key, read] string InstanceName; [read] boolean Active; [WmiMethodId(13), Implemented, read, write, Description("Return Overclocking Report.")] void Return_OverclockingReport([out] uint32 argr); [WmiMethodId(14), Implemented, read, write, Description("Set OCUIBIOS Control.")] void Set_OCUIBIOSControl([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(15), Implemented, read, write, Description("Clear OC FailSafe Flag.")] void Clear_OCFailSafeFlag([out] uint32 argr); [WmiMethodId(19), Implemented, read, write, Description("Get Fan Sensors.")] void GetFanSensors([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(20), Implemented, read, write, Description("Thermal Information.")] void Thermal_Information([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(21), Implemented, read, write, Description("Thermal Control.")] void Thermal_Control([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(23), Implemented, read, write, Description("MemoryOCControl.")] void MemoryOCControl([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(26), Implemented, read, write, Description("System Information.")] void SystemInformation([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(28), Implemented, read, write, Description("Power Information.")] void PowerInformation([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(32), Implemented, read, write, Description("FW Update GPIO toggle.")] void FWUpdateGPIOtoggle([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(33), Implemented, read, write, Description("Read Total of GPIOs.")] void ReadTotalofGPIOs([out] uint32 argr); [WmiMethodId(34), Implemented, read, write, Description("Read GPIO pin Status.")] void ReadGPIOpPinStatus([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(35), Implemented, read, write, Description("Read Chassis Color.")] void ReadChassisColor([out] uint32 argr); [WmiMethodId(36), Implemented, read, write, Description("Read Platform Properties.")] void ReadPlatformProperties([out] uint32 argr); [WmiMethodId(37), Implemented, read, write, Description("Game Shift Status.")] void GameShiftStatus([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(128), Implemented, read, write, Description("Caldera SW installation.")] void CalderaSWInstallation([out] uint32 argr); [WmiMethodId(129), Implemented, read, write, Description("Caldera SW is released.")] void CalderaSWReleased([out] uint32 argr); [WmiMethodId(130), Implemented, read, write, Description("Caldera Connection Status.")] void CalderaConnectionStatus([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(131), Implemented, read, write, Description("Surprise Unplugged Flag Status.")] void SurpriseUnpluggedFlagStatus([out] uint32 argr); [WmiMethodId(132), Implemented, read, write, Description("Clear Surprise Unplugged Flag.")] void ClearSurpriseUnpluggedFlag([out] uint32 argr); [WmiMethodId(133), Implemented, read, write, Description("Cancel Undock Request.")] void CancelUndockRequest([out] uint32 argr); [WmiMethodId(135), Implemented, read, write, Description("Devices in Caldera.")] void DevicesInCaldera([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(136), Implemented, read, write, Description("Notify BIOS for SW ready to disconnect Caldera.")] void NotifyBIOSForSWReadyToDisconnectCaldera([out] uint32 argr); [WmiMethodId(160), Implemented, read, write, Description("Tobii SW installation.")] void TobiiSWinstallation([out] uint32 argr); [WmiMethodId(161), Implemented, read, write, Description("Tobii SW Released.")] void TobiiSWReleased([out] uint32 argr); [WmiMethodId(162), Implemented, read, write, Description("Tobii Camera Power Reset.")] void TobiiCameraPowerReset([out] uint32 argr); [WmiMethodId(163), Implemented, read, write, Description("Tobii Camera Power On.")] void TobiiCameraPowerOn([out] uint32 argr); [WmiMethodId(164), Implemented, read, write, Description("Tobii Camera Power Off.")] void TobiiCameraPowerOff([out] uint32 argr); };h]hX[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("WMI Function"), guid("{A70591CE-A997-11DA-B012-B622A1EF5492}")] class AWCCWmiMethodFunction { [key, read] string InstanceName; [read] boolean Active; [WmiMethodId(13), Implemented, read, write, Description("Return Overclocking Report.")] void Return_OverclockingReport([out] uint32 argr); [WmiMethodId(14), Implemented, read, write, Description("Set OCUIBIOS Control.")] void Set_OCUIBIOSControl([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(15), Implemented, read, write, Description("Clear OC FailSafe Flag.")] void Clear_OCFailSafeFlag([out] uint32 argr); [WmiMethodId(19), Implemented, read, write, Description("Get Fan Sensors.")] void GetFanSensors([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(20), Implemented, read, write, Description("Thermal Information.")] void Thermal_Information([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(21), Implemented, read, write, Description("Thermal Control.")] void Thermal_Control([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(23), Implemented, read, write, Description("MemoryOCControl.")] void MemoryOCControl([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(26), Implemented, read, write, Description("System Information.")] void SystemInformation([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(28), Implemented, read, write, Description("Power Information.")] void PowerInformation([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(32), Implemented, read, write, Description("FW Update GPIO toggle.")] void FWUpdateGPIOtoggle([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(33), Implemented, read, write, Description("Read Total of GPIOs.")] void ReadTotalofGPIOs([out] uint32 argr); [WmiMethodId(34), Implemented, read, write, Description("Read GPIO pin Status.")] void ReadGPIOpPinStatus([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(35), Implemented, read, write, Description("Read Chassis Color.")] void ReadChassisColor([out] uint32 argr); [WmiMethodId(36), Implemented, read, write, Description("Read Platform Properties.")] void ReadPlatformProperties([out] uint32 argr); [WmiMethodId(37), Implemented, read, write, Description("Game Shift Status.")] void GameShiftStatus([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(128), Implemented, read, write, Description("Caldera SW installation.")] void CalderaSWInstallation([out] uint32 argr); [WmiMethodId(129), Implemented, read, write, Description("Caldera SW is released.")] void CalderaSWReleased([out] uint32 argr); [WmiMethodId(130), Implemented, read, write, Description("Caldera Connection Status.")] void CalderaConnectionStatus([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(131), Implemented, read, write, Description("Surprise Unplugged Flag Status.")] void SurpriseUnpluggedFlagStatus([out] uint32 argr); [WmiMethodId(132), Implemented, read, write, Description("Clear Surprise Unplugged Flag.")] void ClearSurpriseUnpluggedFlag([out] uint32 argr); [WmiMethodId(133), Implemented, read, write, Description("Cancel Undock Request.")] void CancelUndockRequest([out] uint32 argr); [WmiMethodId(135), Implemented, read, write, Description("Devices in Caldera.")] void DevicesInCaldera([in] uint32 arg2, [out] uint32 argr); [WmiMethodId(136), Implemented, read, write, Description("Notify BIOS for SW ready to disconnect Caldera.")] void NotifyBIOSForSWReadyToDisconnectCaldera([out] uint32 argr); [WmiMethodId(160), Implemented, read, write, Description("Tobii SW installation.")] void TobiiSWinstallation([out] uint32 argr); [WmiMethodId(161), Implemented, read, write, Description("Tobii SW Released.")] void TobiiSWReleased([out] uint32 argr); [WmiMethodId(162), Implemented, read, write, Description("Tobii Camera Power Reset.")] void TobiiCameraPowerReset([out] uint32 argr); [WmiMethodId(163), Implemented, read, write, Description("Tobii Camera Power On.")] void TobiiCameraPowerOn([out] uint32 argr); [WmiMethodId(164), Implemented, read, write, Description("Tobii Camera Power Off.")] void TobiiCameraPowerOff([out] uint32 argr); };}hjisbah}(h]h ]h"]h$]h&]hhuh1jghhhK%hj hhubh)}(hFMethods not described in the following document have unknown behavior.h]hFMethods not described in the following document have unknown behavior.}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKHhj hhubeh}(h]wmi-interface-descriptionah ]h"]wmi interface descriptionah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hArgument Structureh]hArgument Structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKKubh)}(hXxAll input arguments have type **uint32** and their structure is very similar between methods. Usually, the first byte corresponds to a specific *operation* the method performs, and the subsequent bytes correspond to *arguments* passed to this *operation*. For example, if an operation has code 0x01 and requires an ID 0xA0, the argument you would pass to the method is 0xA001.h](hAll input arguments have type }(hjhhhNhNubhstrong)}(h **uint32**h]huint32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhh and their structure is very similar between methods. Usually, the first byte corresponds to a specific }(hjhhhNhNubhemphasis)}(h *operation*h]h operation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh= the method performs, and the subsequent bytes correspond to }(hjhhhNhNubj)}(h *arguments*h]h arguments}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh passed to this }(hjhhhNhNubj)}(h *operation*h]h operation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhz. For example, if an operation has code 0x01 and requires an ID 0xA0, the argument you would pass to the method is 0xA001.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKMhjhhubeh}(h]argument-structureah ]h"]argument structureah$]h&]uh1hhhhhhhhKKubeh}(h] introductionah ]h"] introductionah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hThermal Methodsh]hThermal Methods}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKUubh)}(hhh](h)}(h=WMI method GetFanSensors([in] uint32 arg2, [out] uint32 argr)h]h=WMI method GetFanSensors([in] uint32 arg2, [out] uint32 argr)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKXubhtable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j4hj1ubj5)}(hhh]h}(h]h ]h"]h$]h&]colwidthK$uh1j4hj1ubj5)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j4hj1ubhthead)}(hhh]hrow)}(hhh](hentry)}(hhh]h)}(hOperation (Byte 0)h]hOperation (Byte 0)}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK[hj`ubah}(h]h ]h"]h$]h&]uh1j^hj[ubj_)}(hhh]h)}(h Descriptionh]h Description}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK[hjwubah}(h]h ]h"]h$]h&]uh1j^hj[ubj_)}(hhh]h)}(h Argumentsh]h Arguments}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK[hjubah}(h]h ]h"]h$]h&]uh1j^hj[ubeh}(h]h ]h"]h$]h&]uh1jYhjVubah}(h]h ]h"]h$]h&]uh1jThj1ubhtbody)}(hhh](jZ)}(hhh](j_)}(hhh]h)}(h0x01h]h0x01}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h)}(h;Get the number of temperature sensors related with a fan IDh]h;Get the number of temperature sensors related with a fan ID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h bullet_list)}(hhh]h list_item)}(hByte 1: Fan ID h]h)}(hByte 1: Fan IDh]hByte 1: Fan ID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]bullet-uh1jhhhK]hjubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1jYhjubjZ)}(hhh](j_)}(hhh]h)}(h0x02h]h0x02}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK`hj ubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h)}(h9Get the temperature sensor IDs related to a fan sensor IDh]h9Get the temperature sensor IDs related to a fan sensor ID}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK`hj7ubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]j)}(hhh](j)}(hByte 1: Fan IDh]h)}(hjVh]hByte 1: Fan ID}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK`hjTubah}(h]h ]h"]h$]h&]uh1jhjQubj)}(h Byte 2: Indexh]h)}(hjmh]h Byte 2: Index}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKahjkubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]jjuh1jhhhK`hjNubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]colsKuh1j/hj,ubah}(h]h ]h"]h$]h&]uh1j*hjhhhNhNubeh}(h]7wmi-method-getfansensors-in-uint32-arg2-out-uint32-argrah ]h"]=wmi method getfansensors([in] uint32 arg2, [out] uint32 argr)ah$]h&]uh1hhjhhhhhKXubh)}(hhh](h)}(hCWMI method Thermal_Information([in] uint32 arg2, [out] uint32 argr)h]hCWMI method Thermal_Information([in] uint32 arg2, [out] uint32 argr)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKeubj+)}(hhh]j0)}(hhh](j5)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j4hjubj5)}(hhh]h}(h]h ]h"]h$]h&]colwidthK$uh1j4hjubj5)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j4hjubjU)}(hhh]jZ)}(hhh](j_)}(hhh]h)}(hOperation (Byte 0)h]hOperation (Byte 0)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h)}(h Descriptionh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h)}(h Argumentsh]h Arguments}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhjubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1jYhjubah}(h]h ]h"]h$]h&]uh1jThjubj)}(hhh](jZ)}(hhh](j_)}(hhh]h)}(h0x01h]h0x01}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKjhjAubah}(h]h ]h"]h$]h&]uh1j^hj>ubj_)}(hhh]h)}(hUnknown.h]hUnknown.}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKjhjXubah}(h]h ]h"]h$]h&]uh1j^hj>ubj_)}(hhh]j)}(hhh]j)}(hNoneh]h)}(hjwh]hNone}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKjhjuubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]jjuh1jhhhKjhjoubah}(h]h ]h"]h$]h&]uh1j^hj>ubeh}(h]h ]h"]h$]h&]uh1jYhj;ubjZ)}(hhh](j_)}(hhh]h)}(h0x02h]h0x02}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKlhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh](h)}(h;Get system description number with the following structure:h]h;Get system description number with the following structure:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKlhjubj)}(hhh](j)}(hByte 0: Number of fansh]h)}(hjh]hByte 0: Number of fans}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKohjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h%Byte 1: Number of temperature sensorsh]h)}(h%Byte 1: Number of temperature sensorsh]h%Byte 1: Number of temperature sensors}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKphjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hByte 2: Unknownh]h)}(hjh]hByte 2: Unknown}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKrhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h"Byte 3: Number of thermal profilesh]h)}(h"Byte 3: Number of thermal profilesh]h"Byte 3: Number of thermal profiles}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKshjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhhhKohjubeh}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]j)}(hhh]j)}(h None h]h)}(hNoneh]hNone}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKlhj<ubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]jjuh1jhhhKlhj6ubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1jYhj;ubjZ)}(hhh](j_)}(hhh]h)}(h0x03h]h0x03}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKvhjiubah}(h]h ]h"]h$]h&]uh1j^hjfubj_)}(hhh](h)}(hList an ID or resource at a given index. Fan IDs, temperature IDs, unknown IDs and thermal profile IDs are listed in that exact order.h]hList an ID or resource at a given index. Fan IDs, temperature IDs, unknown IDs and thermal profile IDs are listed in that exact order.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKvhjubh)}(hDOperation 0x02 is used to know which indexes map to which resources.h]hDOperation 0x02 is used to know which indexes map to which resources.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK|hjubh)}(h **Returns:** ID at a given indexh](j)}(h **Returns:**h]hReturns:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh ID at a given index}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1j^hjfubj_)}(hhh]j)}(hhh]j)}(hByte 1: Index h]h)}(h Byte 1: Indexh]h Byte 1: Index}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKvhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]jjuh1jhhhKvhjubah}(h]h ]h"]h$]h&]uh1j^hjfubeh}(h]h ]h"]h$]h&]uh1jYhj;ubjZ)}(hhh](j_)}(hhh]h)}(h0x04h]h0x04}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h)}(h;Get the current temperature for a given temperature sensor.h]h;Get the current temperature for a given temperature sensor.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]j)}(hhh]j)}(hByte 1: Sensor IDh]h)}(hByte 1: Sensor IDh]hByte 1: Sensor ID}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj(ubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]jjuh1jhhhKhj"ubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1jYhj;ubjZ)}(hhh](j_)}(hhh]h)}(h0x05h]h0x05}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjUubah}(h]h ]h"]h$]h&]uh1j^hjRubj_)}(hhh]h)}(h$Get the current RPM for a given fan.h]h$Get the current RPM for a given fan.}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjlubah}(h]h ]h"]h$]h&]uh1j^hjRubj_)}(hhh]j)}(hhh]j)}(hByte 1: Fan ID h]h)}(hByte 1: Fan IDh]hByte 1: Fan ID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]jjuh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjRubeh}(h]h ]h"]h$]h&]uh1jYhj;ubjZ)}(hhh](j_)}(hhh]h)}(h0x06h]h0x06}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h)}(h:Get fan speed percentage. (not implemented in every model)h]h:Get fan speed percentage. (not implemented in every model)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]j)}(hhh]j)}(hByte 1: Fan ID h]h)}(hByte 1: Fan IDh]hByte 1: Fan ID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]jjuh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1jYhj;ubjZ)}(hhh](j_)}(hhh]h)}(h0x07h]h0x07}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h)}(hUnknown.h]hUnknown.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj.ubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]j)}(hhh]j)}(hUnknownh]h)}(hjMh]hUnknown}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjKubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]jjuh1jhhhKhjEubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1jYhj;ubjZ)}(hhh](j_)}(hhh]h)}(h0x08h]h0x08}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjwubah}(h]h ]h"]h$]h&]uh1j^hjtubj_)}(hhh]h)}(h#Get minimum RPM for a given FAN ID.h]h#Get minimum RPM for a given FAN ID.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjtubj_)}(hhh]j)}(hhh]j)}(hByte 1: Fan ID h]h)}(hByte 1: Fan IDh]hByte 1: Fan ID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]jjuh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjtubeh}(h]h ]h"]h$]h&]uh1jYhj;ubjZ)}(hhh](j_)}(hhh]h)}(h0x09h]h0x09}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h)}(h#Get maximum RPM for a given FAN ID.h]h#Get maximum RPM for a given FAN ID.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]j)}(hhh]j)}(hByte 1: Fan ID h]h)}(hByte 1: Fan IDh]hByte 1: Fan ID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]jjuh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1jYhj;ubjZ)}(hhh](j_)}(hhh]h)}(h0x0Ah]h0x0A}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj9ubah}(h]h ]h"]h$]h&]uh1j^hj6ubj_)}(hhh]h)}(h Get balanced thermal profile ID.h]h Get balanced thermal profile ID.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjPubah}(h]h ]h"]h$]h&]uh1j^hj6ubj_)}(hhh]j)}(hhh]j)}(hNoneh]h)}(hjoh]hNone}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjmubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]jjuh1jhhhKhjgubah}(h]h ]h"]h$]h&]uh1j^hj6ubeh}(h]h ]h"]h$]h&]uh1jYhj;ubjZ)}(hhh](j_)}(hhh]h)}(h0x0Bh]h0x0B}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h)}(hGet current thermal profile ID.h]hGet current thermal profile ID.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]j)}(hhh]j)}(hNoneh]h)}(hjh]hNone}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]jjuh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1jYhj;ubjZ)}(hhh](j_)}(hhh]h)}(h0x0Ch]h0x0C}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h)}(h-Get current `boost` value for a given fan ID.h](h Get current }(hj hhhNhNubhtitle_reference)}(h`boost`h]hboost}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh value for a given fan ID.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]j)}(hhh]j)}(hByte 1: Fan ID h]h)}(hByte 1: Fan IDh]hByte 1: Fan ID}(hjE hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjA ubah}(h]h ]h"]h$]h&]uh1jhj> ubah}(h]h ]h"]h$]h&]jjuh1jhhhKhj; ubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1jYhj;ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1j/hjubah}(h]h ]h"]h$]h&]uh1j*hjhhhNhNubeh}(h]=wmi-method-thermal-information-in-uint32-arg2-out-uint32-argrah ]h"]Cwmi method thermal_information([in] uint32 arg2, [out] uint32 argr)ah$]h&]uh1hhjhhhhhKeubh)}(hhh](h)}(h?WMI method Thermal_Control([in] uint32 arg2, [out] uint32 argr)h]h?WMI method Thermal_Control([in] uint32 arg2, [out] uint32 argr)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubj+)}(hhh]j0)}(hhh](j5)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j4hj ubj5)}(hhh]h}(h]h ]h"]h$]h&]colwidthK$uh1j4hj ubj5)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j4hj ubjU)}(hhh]jZ)}(hhh](j_)}(hhh]h)}(hOperation (Byte 0)h]hOperation (Byte 0)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hj ubj_)}(hhh]h)}(h Descriptionh]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hj ubj_)}(hhh]h)}(h Argumentsh]h Arguments}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hj ubeh}(h]h ]h"]h$]h&]uh1jYhj ubah}(h]h ]h"]h$]h&]uh1jThj ubj)}(hhh](jZ)}(hhh](j_)}(hhh]h)}(h0x01h]h0x01}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hj ubj_)}(hhh]h)}(h!Activate a given thermal profile.h]h!Activate a given thermal profile.}(hj2 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj/ ubah}(h]h ]h"]h$]h&]uh1j^hj ubj_)}(hhh]j)}(hhh]j)}(hByte 1: Thermal profile IDh]h)}(hByte 1: Thermal profile IDh]hByte 1: Thermal profile ID}(hjP hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjL ubah}(h]h ]h"]h$]h&]uh1jhjI ubah}(h]h ]h"]h$]h&]jjuh1jhhhKhjF ubah}(h]h ]h"]h$]h&]uh1j^hj ubeh}(h]h ]h"]h$]h&]uh1jYhj ubjZ)}(hhh](j_)}(hhh]h)}(h0x02h]h0x02}(hj| hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjy ubah}(h]h ]h"]h$]h&]uh1j^hjv ubj_)}(hhh]h)}(h'Set a `boost` value for a given fan ID.h](hSet a }(hj hhhNhNubj )}(h`boost`h]hboost}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh value for a given fan ID.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hjv ubj_)}(hhh]j)}(hhh](j)}(hByte 1: Fan IDh]h)}(hj h]hByte 1: Fan ID}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(h Byte 2: Boosth]h)}(hj h]h Byte 2: Boost}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]jjuh1jhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hjv ubeh}(h]h ]h"]h$]h&]uh1jYhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]colsKuh1j/hj ubah}(h]h ]h"]h$]h&]uh1j*hj hhhNhNubh)}(h*These are the known thermal profile codes:h]h*These are the known thermal profile codes:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubj+)}(hhh]j0)}(hhh](j5)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j4hj# ubj5)}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1j4hj# ubj5)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j4hj# ubjU)}(hhh]jZ)}(hhh](j_)}(hhh]h)}(hThermal Profileh]hThermal Profile}(hjM hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJ ubah}(h]h ]h"]h$]h&]uh1j^hjG ubj_)}(hhh]h)}(hTypeh]hType}(hjd hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhja ubah}(h]h ]h"]h$]h&]uh1j^hjG ubj_)}(hhh]h)}(hIDh]hID}(hj{ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjx ubah}(h]h ]h"]h$]h&]uh1j^hjG ubeh}(h]h ]h"]h$]h&]uh1jYhjD ubah}(h]h ]h"]h$]h&]uh1jThj# ubj)}(hhh](jZ)}(hhh](j_)}(hhh]h)}(hCustomh]hCustom}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hj ubj_)}(hhh]h)}(hSpecialh]hSpecial}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hj ubj_)}(hhh]h)}(h0x00h]h0x00}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hj ubeh}(h]h ]h"]h$]h&]uh1jYhj ubjZ)}(hhh](j_)}(hhh]h)}(hG-Modeh]hG-Mode}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hj ubj_)}(hhh]h)}(hSpecialh]hSpecial}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hj ubj_)}(hhh]h)}(h0xABh]h0xAB}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hj ubeh}(h]h ]h"]h$]h&]uh1jYhj ubjZ)}(hhh](j_)}(hhh]h)}(hQuieth]hQuiet}(hj@ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj= ubah}(h]h ]h"]h$]h&]uh1j^hj: ubj_)}(hhh]h)}(hLegacyh]hLegacy}(hjW hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjT ubah}(h]h ]h"]h$]h&]uh1j^hj: ubj_)}(hhh]h)}(h0x96h]h0x96}(hjn hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjk ubah}(h]h ]h"]h$]h&]uh1j^hj: ubeh}(h]h ]h"]h$]h&]uh1jYhj ubjZ)}(hhh](j_)}(hhh]h)}(hBalancedh]hBalanced}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hj ubj_)}(hhh]h)}(hLegacyh]hLegacy}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hj ubj_)}(hhh]h)}(h0x97h]h0x97}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hj ubeh}(h]h ]h"]h$]h&]uh1jYhj ubjZ)}(hhh](j_)}(hhh]h)}(hBalanced Performanceh]hBalanced Performance}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hj ubj_)}(hhh]h)}(hLegacyh]hLegacy}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hj ubj_)}(hhh]h)}(h0x98h]h0x98}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hj ubeh}(h]h ]h"]h$]h&]uh1jYhj ubjZ)}(hhh](j_)}(hhh]h)}(h Performanceh]h Performance}(hj* hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj' ubah}(h]h ]h"]h$]h&]uh1j^hj$ ubj_)}(hhh]h)}(hLegacyh]hLegacy}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj> ubah}(h]h ]h"]h$]h&]uh1j^hj$ ubj_)}(hhh]h)}(h0x99h]h0x99}(hjX hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjU ubah}(h]h ]h"]h$]h&]uh1j^hj$ ubeh}(h]h ]h"]h$]h&]uh1jYhj ubjZ)}(hhh](j_)}(hhh]h)}(hBalancedh]hBalanced}(hjx hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhju ubah}(h]h ]h"]h$]h&]uh1j^hjr ubj_)}(hhh]h)}(hUSTTh]hUSTT}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hjr ubj_)}(hhh]h)}(h0xA0h]h0xA0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hjr ubeh}(h]h ]h"]h$]h&]uh1jYhj ubjZ)}(hhh](j_)}(hhh]h)}(hBalanced Performanceh]hBalanced Performance}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hj ubj_)}(hhh]h)}(hUSTTh]hUSTT}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hj ubj_)}(hhh]h)}(h0xA1h]h0xA1}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j^hj ubeh}(h]h ]h"]h$]h&]uh1jYhj ubjZ)}(hhh](j_)}(hhh]h)}(hCoolh]hCool}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h)}(hUSTTh]hUSTT}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj(ubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h)}(h0xA2h]h0xA2}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj?ubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1jYhj ubjZ)}(hhh](j_)}(hhh]h)}(hQuieth]hQuiet}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj_ubah}(h]h ]h"]h$]h&]uh1j^hj\ubj_)}(hhh]h)}(hUSTTh]hUSTT}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjvubah}(h]h ]h"]h$]h&]uh1j^hj\ubj_)}(hhh]h)}(h0xA3h]h0xA3}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hj\ubeh}(h]h ]h"]h$]h&]uh1jYhj ubjZ)}(hhh](j_)}(hhh]h)}(h Performanceh]h Performance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h)}(hUSTTh]hUSTT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h)}(h0xA4h]h0xA4}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1jYhj ubjZ)}(hhh](j_)}(hhh]h)}(h Low Powerh]h Low Power}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h)}(hUSTTh]hUSTT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h)}(h0xA5h]h0xA5}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj)ubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1jYhj ubeh}(h]h ]h"]h$]h&]uh1jhj# ubeh}(h]h ]h"]h$]h&]colsKuh1j/hj ubah}(h]h ]h"]h$]h&]uh1j*hj hhhhhNubh)}(hIf a model supports the User Selectable Thermal Tables (USTT) profiles, it will not support the Legacy profiles and vice-versa.h]hIf a model supports the User Selectable Thermal Tables (USTT) profiles, it will not support the Legacy profiles and vice-versa.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(hgEvery model supports the CUSTOM (0x00) thermal profile. GMODE replaces PERFORMANCE in G-Series laptops.h]hgEvery model supports the CUSTOM (0x00) thermal profile. GMODE replaces PERFORMANCE in G-Series laptops.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubeh}(h]9wmi-method-thermal-control-in-uint32-arg2-out-uint32-argrah ]h"]?wmi method thermal_control([in] uint32 arg2, [out] uint32 argr)ah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(h?WMI method GameShiftStatus([in] uint32 arg2, [out] uint32 argr)h]h?WMI method GameShiftStatus([in] uint32 arg2, [out] uint32 argr)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}hhhhhKubj+)}(hhh]j0)}(hhh](j5)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j4hjubj5)}(hhh]h}(h]h ]h"]h$]h&]colwidthK$uh1j4hjubj5)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j4hjubjU)}(hhh]jZ)}(hhh](j_)}(hhh]h)}(hOperation (Byte 0)h]hOperation (Byte 0)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h)}(h Descriptionh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h)}(h Argumentsh]h Arguments}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1jYhjubah}(h]h ]h"]h$]h&]uh1jThjubj)}(hhh](jZ)}(hhh](j_)}(hhh]h)}(h0x01h]h0x01}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hj ubj_)}(hhh]h)}(hToggle *Game Shift*.h](hToggle }(hj)hhhNhNubj)}(h *Game Shift*h]h Game Shift}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubh.}(hj)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj&ubah}(h]h ]h"]h$]h&]uh1j^hj ubj_)}(hhh]j)}(hhh]j)}(hNoneh]h)}(hjWh]hNone}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjUubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]jjuh1jhhhKhjOubah}(h]h ]h"]h$]h&]uh1j^hj ubeh}(h]h ]h"]h$]h&]uh1jYhj ubjZ)}(hhh](j_)}(hhh]h)}(h0x02h]h0x02}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hj~ubj_)}(hhh]h)}(hGet *Game Shift* status.h](hGet }(hjhhhNhNubj)}(h *Game Shift*h]h Game Shift}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh status.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hj~ubj_)}(hhh]j)}(hhh]j)}(hNoneh]h)}(hjh]hNone}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]jjuh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hj~ubeh}(h]h ]h"]h$]h&]uh1jYhj ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1j/hjubah}(h]h ]h"]h$]h&]uh1j*hj}hhhNhNubh)}(hGame Shift Status does not change the fan speed profile but it could be some sort of CPU/GPU power profile. Benchmarks have not been done.h]hGame Shift Status does not change the fan speed profile but it could be some sort of CPU/GPU power profile. Benchmarks have not been done.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj}hhubh)}(hThis method is only present on Dell's G-Series laptops and it's implementation implies GMODE thermal profile is available, even if operation 0x03 of Thermal_Information does not list it.h]hThis method is only present on Dell’s G-Series laptops and it’s implementation implies GMODE thermal profile is available, even if operation 0x03 of Thermal_Information does not list it.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj}hhubh)}(h^G-key on Dell's G-Series laptops also changes Game Shift status, so both are directly related.h]h`G-key on Dell’s G-Series laptops also changes Game Shift status, so both are directly related.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj}hhubeh}(h]9wmi-method-gameshiftstatus-in-uint32-arg2-out-uint32-argrah ]h"]?wmi method gameshiftstatus([in] uint32 arg2, [out] uint32 argr)ah$]h&]uh1hhjhhhhhKubeh}(h]thermal-methodsah ]h"]thermal methodsah$]h&]uh1hhhhhhhhKUubh)}(hhh](h)}(hOverclocking Methodsh]hOverclocking Methods}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=hhhhhKubh)}(hhh](h)}(h?WMI method MemoryOCControl([in] uint32 arg2, [out] uint32 argr)h]h?WMI method MemoryOCControl([in] uint32 arg2, [out] uint32 argr)}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhhhhhKubh)}(heAWCC supports memory overclocking, but this method is very intricate and has not been deciphered yet.h]heAWCC supports memory overclocking, but this method is very intricate and has not been deciphered yet.}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjNhhubeh}(h]9wmi-method-memoryoccontrol-in-uint32-arg2-out-uint32-argrah ]h"]?wmi method memoryoccontrol([in] uint32 arg2, [out] uint32 argr)ah$]h&]uh1hhj=hhhhhKubeh}(h]overclocking-methodsah ]h"]overclocking methodsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hGPIO control Methodsh]hGPIO control Methods}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}hhhhhKubh)}(hAlienware and Dell G Series devices with the AWCC interface usually have an embedded STM32 RGB lighting controller with USB/HID capabilities. It's vendor ID is ``187c`` while it's product ID may vary from model to model.h](hAlienware and Dell G Series devices with the AWCC interface usually have an embedded STM32 RGB lighting controller with USB/HID capabilities. It’s vendor ID is }(hjhhhNhNubhliteral)}(h``187c``h]h187c}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh6 while it’s product ID may vary from model to model.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj}hhubh)}(hZThe control of two GPIO pins of this MCU is exposed as WMI methods for debugging purposes.h]hZThe control of two GPIO pins of this MCU is exposed as WMI methods for debugging purposes.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj}hhubj+)}(hhh]j0)}(hhh](j5)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j4hjubj5)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j4hjubj5)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j4hjubjU)}(hhh]jZ)}(hhh](j_)}(hhh]h)}(hPinh]hPin}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h)}(h Descriptionh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]morecolsKuh1j^hjubeh}(h]h ]h"]h$]h&]uh1jYhjubah}(h]h ]h"]h$]h&]uh1jThjubj)}(hhh](jZ)}(hhh](j_)}(hhh]h)}(h0h]h0}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj)ubah}(h]h ]h"]h$]h&]morerowsKuh1j^hj&ubj_)}(hhh]h)}(h&Device Firmware Update (DFU) mode pin.h]h&Device Firmware Update (DFU) mode pin.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjAubah}(h]h ]h"]h$]h&]morerowsKuh1j^hj&ubj_)}(hhh]h)}(h,**HIGH**: Enables DFU mode on next MCU boot.h](j)}(h**HIGH**h]hHIGH}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubh$: Enables DFU mode on next MCU boot.}(hj\hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjYubah}(h]h ]h"]h$]h&]uh1j^hj&ubeh}(h]h ]h"]h$]h&]uh1jYhj#ubjZ)}(hhh]j_)}(hhh]h)}(h,**LOW**: Disables DFU mode on next MCU boot.h](j)}(h**LOW**h]hLOW}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh%: Disables DFU mode on next MCU boot.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubah}(h]h ]h"]h$]h&]uh1jYhj#ubjZ)}(hhh](j_)}(hhh]h)}(h1h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]morerowsKuh1j^hjubj_)}(hhh]h)}(hNegative Reset (NRST) pin.h]hNegative Reset (NRST) pin.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]morerowsKuh1j^hjubj_)}(hhh]h)}(h**HIGH**: MCU is ON.h](j)}(h**HIGH**h]hHIGH}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh : MCU is ON.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1jYhj#ubjZ)}(hhh]j_)}(hhh]h)}(h**LOW**: MCU is OFF.h](j)}(h**LOW**h]hLOW}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh : MCU is OFF.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j^hjubah}(h]h ]h"]h$]h&]uh1jYhj#ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1j/hjubah}(h]h ]h"]h$]h&]uh1j*hj}hhhhhNubh)}(h=See :ref:`acknowledgements` for more information on this MCU.h](hSee }(hjQhhhNhNubh)}(h:ref:`acknowledgements`h]hinline)}(hj[h]hacknowledgements}(hj_hhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1j]hjYubah}(h]h ]h"]h$]h&]refdocwmi/devices/alienware-wmi refdomainjjreftyperef refexplicitrefwarn reftargetacknowledgementsuh1hhhhMhjQubh" for more information on this MCU.}(hjQhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj}hhubj)}(hSome GPIO control methods break the usual argument structure and take a **Pin number** instead of an operation on the first byte.h]h)}(hSome GPIO control methods break the usual argument structure and take a **Pin number** instead of an operation on the first byte.h](hHSome GPIO control methods break the usual argument structure and take a }(hjhhhNhNubj)}(h**Pin number**h]h Pin number}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh+ instead of an operation on the first byte.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhj}hhhhhNubh)}(hhh](h)}(hBWMI method FWUpdateGPIOtoggle([in] uint32 arg2, [out] uint32 argr)h]hBWMI method FWUpdateGPIOtoggle([in] uint32 arg2, [out] uint32 argr)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM ubj+)}(hhh]j0)}(hhh](j5)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j4hjubj5)}(hhh]h}(h]h ]h"]h$]h&]colwidthK$uh1j4hjubj5)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j4hjubjU)}(hhh]jZ)}(hhh](j_)}(hhh]h)}(hOperation (Byte 0)h]hOperation (Byte 0)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h)}(h Descriptionh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j^hjubj_)}(hhh]h)}(h Argumentsh]h Arguments}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1jYhjubah}(h]h ]h"]h$]h&]uh1jThjubj)}(hhh]jZ)}(hhh](j_)}(hhh]h)}(h Pin numberh]h Pin number}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjDubah}(h]h ]h"]h$]h&]uh1j^hjAubj_)}(hhh]h)}(hSet the pin statush]hSet the pin status}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj[ubah}(h]h ]h"]h$]h&]uh1j^hjAubj_)}(hhh]j)}(hhh]j)}(hByte 1: Pin statush]h)}(hByte 1: Pin statush]hByte 1: Pin status}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjxubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]jjuh1jhhhMhjrubah}(h]h ]h"]h$]h&]uh1j^hjAubeh}(h]h ]h"]h$]h&]uh1jYhj>ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1j/hjubah}(h]h ]h"]h$]h&]uh1j*hjhhhNhNubeh}(h]`_h]h)}(hjyh](j:)}(hjyh]hAlexIII}(hj~hhhNhNubah}(h]h ]h"]h$]h&]nameAlexIIIjK"https://github.com/AlexIII/tcc-g15uh1j9hj{ubjN)}(h% h]h}(h]alexiiiah ]h"]alexiiiah$]h&]refuri,juh1jMj\Khj{ubeh}(h]h ]h"]h$]h&]uh1hhhhM=hjwubah}(h]h ]h"]h$]h&]uh1jhjthhhhhNubj)}(h6`T-Troll `_h]h)}(hjh](j:)}(hjh]hT-Troll}(hjhhhNhNubah}(h]h ]h"]h$]h&]nameT-TrolljK)https://github.com/T-Troll/alienfx-tools/uh1j9hjubjN)}(h, h]h}(h]t-trollah ]h"]t-trollah$]h&]refurijuh1jMj\Khjubeh}(h]h ]h"]h$]h&]uh1hhhhM>hjubah}(h]h ]h"]h$]h&]uh1jhjthhhhhNubj)}(h`Gabriel Marcano `_ h]h)}(h`Gabriel Marcano `_h](j:)}(hjh]hGabriel Marcano}(hjhhhNhNubah}(h]h ]h"]h$]h&]nameGabriel MarcanojKyhttps://gabriel.marcanobrady.family/blog/2024/12/16/dell-g5-5505-se-acpi-or-figuring-out-how-to-reset-the-rgb-controller/uh1j9hjubjN)}(h| h]h}(h]gabriel-marcanoah ]h"]gabriel marcanoah$]h&]refurijuh1jMj\Khjubeh}(h]h ]h"]h$]h&]uh1hhhhM?hjubah}(h]h ]h"]h$]h&]uh1jhjthhhhhNubeh}(h]h ]h"]h$]h&]j*uh1jhhhM=hjUhhubh)}(hnfor documenting and testing some of this device's functionality, making it possible to generalize this driver.h]hpfor documenting and testing some of this device’s functionality, making it possible to generalize this driver.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMAhjUhhubeh}(h](jDid1eh ]h"]acknowledgementsah$]acknowledgementsah&]uh1hhhhhhhhM9j\Kexpect_referenced_by_name}j"j9sexpect_referenced_by_id}jDj9subeh}(h],dell-awcc-wmi-interface-driver-alienware-wmiah ]h"].dell awcc wmi interface driver (alienware-wmi)ah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksj^footnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjTerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}jD]j9asnameids}(j/j,jjjjjXjUjjj:j7jjj j jzjwj2j/jzjwjrjojjjjjjjjjRjOjJjGj"jDjjjjjju nametypes}(j/jjjXjj:jj jzj2jzjrjjjjjRjJj"jjjuh}(j,hjhjj jUjOjjj7jjjj jjwj j/j}jwj=jojNjj}jjjjjjjOj jGjjDjUjjUjjjjjju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}jbKsRparse_messages]hsystem_message)}(hhh]h)}(h3Duplicate implicit target name: "acknowledgements".h]h7Duplicate implicit target name: “acknowledgements”.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]jalevelKtypeINFOsourcehlineM9uh1jhjUhhhhhM9ubatransform_messages]j)}(hhh]h)}(hhh]h6Hyperlink target "acknowledgements" is not referenced.}hjsbah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypejsourcehlineM6uh1juba transformerN include_log] decorationNhhub.