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:
Para obtener más información, consulte Uso del comprobador de controladores estáticos para buscar defectos en controladores. |
Se aplica a
WdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputBufferWdfRequestRetrieveOutputBufferWdfRequestRetrieveUnsafeUserInputBufferWdfRequestRetrieveUnsafeUserOutputBuffer