Condividi tramite


Regola BufAfterReqCompletedIntIoctl (kmdf)

La regola BufAfterReqCompletedIntIoctl specifica che, dopo il completamento di una richiesta, non è possibile accedervi nel buffer (solo all'interno della funzione di callback EvtIoInternalDeviceControl ). Il buffer viene recuperato chiamando WdfRequestRetrieveOutputBuffer o WdfRequestRetrieveUnsafeUserOutputBuffer o WdfRequestRetrieveInputBuffer o WdfRequestRetrieveUnsafeUserInputBuffer.

All'interno della funzione di callback dell'evento di coda I/O EvtIoInternalDeviceControl , il buffer della richiesta recuperato chiamando WdfRequestRetrieveInputBuffer, WdfRequestRetrieveOutputBuffer, WdfRequestRetrieveUnsafeUserInputBuffer o WdfRequestRetrieveUnsafeUserOutputBuffer non è accessibile dopo il completamento della richiesta. La richiesta viene completata chiamando WdfRequestComplete, WdfRequestCompleteWithInformation o WdfRequestComplete, WdfRequestCompleteWithPriorityBoost. Vengono considerate le seguenti funzioni di accesso al buffer: WdfRequestRetrieveOutputBuffer, WdfRequestRetrieveUnsafeUserOutputBuffer, WdfRequestRetrieveInputBuffer e WdfRequestRetrieveUnsafeUserInputBuffer.

Modello di driver: KMDF

Come eseguire il test

In fase di compilazione

Eseguire Static Driver Verifier e specificare la regola BufAfterReqCompletedIntIoctl .

Usa i passaggi descritti di seguito per eseguire un'analisi del codice:
  1. Prepara il codice (usa dichiarazioni di tipo ruolo).
  2. Esegui Driver Verifier statico.
  3. Visualizza e analizza i risultati.

Per altre informazioni, vedere Using Static Driver Verifier to Find Defects in Drivers.For more information, see Using Static Driver Verifier to Find Defects in Drivers.

Si applica a

WdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputBufferWdfRequestRetrieveOutputBufferWdfRequestRetrieveUnsafeUserInputBufferWdfRequestRetrieveUnsafeUserOutputBuffer