Partager via


Règle MemAfterReqCompletedReadA (kmdf)

La règle MemAfterReqCompletedReadA spécifie que dans la fonction de rappel EvtIoRead , l’objet de mémoire du framework n’est pas accessible une fois la demande d’E/S terminée.

Dans la fonction de rappel EvtIoRead du pilote, l’objet de mémoire du framework qui a été récupéré en appelant la méthode WdfRequestRetrieveOutputMemory n’est pas accessible après avoir appelé WdfRequestComplete, WdfRequestCompleteWithInformation ou WdfRequestCompleteWithPriorityBoost sur la requête d’E/S.

Cette règle prend en compte les méthodes d’accès à la mémoire suivantes :

WdfMemoryGetBufferWDF_MEMORY_DESCRIPTOR_INIT_HANDLEWdfMemoryAssignBufferWdfMemoryCopyToBufferWdfMemoryCopyFromBufferWdfObjectReferenceWdfObjectDereferenceWdfObjectDelete

Modèle de pilote : KMDF

Comment tester

Au moment de la compilation

Exécutez Static Driver Verifier et spécifiez la règle MemAfterReqCompletedReadA .

Utilisez les étapes suivantes pour exécuter l’analyse de votre code :
  1. Préparez votre code (utilisez les déclarations de type).
  2. Exécutez le vérificateur de pilote statique.
  3. Affichez et analysez les résultats.

Pour plus d’informations, consultez Utilisation du vérificateur de pilote statique pour rechercher des défauts dans les pilotes.

S’applique à

WDF_MEMORY_DESCRIPTOR_INIT_HANDLEWdfMemoryAssignBufferWdfMemoryCopyFromBufferWdfMemoryCopyToBufferWdfMemoryGetBufferWdfObjectDeleteWdfObjectDereferenceWdfRequestCompleteWdfRequestComplete WdfRequestWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestretrieveOutputMemory