MdlAfterReqCompletedWriteA, règle (kmdf)
La règle MdlAfterReqCompletedWriteA spécifie que dans la fonction de rappel EvtIoWrite , l’objet de liste de descripteurs mémoire (MDL) récupéré ne peut pas être accessible une fois la demande d’E/S terminée.
Dans la fonction de rappel EvtIoWrite du pilote pour la file d’attente d’E/S d’un appareil, la mémoire tampon de requête récupérée en appelant la méthode WdfRequestRetrieveInputWdmMdl est inaccessible après avoir appelé WdfRequestComplete, WdfRequestCompleteWithInformation ou WdfRequestCompleteWithPriorityBoost sur la demande d’E/S.
Cette règle prend en compte les fonctions d’accès MDL 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 MdlAfterReqCompletedWriteA . 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_MDLWdfDmaTransactionInitializeWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputWdmMdlIoBuildPartialMdlKeFlushIoBuffersMmGetMdlByteCountMmGetMdlByteOffsetMmGetMdlPfnArrayMmGetMdlVirtualAddressMmGetSystemAddressForMdlSafeMmPrepareMdlForReuse