DoubleCompletion rule (kmdf)

The DoubleCompletion rule specifies that drivers must not complete an I/O request twice. The following methods should not be called twice in a row for the same request: WdfRequestComplete, WdfRequestCompleteWithInformation, WdfRequestCompleteWithPriorityBoost.

The difference between this rule and the DoubleCompletionLocal rule is that the DoubleCompletionLocal rule is only performed within the default I/O queue callback functions.

Driver model: KMDF

How to test

At compile time

Run Static Driver Verifier and specify the DoubleCompletion 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.

Applies to

WdfIoQueueRetrieveFoundRequest WdfIoQueueRetrieveNextRequest WdfIoQueueRetrieveRequestByFileObject WdfRequestComplete WdfRequestCompleteWithInformation WdfRequestCompleteWithPriorityBoost