Règle MdlAfterReqCompletedIntIoctlA (kmdf)
La règle MdlAfterReqCompletedIntIoctlA spécifie que dans la fonction de rappel EvtIoInternalDeviceControl , la liste de descripteurs mémoire (MDL) est inaccessible une fois la demande d’E/S terminée.
Dans la fonction de rappel EvtIoInternalDeviceControl du pilote, la mdL récupérée en appelant la méthode WdfRequestRetrieveInputWdmMdl ou WdfRequestRetrieveOutputWdmMdl n’est pas accessible après l’appel de 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 MdlAfterReqCompletedIntIoctlA . 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_MDLWdfDmaTransactionInitializeWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputWdmMdlWdfRequestquestRetrieveOutputWdmMdlIoBuildPartialMdlKeFlushIoBuffersMmGetMdlByteCountMmGetMdlByteOffsetMmGetMdlPfnArrayMmGetMdlVirtualAddressMmGetSystemAddressForMdlSafeMmPrepareMdlForReuse