Habilitación y deshabilitación de interrupciones (UMDF 1)
Advertencia
UMDF 2 es la versión más reciente de UMDF y sustituye a UMDF 1. Todos los controladores UMDF nuevos deben escribirse con UMDF 2. No se agregan nuevas características a UMDF 1 y hay compatibilidad limitada con UMDF 1 en versiones más recientes de Windows 10. Los controladores universales de Windows deben usar UMDF 2.
Los ejemplos de UMDF 1 archivados se pueden encontrar en la Windows 11, versión 22H2 : actualización de ejemplos de controladores de mayo de 2022.
Para obtener más información, consulta Introducción con UMDF.
Si el controlador controla las interrupciones del dispositivo, debe proporcionar funciones de devolución de llamada OnInterruptEnable y OnInterruptDisable que habiliten y deshabiliten las interrupciones. Estas funciones de devolución de llamada deben hacer lo necesario para habilitar y deshabilitar el mecanismo de interrupción de un dispositivo.
Si el controlador debe realizar operaciones adicionales relacionadas con la habilitación o deshabilitación de interrupciones, el controlador también puede proporcionar funciones de devolución de llamada IPnpCallbackHardwareInterrupt::OnD0EntryPostInterruptsEnabled e IPnpCallbackHardbackHardwareInterrupt::OnD0ExitPreInterruptsDisabled .
El marco llama a las funciones de devolución de llamada OnInterruptEnable e IPnpCallbackHardwareInterrupt::OnD0EntryPostInterruptsEnabled cada vez que el dispositivo entra en su estado de trabajo (D0), después de que el marco haya llamado a la función de devolución de llamada OnD0Entry del controlador. El marco llama a las funciones de devolución de llamada IPnpCallbackHardbackHardwareInterrupt::OnD0ExitPreInterruptsDisabled y OnInterruptDisable cada vez que el dispositivo deja su estado de trabajo, antes de que el marco llame a la función de devolución de llamada OnD0Exit del controlador. Para obtener más información sobre cuándo el marco llama a las funciones de devolución de llamada de un controlador, consulte PnP y Administración de energía en controladores basados en UMDF.
No debe suponer que un dispositivo usará los mismos recursos de interrupción cada vez que el marco llama a la función de devolución de llamada OnInterruptEnable del controlador. A veces, el administrador de PnP redistribuye los recursos del sistema y podría asignar nuevos recursos de interrupción al dispositivo.
El controlador puede llamar a IWDFInterrupt::GetInfo para determinar los recursos de interrupción de un dispositivo. El controlador puede llamar a IWDFInterrupt::GetDevice para determinar el dispositivo al que pertenece un objeto de interrupción.
Para habilitar y deshabilitar las interrupciones directamente, el controlador puede llamar a los métodos IWDFInterrupt::Enable e IWDFInterrupt::D isable del controlador, que llaman a las funciones de devolución de llamada de eventos OnInterruptEnable y OnInterruptDisable del controlador. Sin embargo, la mayoría de los controladores solo deben permitir que el marco llame a las funciones de devolución de llamada OnInterruptEnable y OnInterruptDisable en los momentos adecuados.