Share via


Regla BufAfterReqCompletedIntIoctl (kmdf)

La regla BufAfterReqCompletedIntIoctl especifica que después de completar una solicitud, no se puede tener acceso a su búfer (solo dentro de la función de devolución de llamada EvtIoInternalDeviceControl ). El búfer se recupera llamando a WdfRequestRetrieveOutputBuffer o WdfRequestRetrieveUnsafeUserOutputBuffer o WdfRequestRetrieveInputBuffer o WdfRequestRetrieveUnsafeUserInputBuffer.

Dentro de la función de devolución de llamada de evento de E/S EvtIoInternalDeviceControl , el búfer de solicitudes recuperado llamando a WdfRetrieveInputBuffer, WdfRequestRetrieveOutputBuffer, WdfRequestRetrieveUnsafeUserInputBuffer o WdfRequestRetrieveUnsafeUserOutputBuffer no se puede acceder después de que se complete la solicitud. La solicitud se completa llamando a WdfRequestComplete, WdfRequestCompleteWithInformation o WdfRequestComplete, WdfRequestCompleteWithPriorityBoost. Se tienen en cuenta las siguientes funciones de acceso al búfer posibles: WdfRequestRetrieveOutputBuffer, WdfRequestRetrieveUnsafeUserOutputBuffer, WdfRequestRetrieveInputBuffer y WdfRequestRetrieveUnsafeUserInputBuffer.

Modelo de controlador: KMDF

Cómo probar

En tiempo de compilación

Ejecute el comprobador de controladores estáticos y especifique la regla BufAfterReqCompletedIntIoctl .

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

WdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputBufferWdfRequestRetrieveOutputBufferWdfRequestRetrieveUnsafeUserInputBufferWdfRequestRetrieveUnsafeUserOutputBuffer