Regla MdlAfterReqCompletedWriteA (kmdf)

La regla MdlAfterReqCompletedWriteA especifica que dentro de la función de devolución de llamada EvtIoWrite , no se puede tener acceso al objeto de lista de descriptores de memoria (MDL) recuperado después de que se complete la solicitud de E/S.

Dentro de la función de devolución de llamada EvtIoWrite del controlador para la cola de E/S de un dispositivo, no se puede tener acceso al búfer de solicitudes que se recuperó llamando al método WdfRequestRequestRetrieveInputWdmMdl después de llamar a WdfRequestCompleteWithInformation o WdfRequestCompleteWithPriorityBoost en la solicitud de E/S.

Esta regla tiene en cuenta las siguientes funciones de acceso MDL:

WDF_MEMORY_DESCRIPTOR_INIT_MDLMmGetMdlByteCountMmGetSystemAddressForMdlSafeMmGetMdlVirtualAddressIoBuildPartialMdl (primer y segundo parámetro) KeFlushIoBuffersMmGetMdlPfnArrayMmGetMdlByteOffsetMmPrepareMdlForReuseWdfDmaTransactionInitialize

Modelo de controlador: KMDF

Cómo probar

En tiempo de compilación

Ejecute el Comprobador de controladores estáticos y especifique la regla MdlAfterReqCompletedWriteA .

Usa los pasos siguientes para ejecutar un análisis de tu código:
  1. Prepara el código (usa declaraciones de tipos de rol).
  2. Ejecuta el comprobador de controlador estático.
  3. Consulta y analiza los resultados.

Para obtener más información, consulte Uso del comprobador de controladores estáticos para buscar defectos en controladores.

Se aplica a

WDF_MEMORY_DESCRIPTOR_INIT_MDLWdfDmaTransactionInitializeWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputWdmMdlIoBuildPartialMdlKeFlushIoBuffersMmGetMdlByteCountMmGetMdlByteOffsetMmGetMdlPfnArrayMmGetMdlVirtualAddressMmGetSystemAddressForMdlSafeMmPrepareMdlForReuse