Regola MdlAfterReqCompletedIntIoctlA (kmdf)
La regola MdlAfterReqCompletedIntIoctlA specifica che all'interno della funzione callback EvtIoInternalDeviceControl non è possibile accedere all'elenco dei descrittori di memoria (MDL) dopo il completamento della richiesta di I/O.
Nella funzione di callback EvtIoInternalDeviceControl del driver, l'MDL recuperato chiamando il metodo WdfRequestRetrieveInputWdmMdl o WdfRequestRetrieveOutputWdmMdl non può essere accessibile dopo aver chiamato WdfRequestComplete, WdfRequestCompleteWithInformation o WdfRequestCompleteWithPriorityBoost nella richiesta di I/O.
Questa regola considera le funzioni di accesso MDL seguenti:
WDF_MEMORY_DESCRIPTOR_INIT_MDLMmGetMdlByteCountMmGetSystemAddressForMdlSafeMmGetMdlVirtualAddressIoBuildPartialMdl (primo e secondo parametro) KeFlushIoBuffersMmGetMdlPfnArrayMmGetMdlByteOffsetMmPrepareMdlForReuseWdfDmaTransactionInitialize
Modello di driver: KMDF
Come eseguire il test
In fase di compilazione |
---|
Eseguire il verifica driver statico e specificare la regola MdlAfterReqCompletedIntIoctlA . Usa i passaggi descritti di seguito per eseguire un'analisi del codice:
Per altre informazioni, vedere Uso del verificatore driver statico per trovare i difetti nei driver. |
Si applica a
WDF_MEMORY_DESCRIPTOR_INIT_MDLWdfDmaTransactionInitializeWdfRequestComplete WdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputWdmdlWdfRequestRetrieveOutputWdmMdlIoBuildPartialMdlKeFlushIoBuffersMmGetMdlByteCount MmGetMdlByteOffsetMmGetMdlPfnArrayMmGetMdlVirtualAddressMmGetSystemAddressForMdlSafeMmPrepareMdlForReuse