Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1657115
| From | Pali Rohár <pali.rohar@gmail.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Binary MOF buffer in WMI is finally decoded! |
| Date | 2017-06-04 18:20 +0200 |
| Message-ID | <tOGpX-7x8-9@gated-at.bofh.it> (permalink) |
| Organization | linux.* mail to news gateway |
[Multipart message — attachments visible in raw view] - view raw
Hi! As already mentioned in RFC: WMI Enhancements thread [1], I looked at binary MOF buffer used by WMI which is included in ACPI DSDT table. That binary MOF buffer contains description of WMI methods and structures used by ACPI-WMI. It also contains mapping from human readable function names to ACPI-WMI magical numbers used for calling WMI methods via ACPI. Basically in that binary MOF buffer is description of structures used as input and output arguments for WMI methods/function calls. Until now, there were not information nor any parser of those binary MOF files (.bmf file). There is some Microsoft proprietary tool which can compile text MOF file to binary and vice versa. I was able to decode that binary MOF format and wrote simple bmfparse tool. It is available in git repository [2]. Currently parsing of function parameters is not implemented yet. Binary MOF format is compressed by prehistoric DS-01 algorithm (modification of LZ-77) which was used as compression algorithm for FAT-16. Maybe you remember DMSDOS or DoubleSpace... After decompression, the whole format is so shitty, probably half of data are just lengths of sub structures and sub-sub-... structures. I hope this bmfparse program would help in writing new wmi drivers for Linux or inspection of available WMI methods. Probably we could implement parser of BMOF in kernel and allow validation of function parameters or usage of human readable names of WMI methods? [1] - https://www.spinics.net/lists/platform-driver-x86/msg11574.html [2] - https://github.com/pali/bmfdec -- Pali Rohár pali.rohar@gmail.com
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
Binary MOF buffer in WMI is finally decoded! Pali Rohár <pali.rohar@gmail.com> - 2017-06-04 18:20 +0200 Re: Binary MOF buffer in WMI is finally decoded! Pali Rohár <pali.rohar@gmail.com> - 2017-06-06 00:10 +0200
csiph-web