Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Legacy interface #9

Open
aymanbagabas opened this issue Apr 17, 2019 · 15 comments
Open

Legacy interface #9

aymanbagabas opened this issue Apr 17, 2019 · 15 comments
Labels
enhancement New feature or request help wanted Extra attention is needed Matebook E Matebook E Matebook X Matebook X

Comments

@aymanbagabas
Copy link
Owner

Most of Huawei devices have the AMW0 WMI device which has a GUID of ABBC0F5C-8EA1-11D1-A000-C90629100000. This WMI device has a method AMW0.WMAA with GUID ABBC0F5B-8EA1-11D1-A000-C90629100000 which seems to control most of the features.

Right now, one of controlling the mic led only works with devices that implement method \_SB.PCI0.LPCB.EC0.WPIN and \_SB.PCI0.LPCB.EC0.SPIN. Models that don't have one these methods simply don't work! Like #7

Using WMI calls, specifically AMW0.WMAA, #7 could be solved and #8 could be integrated. The only model that might not work with this update is the Matebook X (2017).

@aymanbagabas aymanbagabas added the enhancement New feature or request label Apr 17, 2019
@aymanbagabas
Copy link
Owner Author

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!

@aymanbagabas aymanbagabas pinned this issue Apr 23, 2019
@aymanbagabas
Copy link
Owner Author

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.

@janbaer
Copy link

janbaer commented Apr 28, 2019

@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.

@nekr0z
Copy link

nekr0z commented Apr 28, 2019

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.

@aymanbagabas
Copy link
Owner Author

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

@aymanbagabas
Copy link
Owner Author

@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).

@aymanbagabas
Copy link
Owner Author

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?

@janbaer
Copy link

janbaer commented May 4, 2019

@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

@aymanbagabas
Copy link
Owner Author

@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!

@aymanbagabas aymanbagabas changed the title Use WMI calls Use WMI calls & legacy interface May 13, 2019
@aymanbagabas aymanbagabas added the help wanted Extra attention is needed label May 30, 2019
@aymanbagabas
Copy link
Owner Author

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.

@nekr0z
Copy link

nekr0z commented May 30, 2019

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.

@nekr0z
Copy link

nekr0z commented May 30, 2019

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?

@aymanbagabas
Copy link
Owner Author

@cytrinox @thisisshi care to join?

@aymanbagabas aymanbagabas changed the title Use WMI calls & legacy interface Legacy interface Aug 29, 2019
@aymanbagabas aymanbagabas added the Matebook X Matebook X label Sep 2, 2019
@aymanbagabas aymanbagabas added the Matebook E Matebook E label Sep 3, 2019
@jannis3005
Copy link

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

@aymanbagabas
Copy link
Owner Author

@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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed Matebook E Matebook E Matebook X Matebook X
Projects
None yet
Development

No branches or pull requests

4 participants