Règle MdlAfterReqCompletedReadA (kmdf)
La règle MdlAfterReqCompletedReadA spécifie qu’au sein de la fonction de rappel EvtIoRead , l’objet de liste de descripteurs de mémoire (MDL) récupéré n’est pas accessible une fois la demande d’E/S terminée.
Dans la fonction de rappel EvtIoRead du pilote, la mémoire tampon de requête qui a été récupérée en appelant la méthode WdfRequestRetrieveOutputWdmMdl est inaccessible après avoir appelé WdfRequestComplete, WdfRequestCompleteWithInformation ou WdfRequestCompleteWithPriorityBoost sur la demande d’E/S.
Cette règle prend en compte les fonctions suivantes :
WDF_MEMORY_DESCRIPTOR_INIT_MDLMmGetMdlByteCountMmGetSystemAddressForMdlSafeMmGetMdlVirtualAddressIoBuildPartialMdl (premier et deuxième paramètre) KeFlushIoBuffersMmGetMdlPfnArrayMmGetMdlByteOffsetMmPrepareMdlForReuseWdfDmaTransactionInitialize
Modèle de pilote : KMDF
Comment tester
Au moment de la compilation |
---|
Exécutez Static Driver Verifier et spécifiez la règle MdlAfterReqCompletedReadA . Utilisez les étapes suivantes pour exécuter l’analyse de votre code :
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_MDLWdfDmaTransactionInitializeWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveOutputWdmMdMdmdlIoBuildPartialMdlKeFlushIoBuffersMmGetMdlByteCountMmGetMdlByteOffsetMmGetMdlPfnArrayMmGetMdlVirtualAddressMmGetSystemAddressForMdlSafeMmPrepareMdlForReuse