Coder Social home page Coder Social logo

Legacy interface about huawei-wmi HOT 15 OPEN

aymanbagabas avatar aymanbagabas commented on May 26, 2024
Legacy interface

from huawei-wmi.

Comments (15)

aymanbagabas avatar aymanbagabas commented on May 26, 2024

I might need updated data from Matebook X (2017). @janbaer could you please provide me with DSDT/SSDT tables? Just make sure you're on the latest BIOS update. Also, do you know if this model supports battery protection and fn-lock?
Thank you!

from huawei-wmi.

aymanbagabas avatar aymanbagabas commented on May 26, 2024

Battery protection and fn-lock were added and can be controlled through the driver. You can access these features under /sys/devices/platform/huawei-wmi. There you'd find three newly attributes, charge_start_threshold, charge_stop_threshold, and fn_lock_state.

Charge thresholds accept values from 0-100 and fn-lock takes either 0 or 1. These attributes directly access AML code using WMI commands, specifically method ABBC0F5B-8EA1-11D1-A000-C90629100000.

This method is found in most Huawei models. However, some models have other methods as their WMI BIOS controller such as Matebook X (2017). From what I have, this model supports fn-lock control using this method but not battery or micmute led.

There are many other methods that this WMI device can control but I haven't found what they're for yet.

from huawei-wmi.

janbaer avatar janbaer commented on May 26, 2024

@aymanbagabas I'm sorry but I just read this issue today. Do you still need the DSDT/SSDT tables.
Could you please give me a hint how to list it? How about the BIOS update? To be honest, I have never checked if there's an update for the BIOS at all and I'm also not sure how to update it from a Linux system. I assume, if there's an update, that there's only a Windows supported updating app provided by Huawei.

from huawei-wmi.

nekr0z avatar nekr0z commented on May 26, 2024

To be honest, I have never checked if there's an update for the BIOS at all and I'm also not sure how to update it from a Linux system. I assume, if there's an update, that there's only a Windows supported updating app provided by Huawei.

I don't know which model you're running, but for MateBook 13 it has been figured out. Probably works on other MateBooks, too (if you use correct device GUID for your model), but I don't think anyone tested it.

from huawei-wmi.

aymanbagabas avatar aymanbagabas commented on May 26, 2024

To be honest, I have never checked if there's an update for the BIOS at all and I'm also not sure how to update it from a Linux system. I assume, if there's an update, that there's only a Windows supported updating app provided by Huawei.

All huawei laptops that I have seen have a common BIOS WMI device controller. Except the old matebook, it has this common device but it also has another one that controls most of the features. I wanna see if the latest BIOS adds support for this common device so that we don’t need to implement the “legacy” controller.
If you have any questions I’ll be happy to help.

I don't know which model you're running, but for MateBook 13 it has been figured out. Probably works on other MateBooks, too (if you use correct device GUID for your model), but I don't think anyone tested it.

You’re awesome. I tested it and it worked on my x pro. You know that when you edit the .fd file in a hex editor there is a config section that you can change allowing you to do things like downgrading the bios. I’m wondering if anyone tried that

from huawei-wmi.

aymanbagabas avatar aymanbagabas commented on May 26, 2024

@janbaer if you're still interested in helping to implement the "legacy" BIOS interface that's found on laptops such as Matebook X (2017) I will be glad to work with you. Right now, with tag v3, micmute LED wouldn't work on Matebook X (2017).

from huawei-wmi.

aymanbagabas avatar aymanbagabas commented on May 26, 2024

Right now, I'm trying to figure out a way to detect laptop available features. I created a simple bash script that uses acpi_call to execute native AML methods. I have noticed lagging in my system after the script finished executing. This is the script if anyone is interested. testAML.txt

From the output of this script, I've come to this AML method \GTSI I don't know what it stands for but it might be the one we're looking for since it holds static fixed values. From the data I have (DSDTs) for the XPro, 13 (2019), and D-AMD, I've noticed that each one of these laptops has similar return values from this method.

Laptop hex bin
XPro 0xe3, 0x41, 0xe0, 0x07 0b11100011, 0b01000001, 0b11100000, 0b00000111
13 0xe3, 0x49 0b11100011, 0b01001001
D AMD 0xa1, 0x49 0b10100001, 0b01001001

Maybe these values mean something maybe not. Any ideas?

from huawei-wmi.

janbaer avatar janbaer commented on May 26, 2024

@aymanbagabas I'm sorry for the late answer. Yes the Matebook X 2017 has also fn-lock and it's also working for me (if me mean the same). The mic-mute fn key is actually not working, but till today I didn't miss it, because I never used it. About battery protection I have no idea, what feature it's.

Unfortunately I still don't know how to generate the DSDT/SSDT tables you asked for. But how about this one from @cytrinox https://github.com/cytrinox/matebook-hotkeys/tree/master/acpi

from huawei-wmi.

aymanbagabas avatar aymanbagabas commented on May 26, 2024

@aymanbagabas I'm sorry for the late answer. Yes the Matebook X 2017 has also fn-lock and it's also working for me (if me mean the same). The mic-mute fn key is actually not working, but till today I didn't miss it, because I never used it. About battery protection I have no idea, what feature it's.

Did you remap the micmute key? Fn-lock works by inverting the behavior of the function keys. It's not when you have the Fn led on. With Fn-lock, and Fn led is on, the function keys would be the multimedia keys NOT F1-F12. For battery protection, it sets charging limits so it protects the battery from wearing out.

Unfortunately I still don't know how to generate the DSDT/SSDT tables you asked for. But how about this one from @cytrinox https://github.com/cytrinox/matebook-hotkeys/tree/master/acpi

It is unlikely that the vendor updated the BIOS with the new management interface that's equipped with their newer devices. I just want to make sure that that's the case so we don't have to implement the "legacy" interface. You could get these tables using sudo acpidump > acpidump.out acpidump.out should contain all the needed tables just make sure you're on the latest BIOS update. Thank you!

from huawei-wmi.

aymanbagabas avatar aymanbagabas commented on May 26, 2024

Hi guys! @nekr0z @wasakakero @janbaer
I've updated the driver to include a debugfs interface for future debugging purposes and made tons of refactors. Right now, I'm preparing to submit this version to mainline kernel so I would need some help verifying all the functions work as expected.

Please test the following while watching dmesg for any errors, you could use dmesg -w. If you could also provide the output of dmesg and the following.

  • Hotkeys (special keys, fn keys, etc)
  • Set micmute LED through the driver (workaround using ACPI EC on MateBook X 2017)
    echo 0 | sudo tee /sys/devices/platform/huawei-wmi/leds/platform::micmute/brightness
    echo 1 | sudo tee /sys/devices/platform/huawei-wmi/leds/platform::micmute/brightness
  • Set/get battery charging threshold values (doesn't exist in MateBook X 2017)
    echo "40 70" | sudo tee /sys/devices/platform/huawei-wmi/charge_thresholds
    cat /sys/devices/platform/huawei-wmi/charge_thresholds
    echo "0 100" | sudo tee /sys/devices/platform/huawei-wmi/charge_thresholds
    cat /sys/devices/platform/huawei-wmi/charge_thresholds
  • Set/get fn-lock (Should now work on MateBook X 2017 NEED TESTING!!)
    echo 0 | sudo tee /sys/devices/platform/huawei-wmi/fn_lock_state
    cat /sys/devices/platform/huawei-wmi/fn_lock_state
    echo 1 | sudo tee /sys/devices/platform/huawei-wmi/fn_lock_state
    cat /sys/devices/platform/huawei-wmi/fn_lock_state
  • Debugfs interface
    echo 0xffff | sudo tee /sys/kernel/debug/huawei-wmi/arg
    sudo cat /sys/kernel/debug/huawei-wmi/arg
    sudo cat /sys/kernel/debug/huawei-wmi/call
    echo 0x010b04 | sudo tee /sys/kernel/debug/huawei-wmi/arg (micmute LED on)
    sudo cat /sys/kernel/debug/huawei-wmi/arg
    sudo cat /sys/kernel/debug/huawei-wmi/call
    echo 0x0b04 | sudo tee /sys/kernel/debug/huawei-wmi/arg (micmute LED off)
    sudo cat /sys/kernel/debug/huawei-wmi/arg
    sudo cat /sys/kernel/debug/huawei-wmi/call

I would also need someone with a MateBook X (2017) to test this and/or to help with implementing the "legacy" interface, @nekr0z @wasakakero if you guys know someone it would be really really appreciated! This is one of those times where your code isn't complete but works. As a dev, I'm really really annoyed that this part isn't complete because I don't have the hardware and can't use debugging tools to figure it out since this old freaking interface has parts tied to the hardware level that won't be emulated with software such as LED stuff.

Finally, thank you guys for your contributions toward this project, without you guys, and the latest news regarding Huawei and the US 👎, we wouldn't get this far with the driver.

from huawei-wmi.

nekr0z avatar nekr0z commented on May 26, 2024

OK, here's for MateBook 13:

  • Driver compiles and installs as expected.
  • Hotkeys (special keys, fn keys, etc)

Works as expected, no issues, all correct.

  • Set micmute LED through the driver (workaround using ACPI EC on MateBook X 2017)

Works as expected.

  • Set/get battery charging threshold values (doesn't exist in MateBook X 2017)

Again, works as expected.

  • Set/get fn-lock (Should now work on MateBook X 2017 NEED TESTING!!)

What do you think, works as expected!

  • Debugfs interface

Well, here we go...

$ echo 0xffff | sudo tee /sys/kernel/debug/huawei-wmi/arg
0xffff
$ sudo cat /sys/kernel/debug/huawei-wmi/arg
0x000000000000ffff
$ sudo cat /sys/kernel/debug/huawei-wmi/call
[{0x00,0x00,0x00,0x00},{0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}]

Not sure whether this is expected or not, but let's go on...

$ echo 0x010b04 | sudo tee /sys/kernel/debug/huawei-wmi/argnel/debug/huawei-wmi/arg
0x010b04
$ sudo cat /sys/kernel/debug/huawei-wmi/arg
0x0000000000010b04
$ sudo cat /sys/kernel/debug/huawei-wmi/call
[{0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}]

The last command here brings micmute led on (I kinda expected the first command would, but what do I know). From this moment on, micmute led doesn't react to actual ALSA micmute settings and can only be switched on or off manually through the driver, not sure if this is expected either.

$ echo 0x0b04 | sudo tee /sys/kernel/debug/huawei-wmi/arg
0x0b04
$ sudo cat /sys/kernel/debug/huawei-wmi/arg
0x0000000000000b04
$ sudo cat /sys/kernel/debug/huawei-wmi/call
[{0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}]

Again, the last command (not the first one) kills micmute led.

After sudo rmmod huawei_wmi && sudo modprobe huawei-wmi micmute led returns to expected functionality (i.e. reacting not only to manual setting via driver but to ALSA micmute state as well.

All along, nothing in dmesg other than initial registering Huawei WMI hotkeys as input.

from huawei-wmi.

nekr0z avatar nekr0z commented on May 26, 2024

I would also need someone with a MateBook X (2017) to test this and/or to help with implementing the "legacy" interface, @nekr0z @wasakakero if you guys know someone it would be really really appreciated!

@lidel, care to join in?

from huawei-wmi.

aymanbagabas avatar aymanbagabas commented on May 26, 2024

@cytrinox @thisisshi care to join?

from huawei-wmi.

jannis3005 avatar jannis3005 commented on May 26, 2024

@aymanbagabas sorry, i didnt see that you also added the matebook-e label here. Can i still help with this issue?

from huawei-wmi.

aymanbagabas avatar aymanbagabas commented on May 26, 2024

@aymanbagabas sorry, i didnt see that you also added the matebook-e label here. Can i still help with this issue?

Yes, the Matebook E has the same interface. However, unlike the Matebook X, keyboard keys are not handled through this WMI interface, it uses USBHID instead.

You can see from the files attached that the WMI event handler has the same guid that the Matebook X has 39142400-C6A3-40fa-BADB-8A2652834100.

MBE WMI mof
[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("MyWMIEventCodeClass used for Query EventCode"), guid("{39142400-C6A3-40fa-BADB-8A2652834100}")]
class MyWMIEventCodeClass {
  [key, read] String InstanceName;
  [read] Boolean Active;
  [WmiDataId(1), read, Description("Get EventCode")] uint32 EVCD;
};

[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("MyWMIDataClass1 used for WMI Argument1"), guid("{49142400-C6A3-40fa-BADB-8A2652834100}")]
class MyWMIARGClass1 {
  [key, read] String InstanceName;
  [read] Boolean Active;
  [WmiDataId(1), read, write, Description("used for passing WMI Argumnts")] uint8 WAG1[256];
};

[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("MyWMIPayloadClass1 used for WMI Payload1"), guid("{4A142400-C6A3-40fa-BADB-8A2652834100}")]
class MyWMIPayloadClass1 {
  [key, read] String InstanceName;
  [read] Boolean Active;
  [WmiDataId(1), read, write, Description("used for passing WMI Payloads")] uint8 WPD1[4096];
};

[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("MyWMIDataClass2 used for WMI Argument2"), guid("{49142401-C6A3-40fa-BADB-8A2652834100}")]
class MyWMIARGClass2 {
  [key, read] String InstanceName;
  [read] Boolean Active;
  [WmiDataId(1), read, write, Description("used for passing WMI Argumnts")] uint8 WAG2[256];
};

[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("MyWMIPayloadClass2 used for WMI Payload2"), guid("{4A142401-C6A3-40fa-BADB-8A2652834100}")]
class MyWMIPayloadClass2 {
  [key, read] String InstanceName;
  [read] Boolean Active;
  [WmiDataId(1), read, write, Description("used for passing WMI Payloads")] uint8 WPD2[4096];
};

[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("MyWMIDataClass3 used for WMI Argument3"), guid("{49142402-C6A3-40fa-BADB-8A2652834100}")]
class MyWMIARGClass3 {
  [key, read] String InstanceName;
  [read] Boolean Active;
  [WmiDataId(1), read, write, Description("used for passing WMI Argumnts")] uint8 WAG3[256];
};

[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("MyWMIPayloadClass3 used for WMI Payload3"), guid("{4A142402-C6A3-40fa-BADB-8A2652834100}")]
class MyWMIPayloadClass3 {
  [key, read] String InstanceName;
  [read] Boolean Active;
  [WmiDataId(1), read, write, Description("used for passing WMI Payloads")] uint8 WPD3[4096];
};

[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("MyWMIDataClass4 used for WMI Argument4"), guid("{49142403-C6A3-40fa-BADB-8A2652834100}")]
class MyWMIARGClass4 {
  [key, read] String InstanceName;
  [read] Boolean Active;
  [WmiDataId(1), read, write, Description("used for passing WMI Argumnts")] uint8 WAG4[256];
};

[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("MyWMIPayloadClass4 used for WMI Payload4"), guid("{4A142403-C6A3-40fa-BADB-8A2652834100}")]
class MyWMIPayloadClass4 {
  [key, read] String InstanceName;
  [read] Boolean Active;
  [WmiDataId(1), read, write, Description("used for passing WMI Payloads")] uint8 WPD4[4096];
};

[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("MyWMIDataClass5 used for WMI Argument5"), guid("{49142404-C6A3-40fa-BADB-8A2652834100}")]
class MyWMIARGClass5 {
  [key, read] String InstanceName;
  [read] Boolean Active;
  [WmiDataId(1), read, write, Description("used for passing WMI Argumnts")] uint8 WAG5[256];
};

[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("MyWMIPayloadClass5 used for WMI Payload5"), guid("{4A142404-C6A3-40fa-BADB-8A2652834100}")]
class MyWMIPayloadClass5 {
  [key, read] String InstanceName;
  [read] Boolean Active;
  [WmiDataId(1), read, write, Description("used for passing WMI Payloads")] uint8 WPD5[4096];
};

[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("MyWMIDataClass6 used for WMI Argument6"), guid("{49142405-C6A3-40fa-BADB-8A2652834100}")]
class MyWMIARGClass6 {
  [key, read] String InstanceName;
  [read] Boolean Active;
  [WmiDataId(1), read, write, Description("used for passing WMI Argumnts")] uint8 WAG6[256];
};

[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("MyWMIPayloadClass6 used for WMI Payload6"), guid("{4A142405-C6A3-40fa-BADB-8A2652834100}")]
class MyWMIPayloadClass6 {
  [key, read] String InstanceName;
  [read] Boolean Active;
  [WmiDataId(1), read, write, Description("used for passing WMI Payloads")] uint8 WPD6[4096];
};

[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("MyWMIDataClass7 used for WMI Argument7"), guid("{49142406-C6A3-40fa-BADB-8A2652834100}")]
class MyWMIARGClass7 {
  [key, read] String InstanceName;
  [read] Boolean Active;
  [WmiDataId(1), read, write, Description("used for passing WMI Argumnts")] uint8 WAG7[256];
};

[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("MyWMIPayloadClass7 used for WMI Payload7"), guid("{4A142406-C6A3-40fa-BADB-8A2652834100}")]
class MyWMIPayloadClass7 {
  [key, read] String InstanceName;
  [read] Boolean Active;
  [WmiDataId(1), read, write, Description("used for passing WMI Payloads")] uint8 WPD7[4096];
};

[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("MyWMIDataClass8 used for WMI Argument8"), guid("{49142407-C6A3-40fa-BADB-8A2652834100}")]
class MyWMIARGClass8 {
  [key, read] String InstanceName;
  [read] Boolean Active;
  [WmiDataId(1), read, write, Description("used for passing WMI Argumnts")] uint8 WAG8[256];
};

[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("MyWMIPayloadClass8 used for WMI Payload8"), guid("{4A142407-C6A3-40fa-BADB-8A2652834100}")]
class MyWMIPayloadClass8 {
  [key, read] String InstanceName;
  [read] Boolean Active;
  [WmiDataId(1), read, write, Description("used for passing WMI Payloads")] uint8 WPD8[4096];
};

[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("MyWMIEventClass used for receiving events"), guid("{59142400-C6A3-40fa-BADB-8A2652834100}")]
class MyWMIEventClass : WMIEvent {
  [key, read] String InstanceName;
  [read] Boolean Active;
  [WmiDataId(1), read, write, Description("used for event")] uint32 Force;
};

[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("MyWMIMethodClass used to call method"), guid("{69142400-C6A3-40fa-BADB-8A2652834100}")]
class MyWMIMethodClass {
  [key, read] String InstanceName;
  [read] Boolean Active;

  [WmiMethodId(1), Implemented, read, write, Description("Execute the WMI Generic Functions")] void MyFn1([in] uint32 Indx);
};

[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("MyWMIInitClass used to call ACPI Method Init"), guid("{79142400-C6A3-40fa-BADB-8A2652834100}")]
class MyWMIInitClass {
  [key, read] String InstanceName;
  [read] Boolean Active;

  [WmiMethodId(1), Implemented, read, write, Description("Execute the Init Method")] void Init([in] uint32 Arg0);
};

[WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("MyWMIWatchDogClass used to call ACPI Method WDOG"), guid("{89142400-C6A3-40fa-BADB-8A2652834100}")]
class MyWMIWatchDogClass {
  [key, read] String InstanceName;
  [read] Boolean Active;

  [WmiMethodId(1), Implemented, read, write, Description("Execute the WDOG")] void WDOG([in] uint32 Arg0, [out] uint32 REST);
};
MBE WMI decoded mof
Class 0:
  Name=MyWMIEventCodeClass
  Superclassname=(null)
  Classflags=0
  Namespace=root\default
  Qualifier 0:
    Name=WMI
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 1:
    Name=Dynamic
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 2:
    Name=Provider
    Tosubclass=FALSE
    Type=String
    Value=WmiProv
  Qualifier 3:
    Name=Locale
    Tosubclass=FALSE
    Type=String
    Value=MS\0x409
  Qualifier 4:
    Name=Description
    Tosubclass=FALSE
    Type=String
    Value=MyWMIEventCodeClass used for Query EventCode
  Qualifier 5:
    Name=guid
    Tosubclass=FALSE
    Type=String
    Value={39142400-C6A3-40fa-BADB-8A2652834100}
  Variable 0:
    Name=InstanceName
    Type=Basic:String
    Qualifier 0:
      Name=key
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 1:
    Name=Active
    Type=Basic:Boolean
    Qualifier 0:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 2:
    Name=EVCD
    Type=Basic:uint32
    Qualifier 0:
      Name=WmiDataId
      Tosubclass=FALSE
      Type=Numeric
      Value=1
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 2:
      Name=Description
      Tosubclass=FALSE
      Type=String
      Value=Get EventCode
Class 1:
  Name=MyWMIARGClass1
  Superclassname=(null)
  Classflags=0
  Namespace=root\default
  Qualifier 0:
    Name=WMI
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 1:
    Name=Dynamic
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 2:
    Name=Provider
    Tosubclass=FALSE
    Type=String
    Value=WmiProv
  Qualifier 3:
    Name=Locale
    Tosubclass=FALSE
    Type=String
    Value=MS\0x409
  Qualifier 4:
    Name=Description
    Tosubclass=FALSE
    Type=String
    Value=MyWMIDataClass1 used for WMI Argument1
  Qualifier 5:
    Name=guid
    Tosubclass=FALSE
    Type=String
    Value={49142400-C6A3-40fa-BADB-8A2652834100}
  Variable 0:
    Name=InstanceName
    Type=Basic:String
    Qualifier 0:
      Name=key
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 1:
    Name=Active
    Type=Basic:Boolean
    Qualifier 0:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 2:
    Name=WAG1
    Type=Basic:uint8[256]
    Qualifier 0:
      Name=WmiDataId
      Tosubclass=FALSE
      Type=Numeric
      Value=1
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 2:
      Name=write
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 3:
      Name=Description
      Tosubclass=FALSE
      Type=String
      Value=used for passing WMI Argumnts
Class 2:
  Name=MyWMIPayloadClass1
  Superclassname=(null)
  Classflags=0
  Namespace=root\default
  Qualifier 0:
    Name=WMI
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 1:
    Name=Dynamic
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 2:
    Name=Provider
    Tosubclass=FALSE
    Type=String
    Value=WmiProv
  Qualifier 3:
    Name=Locale
    Tosubclass=FALSE
    Type=String
    Value=MS\0x409
  Qualifier 4:
    Name=Description
    Tosubclass=FALSE
    Type=String
    Value=MyWMIPayloadClass1 used for WMI Payload1
  Qualifier 5:
    Name=guid
    Tosubclass=FALSE
    Type=String
    Value={4A142400-C6A3-40fa-BADB-8A2652834100}
  Variable 0:
    Name=InstanceName
    Type=Basic:String
    Qualifier 0:
      Name=key
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 1:
    Name=Active
    Type=Basic:Boolean
    Qualifier 0:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 2:
    Name=WPD1
    Type=Basic:uint8[4096]
    Qualifier 0:
      Name=WmiDataId
      Tosubclass=FALSE
      Type=Numeric
      Value=1
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 2:
      Name=write
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 3:
      Name=Description
      Tosubclass=FALSE
      Type=String
      Value=used for passing WMI Payloads
Class 3:
  Name=MyWMIARGClass2
  Superclassname=(null)
  Classflags=0
  Namespace=root\default
  Qualifier 0:
    Name=WMI
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 1:
    Name=Dynamic
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 2:
    Name=Provider
    Tosubclass=FALSE
    Type=String
    Value=WmiProv
  Qualifier 3:
    Name=Locale
    Tosubclass=FALSE
    Type=String
    Value=MS\0x409
  Qualifier 4:
    Name=Description
    Tosubclass=FALSE
    Type=String
    Value=MyWMIDataClass2 used for WMI Argument2
  Qualifier 5:
    Name=guid
    Tosubclass=FALSE
    Type=String
    Value={49142401-C6A3-40fa-BADB-8A2652834100}
  Variable 0:
    Name=InstanceName
    Type=Basic:String
    Qualifier 0:
      Name=key
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 1:
    Name=Active
    Type=Basic:Boolean
    Qualifier 0:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 2:
    Name=WAG2
    Type=Basic:uint8[256]
    Qualifier 0:
      Name=WmiDataId
      Tosubclass=FALSE
      Type=Numeric
      Value=1
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 2:
      Name=write
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 3:
      Name=Description
      Tosubclass=FALSE
      Type=String
      Value=used for passing WMI Argumnts
Class 4:
  Name=MyWMIPayloadClass2
  Superclassname=(null)
  Classflags=0
  Namespace=root\default
  Qualifier 0:
    Name=WMI
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 1:
    Name=Dynamic
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 2:
    Name=Provider
    Tosubclass=FALSE
    Type=String
    Value=WmiProv
  Qualifier 3:
    Name=Locale
    Tosubclass=FALSE
    Type=String
    Value=MS\0x409
  Qualifier 4:
    Name=Description
    Tosubclass=FALSE
    Type=String
    Value=MyWMIPayloadClass2 used for WMI Payload2
  Qualifier 5:
    Name=guid
    Tosubclass=FALSE
    Type=String
    Value={4A142401-C6A3-40fa-BADB-8A2652834100}
  Variable 0:
    Name=InstanceName
    Type=Basic:String
    Qualifier 0:
      Name=key
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 1:
    Name=Active
    Type=Basic:Boolean
    Qualifier 0:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 2:
    Name=WPD2
    Type=Basic:uint8[4096]
    Qualifier 0:
      Name=WmiDataId
      Tosubclass=FALSE
      Type=Numeric
      Value=1
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 2:
      Name=write
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 3:
      Name=Description
      Tosubclass=FALSE
      Type=String
      Value=used for passing WMI Payloads
Class 5:
  Name=MyWMIARGClass3
  Superclassname=(null)
  Classflags=0
  Namespace=root\default
  Qualifier 0:
    Name=WMI
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 1:
    Name=Dynamic
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 2:
    Name=Provider
    Tosubclass=FALSE
    Type=String
    Value=WmiProv
  Qualifier 3:
    Name=Locale
    Tosubclass=FALSE
    Type=String
    Value=MS\0x409
  Qualifier 4:
    Name=Description
    Tosubclass=FALSE
    Type=String
    Value=MyWMIDataClass3 used for WMI Argument3
  Qualifier 5:
    Name=guid
    Tosubclass=FALSE
    Type=String
    Value={49142402-C6A3-40fa-BADB-8A2652834100}
  Variable 0:
    Name=InstanceName
    Type=Basic:String
    Qualifier 0:
      Name=key
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 1:
    Name=Active
    Type=Basic:Boolean
    Qualifier 0:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 2:
    Name=WAG3
    Type=Basic:uint8[256]
    Qualifier 0:
      Name=WmiDataId
      Tosubclass=FALSE
      Type=Numeric
      Value=1
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 2:
      Name=write
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 3:
      Name=Description
      Tosubclass=FALSE
      Type=String
      Value=used for passing WMI Argumnts
Class 6:
  Name=MyWMIPayloadClass3
  Superclassname=(null)
  Classflags=0
  Namespace=root\default
  Qualifier 0:
    Name=WMI
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 1:
    Name=Dynamic
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 2:
    Name=Provider
    Tosubclass=FALSE
    Type=String
    Value=WmiProv
  Qualifier 3:
    Name=Locale
    Tosubclass=FALSE
    Type=String
    Value=MS\0x409
  Qualifier 4:
    Name=Description
    Tosubclass=FALSE
    Type=String
    Value=MyWMIPayloadClass3 used for WMI Payload3
  Qualifier 5:
    Name=guid
    Tosubclass=FALSE
    Type=String
    Value={4A142402-C6A3-40fa-BADB-8A2652834100}
  Variable 0:
    Name=InstanceName
    Type=Basic:String
    Qualifier 0:
      Name=key
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 1:
    Name=Active
    Type=Basic:Boolean
    Qualifier 0:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 2:
    Name=WPD3
    Type=Basic:uint8[4096]
    Qualifier 0:
      Name=WmiDataId
      Tosubclass=FALSE
      Type=Numeric
      Value=1
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 2:
      Name=write
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 3:
      Name=Description
      Tosubclass=FALSE
      Type=String
      Value=used for passing WMI Payloads
Class 7:
  Name=MyWMIARGClass4
  Superclassname=(null)
  Classflags=0
  Namespace=root\default
  Qualifier 0:
    Name=WMI
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 1:
    Name=Dynamic
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 2:
    Name=Provider
    Tosubclass=FALSE
    Type=String
    Value=WmiProv
  Qualifier 3:
    Name=Locale
    Tosubclass=FALSE
    Type=String
    Value=MS\0x409
  Qualifier 4:
    Name=Description
    Tosubclass=FALSE
    Type=String
    Value=MyWMIDataClass4 used for WMI Argument4
  Qualifier 5:
    Name=guid
    Tosubclass=FALSE
    Type=String
    Value={49142403-C6A3-40fa-BADB-8A2652834100}
  Variable 0:
    Name=InstanceName
    Type=Basic:String
    Qualifier 0:
      Name=key
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 1:
    Name=Active
    Type=Basic:Boolean
    Qualifier 0:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 2:
    Name=WAG4
    Type=Basic:uint8[256]
    Qualifier 0:
      Name=WmiDataId
      Tosubclass=FALSE
      Type=Numeric
      Value=1
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 2:
      Name=write
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 3:
      Name=Description
      Tosubclass=FALSE
      Type=String
      Value=used for passing WMI Argumnts
Class 8:
  Name=MyWMIPayloadClass4
  Superclassname=(null)
  Classflags=0
  Namespace=root\default
  Qualifier 0:
    Name=WMI
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 1:
    Name=Dynamic
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 2:
    Name=Provider
    Tosubclass=FALSE
    Type=String
    Value=WmiProv
  Qualifier 3:
    Name=Locale
    Tosubclass=FALSE
    Type=String
    Value=MS\0x409
  Qualifier 4:
    Name=Description
    Tosubclass=FALSE
    Type=String
    Value=MyWMIPayloadClass4 used for WMI Payload4
  Qualifier 5:
    Name=guid
    Tosubclass=FALSE
    Type=String
    Value={4A142403-C6A3-40fa-BADB-8A2652834100}
  Variable 0:
    Name=InstanceName
    Type=Basic:String
    Qualifier 0:
      Name=key
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 1:
    Name=Active
    Type=Basic:Boolean
    Qualifier 0:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 2:
    Name=WPD4
    Type=Basic:uint8[4096]
    Qualifier 0:
      Name=WmiDataId
      Tosubclass=FALSE
      Type=Numeric
      Value=1
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 2:
      Name=write
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 3:
      Name=Description
      Tosubclass=FALSE
      Type=String
      Value=used for passing WMI Payloads
Class 9:
  Name=MyWMIARGClass5
  Superclassname=(null)
  Classflags=0
  Namespace=root\default
  Qualifier 0:
    Name=WMI
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 1:
    Name=Dynamic
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 2:
    Name=Provider
    Tosubclass=FALSE
    Type=String
    Value=WmiProv
  Qualifier 3:
    Name=Locale
    Tosubclass=FALSE
    Type=String
    Value=MS\0x409
  Qualifier 4:
    Name=Description
    Tosubclass=FALSE
    Type=String
    Value=MyWMIDataClass5 used for WMI Argument5
  Qualifier 5:
    Name=guid
    Tosubclass=FALSE
    Type=String
    Value={49142404-C6A3-40fa-BADB-8A2652834100}
  Variable 0:
    Name=InstanceName
    Type=Basic:String
    Qualifier 0:
      Name=key
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 1:
    Name=Active
    Type=Basic:Boolean
    Qualifier 0:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 2:
    Name=WAG5
    Type=Basic:uint8[256]
    Qualifier 0:
      Name=WmiDataId
      Tosubclass=FALSE
      Type=Numeric
      Value=1
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 2:
      Name=write
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 3:
      Name=Description
      Tosubclass=FALSE
      Type=String
      Value=used for passing WMI Argumnts
Class 10:
  Name=MyWMIPayloadClass5
  Superclassname=(null)
  Classflags=0
  Namespace=root\default
  Qualifier 0:
    Name=WMI
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 1:
    Name=Dynamic
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 2:
    Name=Provider
    Tosubclass=FALSE
    Type=String
    Value=WmiProv
  Qualifier 3:
    Name=Locale
    Tosubclass=FALSE
    Type=String
    Value=MS\0x409
  Qualifier 4:
    Name=Description
    Tosubclass=FALSE
    Type=String
    Value=MyWMIPayloadClass5 used for WMI Payload5
  Qualifier 5:
    Name=guid
    Tosubclass=FALSE
    Type=String
    Value={4A142404-C6A3-40fa-BADB-8A2652834100}
  Variable 0:
    Name=InstanceName
    Type=Basic:String
    Qualifier 0:
      Name=key
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 1:
    Name=Active
    Type=Basic:Boolean
    Qualifier 0:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 2:
    Name=WPD5
    Type=Basic:uint8[4096]
    Qualifier 0:
      Name=WmiDataId
      Tosubclass=FALSE
      Type=Numeric
      Value=1
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 2:
      Name=write
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 3:
      Name=Description
      Tosubclass=FALSE
      Type=String
      Value=used for passing WMI Payloads
Class 11:
  Name=MyWMIARGClass6
  Superclassname=(null)
  Classflags=0
  Namespace=root\default
  Qualifier 0:
    Name=WMI
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 1:
    Name=Dynamic
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 2:
    Name=Provider
    Tosubclass=FALSE
    Type=String
    Value=WmiProv
  Qualifier 3:
    Name=Locale
    Tosubclass=FALSE
    Type=String
    Value=MS\0x409
  Qualifier 4:
    Name=Description
    Tosubclass=FALSE
    Type=String
    Value=MyWMIDataClass6 used for WMI Argument6
  Qualifier 5:
    Name=guid
    Tosubclass=FALSE
    Type=String
    Value={49142405-C6A3-40fa-BADB-8A2652834100}
  Variable 0:
    Name=InstanceName
    Type=Basic:String
    Qualifier 0:
      Name=key
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 1:
    Name=Active
    Type=Basic:Boolean
    Qualifier 0:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 2:
    Name=WAG6
    Type=Basic:uint8[256]
    Qualifier 0:
      Name=WmiDataId
      Tosubclass=FALSE
      Type=Numeric
      Value=1
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 2:
      Name=write
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 3:
      Name=Description
      Tosubclass=FALSE
      Type=String
      Value=used for passing WMI Argumnts
Class 12:
  Name=MyWMIPayloadClass6
  Superclassname=(null)
  Classflags=0
  Namespace=root\default
  Qualifier 0:
    Name=WMI
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 1:
    Name=Dynamic
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 2:
    Name=Provider
    Tosubclass=FALSE
    Type=String
    Value=WmiProv
  Qualifier 3:
    Name=Locale
    Tosubclass=FALSE
    Type=String
    Value=MS\0x409
  Qualifier 4:
    Name=Description
    Tosubclass=FALSE
    Type=String
    Value=MyWMIPayloadClass6 used for WMI Payload6
  Qualifier 5:
    Name=guid
    Tosubclass=FALSE
    Type=String
    Value={4A142405-C6A3-40fa-BADB-8A2652834100}
  Variable 0:
    Name=InstanceName
    Type=Basic:String
    Qualifier 0:
      Name=key
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 1:
    Name=Active
    Type=Basic:Boolean
    Qualifier 0:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 2:
    Name=WPD6
    Type=Basic:uint8[4096]
    Qualifier 0:
      Name=WmiDataId
      Tosubclass=FALSE
      Type=Numeric
      Value=1
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 2:
      Name=write
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 3:
      Name=Description
      Tosubclass=FALSE
      Type=String
      Value=used for passing WMI Payloads
Class 13:
  Name=MyWMIARGClass7
  Superclassname=(null)
  Classflags=0
  Namespace=root\default
  Qualifier 0:
    Name=WMI
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 1:
    Name=Dynamic
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 2:
    Name=Provider
    Tosubclass=FALSE
    Type=String
    Value=WmiProv
  Qualifier 3:
    Name=Locale
    Tosubclass=FALSE
    Type=String
    Value=MS\0x409
  Qualifier 4:
    Name=Description
    Tosubclass=FALSE
    Type=String
    Value=MyWMIDataClass7 used for WMI Argument7
  Qualifier 5:
    Name=guid
    Tosubclass=FALSE
    Type=String
    Value={49142406-C6A3-40fa-BADB-8A2652834100}
  Variable 0:
    Name=InstanceName
    Type=Basic:String
    Qualifier 0:
      Name=key
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 1:
    Name=Active
    Type=Basic:Boolean
    Qualifier 0:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 2:
    Name=WAG7
    Type=Basic:uint8[256]
    Qualifier 0:
      Name=WmiDataId
      Tosubclass=FALSE
      Type=Numeric
      Value=1
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 2:
      Name=write
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 3:
      Name=Description
      Tosubclass=FALSE
      Type=String
      Value=used for passing WMI Argumnts
Class 14:
  Name=MyWMIPayloadClass7
  Superclassname=(null)
  Classflags=0
  Namespace=root\default
  Qualifier 0:
    Name=WMI
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 1:
    Name=Dynamic
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 2:
    Name=Provider
    Tosubclass=FALSE
    Type=String
    Value=WmiProv
  Qualifier 3:
    Name=Locale
    Tosubclass=FALSE
    Type=String
    Value=MS\0x409
  Qualifier 4:
    Name=Description
    Tosubclass=FALSE
    Type=String
    Value=MyWMIPayloadClass7 used for WMI Payload7
  Qualifier 5:
    Name=guid
    Tosubclass=FALSE
    Type=String
    Value={4A142406-C6A3-40fa-BADB-8A2652834100}
  Variable 0:
    Name=InstanceName
    Type=Basic:String
    Qualifier 0:
      Name=key
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 1:
    Name=Active
    Type=Basic:Boolean
    Qualifier 0:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 2:
    Name=WPD7
    Type=Basic:uint8[4096]
    Qualifier 0:
      Name=WmiDataId
      Tosubclass=FALSE
      Type=Numeric
      Value=1
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 2:
      Name=write
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 3:
      Name=Description
      Tosubclass=FALSE
      Type=String
      Value=used for passing WMI Payloads
Class 15:
  Name=MyWMIARGClass8
  Superclassname=(null)
  Classflags=0
  Namespace=root\default
  Qualifier 0:
    Name=WMI
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 1:
    Name=Dynamic
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 2:
    Name=Provider
    Tosubclass=FALSE
    Type=String
    Value=WmiProv
  Qualifier 3:
    Name=Locale
    Tosubclass=FALSE
    Type=String
    Value=MS\0x409
  Qualifier 4:
    Name=Description
    Tosubclass=FALSE
    Type=String
    Value=MyWMIDataClass8 used for WMI Argument8
  Qualifier 5:
    Name=guid
    Tosubclass=FALSE
    Type=String
    Value={49142407-C6A3-40fa-BADB-8A2652834100}
  Variable 0:
    Name=InstanceName
    Type=Basic:String
    Qualifier 0:
      Name=key
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 1:
    Name=Active
    Type=Basic:Boolean
    Qualifier 0:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 2:
    Name=WAG8
    Type=Basic:uint8[256]
    Qualifier 0:
      Name=WmiDataId
      Tosubclass=FALSE
      Type=Numeric
      Value=1
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 2:
      Name=write
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 3:
      Name=Description
      Tosubclass=FALSE
      Type=String
      Value=used for passing WMI Argumnts
Class 16:
  Name=MyWMIPayloadClass8
  Superclassname=(null)
  Classflags=0
  Namespace=root\default
  Qualifier 0:
    Name=WMI
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 1:
    Name=Dynamic
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 2:
    Name=Provider
    Tosubclass=FALSE
    Type=String
    Value=WmiProv
  Qualifier 3:
    Name=Locale
    Tosubclass=FALSE
    Type=String
    Value=MS\0x409
  Qualifier 4:
    Name=Description
    Tosubclass=FALSE
    Type=String
    Value=MyWMIPayloadClass8 used for WMI Payload8
  Qualifier 5:
    Name=guid
    Tosubclass=FALSE
    Type=String
    Value={4A142407-C6A3-40fa-BADB-8A2652834100}
  Variable 0:
    Name=InstanceName
    Type=Basic:String
    Qualifier 0:
      Name=key
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 1:
    Name=Active
    Type=Basic:Boolean
    Qualifier 0:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 2:
    Name=WPD8
    Type=Basic:uint8[4096]
    Qualifier 0:
      Name=WmiDataId
      Tosubclass=FALSE
      Type=Numeric
      Value=1
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 2:
      Name=write
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 3:
      Name=Description
      Tosubclass=FALSE
      Type=String
      Value=used for passing WMI Payloads
Class 17:
  Name=MyWMIEventClass
  Superclassname=WMIEvent
  Classflags=0
  Namespace=root\default
  Qualifier 0:
    Name=WMI
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 1:
    Name=Dynamic
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 2:
    Name=Provider
    Tosubclass=FALSE
    Type=String
    Value=WmiProv
  Qualifier 3:
    Name=Locale
    Tosubclass=FALSE
    Type=String
    Value=MS\0x409
  Qualifier 4:
    Name=Description
    Tosubclass=FALSE
    Type=String
    Value=MyWMIEventClass used for receiving events
  Qualifier 5:
    Name=guid
    Tosubclass=FALSE
    Type=String
    Value={59142400-C6A3-40fa-BADB-8A2652834100}
  Variable 0:
    Name=InstanceName
    Type=Basic:String
    Qualifier 0:
      Name=key
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 1:
    Name=Active
    Type=Basic:Boolean
    Qualifier 0:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 2:
    Name=Force
    Type=Basic:uint32
    Qualifier 0:
      Name=WmiDataId
      Tosubclass=FALSE
      Type=Numeric
      Value=1
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 2:
      Name=write
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 3:
      Name=Description
      Tosubclass=FALSE
      Type=String
      Value=used for event
Class 18:
  Name=MyWMIMethodClass
  Superclassname=(null)
  Classflags=0
  Namespace=root\default
  Qualifier 0:
    Name=WMI
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 1:
    Name=Dynamic
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 2:
    Name=Provider
    Tosubclass=FALSE
    Type=String
    Value=WmiProv
  Qualifier 3:
    Name=Locale
    Tosubclass=FALSE
    Type=String
    Value=MS\0x409
  Qualifier 4:
    Name=Description
    Tosubclass=FALSE
    Type=String
    Value=MyWMIMethodClass used to call method
  Qualifier 5:
    Name=guid
    Tosubclass=FALSE
    Type=String
    Value={69142400-C6A3-40fa-BADB-8A2652834100}
  Variable 0:
    Name=InstanceName
    Type=Basic:String
    Qualifier 0:
      Name=key
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 1:
    Name=Active
    Type=Basic:Boolean
    Qualifier 0:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Method 0:
    Name=MyFn1
    Qualifier 0:
      Name=WmiMethodId
      Tosubclass=FALSE
      Type=Numeric
      Value=1
    Qualifier 1:
      Name=Implemented
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 2:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 3:
      Name=write
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 4:
      Name=Description
      Tosubclass=FALSE
      Type=String
      Value=Execute the WMI Generic Functions
    Return value:
      Type=Void
    Parameter 0:
      Direction=in
      Name=Indx
      Type=Basic:uint32
Class 19:
  Name=MyWMIInitClass
  Superclassname=(null)
  Classflags=0
  Namespace=root\default
  Qualifier 0:
    Name=WMI
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 1:
    Name=Dynamic
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 2:
    Name=Provider
    Tosubclass=FALSE
    Type=String
    Value=WmiProv
  Qualifier 3:
    Name=Locale
    Tosubclass=FALSE
    Type=String
    Value=MS\0x409
  Qualifier 4:
    Name=Description
    Tosubclass=FALSE
    Type=String
    Value=MyWMIInitClass used to call ACPI Method Init
  Qualifier 5:
    Name=guid
    Tosubclass=FALSE
    Type=String
    Value={79142400-C6A3-40fa-BADB-8A2652834100}
  Variable 0:
    Name=InstanceName
    Type=Basic:String
    Qualifier 0:
      Name=key
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 1:
    Name=Active
    Type=Basic:Boolean
    Qualifier 0:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Method 0:
    Name=Init
    Qualifier 0:
      Name=WmiMethodId
      Tosubclass=FALSE
      Type=Numeric
      Value=1
    Qualifier 1:
      Name=Implemented
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 2:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 3:
      Name=write
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 4:
      Name=Description
      Tosubclass=FALSE
      Type=String
      Value=Execute the Init Method
    Return value:
      Type=Void
    Parameter 0:
      Direction=in
      Name=Arg0
      Type=Basic:uint32
Class 20:
  Name=MyWMIWatchDogClass
  Superclassname=(null)
  Classflags=0
  Namespace=root\default
  Qualifier 0:
    Name=WMI
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 1:
    Name=Dynamic
    Tosubclass=FALSE
    Type=Boolean
    Value=TRUE
  Qualifier 2:
    Name=Provider
    Tosubclass=FALSE
    Type=String
    Value=WmiProv
  Qualifier 3:
    Name=Locale
    Tosubclass=FALSE
    Type=String
    Value=MS\0x409
  Qualifier 4:
    Name=Description
    Tosubclass=FALSE
    Type=String
    Value=MyWMIWatchDogClass used to call ACPI Method WDOG
  Qualifier 5:
    Name=guid
    Tosubclass=FALSE
    Type=String
    Value={89142400-C6A3-40fa-BADB-8A2652834100}
  Variable 0:
    Name=InstanceName
    Type=Basic:String
    Qualifier 0:
      Name=key
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 1:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Variable 1:
    Name=Active
    Type=Basic:Boolean
    Qualifier 0:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
  Method 0:
    Name=WDOG
    Qualifier 0:
      Name=WmiMethodId
      Tosubclass=FALSE
      Type=Numeric
      Value=1
    Qualifier 1:
      Name=Implemented
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 2:
      Name=read
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 3:
      Name=write
      Tosubclass=FALSE
      Type=Boolean
      Value=TRUE
    Qualifier 4:
      Name=Description
      Tosubclass=FALSE
      Type=String
      Value=Execute the WDOG
    Return value:
      Type=Void
    Parameter 0:
      Direction=in
      Name=Arg0
      Type=Basic:uint32
    Parameter 1:
      Direction=out
      Name=REST
      Type=Basic:uint32

mbemof.txt
mbeparse.txt

from huawei-wmi.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.