NonPnPDrvPowerPolicyOwnerAPI rule (kmdf)

The NonPnPDrvPowerPolicyOwnerAPI rule specifies that non-PnP drivers cannot call certain DDIs related to power management.

If the driver does not register the EvtDriverDeviceAdd callback function, the following DDIs cannot be called:

WdfDeviceAssignS0IdleSettings WdfDeviceInitSetPowerPolicyEventCallbacks WdfDeviceAssignSxWakeSettings WdfDeviceGetDevicePowerState WdfDeviceGetDevicePowerPolicyState WdfDeviceInitSetPnpPowerEventCallbacks WdfDeviceInitSetPowerPolicyOwnership WdfDeviceInitRegisterPowerStateChangeCallback WdfDeviceInitRegisterPowerPolicyStateChangeCallback WdfDeviceInitSetPowerNotPageable WdfDeviceInitSetPowerPageable WdfDeviceInitSetPowerInrush WdfDeviceSetPowerCapabilities

Driver model: KMDF

How to test

At compile time

Run Static Driver Verifier and specify the NonPnPDrvPowerPolicyOwnerAPI rule.

Use the following steps to run an analysis of your code:
  1. Prepare your code (use role type declarations).
  2. Run Static Driver Verifier.
  3. View and analyze the results.

For more information, see Using Static Driver Verifier to Find Defects in Drivers.