| 1 | |
| 2 |
|
| 3 | ==============
|
| 4 | WMI Driver API
|
| 5 | ==============
|
| 6 |
|
| 7 | The WMI driver core supports a more modern bus-based interface for interacting
|
| 8 | with WMI devices, and an older GUID-based interface. The latter interface is
|
| 9 | considered to be deprecated, so new WMI drivers should generally avoid it since
|
| 10 | it has some issues with multiple WMI devices sharing the same GUID.
|
| 11 | The modern bus-based interface instead maps each WMI device to a
|
| 12 | :c:type:`struct wmi_device <wmi_device>`, so it supports WMI devices sharing the
|
| 13 | same GUID. Drivers can then register a :c:type:`struct wmi_driver <wmi_driver>`
|
| 14 | which will be bound to compatible WMI devices by the driver core.
|
| 15 |
|
| 16 | .. kernel-doc:: include/linux/wmi.h
|
| 17 | :internal:
|
| 18 |
|
| 19 | .. kernel-doc:: drivers/platform/wmi/string.c
|
| 20 | :export:
|
| 21 |
|
| 22 | .. kernel-doc:: drivers/platform/wmi/core.c
|
| 23 | :export:
|