Providing a Vendor-Defined ACPI Device Interface

A vendor can provide an optional device interface and support for custom IOCTLs to operate an ACPI device's functional device object (FDO).

The function driver typically calls IoRegisterDeviceInterface in its AddDevice routine to register a device interface. The driver calls IoSetDeviceInterfaceState to enable the interface after Plug and Play starts the FDO. The driver should disable the interface if a device is removed by Plug and Play.

The device interface class GUID is vendor-defined.