Regla MdlAfterReqCompletedIntIoctlA (kmdf)
La regla MdlAfterReqCompletedIntIoctlA especifica que, dentro de la función de devolución de llamada EvtIoInternalDeviceControl , no se puede acceder a la lista de descriptores de memoria (MDL) una vez completada la solicitud de E/S.
Dentro de la función de devolución de llamada EvtIoInternalDeviceControl del controlador, no se puede acceder al MDL que se recuperó llamando al método WdfRequestRetrieveInputWdmMdl o WdfRequestRetrieveOutputWdmMdl después de llamar a WdfRequestComplete, WdfRequestCompleteWithInformation o WdfRequestCompleteWithPriorityBoost en la solicitud de E/S.
Esta regla tiene en cuenta las siguientes funciones de acceso MDL:
WDF_MEMORY_DESCRIPTOR_INIT_MDL MmGetMdlByteCountMmGetSystemAddressForMdlSafeMmGetMdlVirtualAddressIoBuildPartialMdl (primer y segundo parámetro) KeFlushIoBuffersMmGetMdlPfnArrayMmGetMdlByteOffsetMmPrepareMdlForReuseWdfDmaTransactionInitialize
Modelo de controlador: KMDF
Cómo probar
En tiempo de compilación |
---|
Ejecute Static Driver Verifier y especifique la regla MdlAfterReqCompletedIntIoctlA . Usa los pasos siguientes para ejecutar un análisis de tu código:
Para obtener más información, vea Usar el comprobador de controladores estáticos para buscar defectos en los controladores. |
Se aplica a
WDF_MEMORY_DESCRIPTOR_INIT_MDL WdfDmaTransactionInitializeWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputWdmMdlWdfRequestRetrieveOutputWdmMdlIoBuildPartialMdlKeFlushIoBuffersMmGetMdlByteCountMmGetMdlByteOffsetMmGetMdlPfnArrayMmGetMdlVirtualAddress MmGetSystemAddressForMdlSafeMmPrepareMdlForReuse