DrvAckIoStop rule (kmdf)
The DrvAckIoStop rule verifies that the driver is aware of pending requests while its power-managed queue is getting powered-down and the driver acknowledges, completes, or cancels the pending requests accordingly. In the case of self-managed I/O requests, the driver should also correctly handle these requests from its EvtDeviceSelfManagedIoSuspend function. A driver that fails to handle these requests during a power-down would cause Bug Check 0x9F: DRIVER_POWER_STATE_FAILURE.
In some circumstances it might be appropriate to suppress this warning. If the driver does not hold on to the requests, or does not forward them to other drivers, and if the driver completes the requests directly in the queue's handlers, you can use the __analysis_assume function to suppress the warning. For more information, see Using the _analysis_assume Function to Suppress False Defects and How to: Specify Additional Code Information by Using __analysis_assume.
Driver model: KMDF
Bug check(s) found with this rule: Bug Check 0x9F: DRIVER_POWER_STATE_FAILURE
How to test
At compile time |
---|
Run Static Driver Verifier and specify the DrvAckIoStop rule. Use the following steps to run an analysis of your code:
For more information, see Using Static Driver Verifier to Find Defects in Drivers. |
Applies to
WdfDeviceInitSetPnpPowerEventCallbacks WdfFdoInitSetFilter WdfIoQueueCreate