|  | .. SPDX-License-Identifier: GPL-2.0-or-later | 
|  |  | 
|  | ============== | 
|  | WMI Driver API | 
|  | ============== | 
|  |  | 
|  | The WMI driver core supports a more modern bus-based interface for interacting | 
|  | with WMI devices, and an older GUID-based interface. The latter interface is | 
|  | considered to be deprecated, so new WMI drivers should generally avoid it since | 
|  | it has some issues with multiple WMI devices sharing the same GUID. | 
|  | The modern bus-based interface instead maps each WMI device to a | 
|  | :c:type:`struct wmi_device <wmi_device>`, so it supports WMI devices sharing the | 
|  | same GUID. Drivers can then register a :c:type:`struct wmi_driver <wmi_driver>` | 
|  | which will be bound to compatible WMI devices by the driver core. | 
|  |  | 
|  | .. kernel-doc:: include/linux/wmi.h | 
|  | :internal: | 
|  |  | 
|  | .. kernel-doc:: drivers/platform/x86/wmi.c | 
|  | :export: |