estructura WUDF_INTERRUPT_CONFIG (wudfinterrupt.h)

[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. Para obtener más información, consulta Introducción con UMDF.

La estructura WUDF_INTERRUPT_CONFIG contiene información de configuración para una interrupción del dispositivo.

Sintaxis

typedef struct _WUDF_INTERRUPT_CONFIG {
  ULONG                           Size;
  WDF_TRI_STATE                   ShareVector;
  BOOLEAN                         AutomaticSerialization;
  PFN_WUDF_INTERRUPT_ISR          OnInterruptIsr;
  PFN_WUDF_INTERRUPT_ENABLE       OnInterruptEnable;
  PFN_WUDF_INTERRUPT_DISABLE      OnInterruptDisable;
  PFN_WUDF_INTERRUPT_WORKITEM     OnInterruptWorkItem;
  PCM_PARTIAL_RESOURCE_DESCRIPTOR InterruptRaw;
  PCM_PARTIAL_RESOURCE_DESCRIPTOR InterruptTranslated;
} WUDF_INTERRUPT_CONFIG, *PWUDF_INTERRUPT_CONFIG;

Miembros

Size

Tamaño, en bytes, de esta estructura.

ShareVector

Valor con tipo WDF_TRI_STATE. Si este valor es WdfTrue, se puede compartir el vector de interrupción. Si el valor es WdfFalse, no se puede compartir el vector de interrupción. Si el valor es WdfDefault y la interrupción se desencadena a nivel, el administrador de Plug and Play usa el valor del controlador de bus. Si el valor es WdfDefault y la interrupción no se desencadena en el nivel, no se puede compartir el vector de interrupción.

AutomaticSerialization

Valor booleano que, si es TRUE, indica que el marco sincronizará la ejecución de la función de devolución de llamada OnInterruptWorkItem del objeto de interrupción con otras funciones de devolución de llamada que usan la funcionalidad de sincronización de devolución de llamada del marco. Vea Comentarios para obtener más información.

OnInterruptIsr

Puntero a la función de devolución de llamada OnInterruptIsr del controlador o NULL.

OnInterruptEnable

Puntero a la función de devolución de llamada OnInterruptEnable del controlador o NULL.

OnInterruptDisable

Puntero a la función de devolución de llamada OnInterruptDisable del controlador o NULL.

OnInterruptWorkItem

Puntero a la función de devolución de llamada OnInterruptWorkItem del controlador o NULL.

InterruptRaw

Puntero a la estructura CM_PARTIAL_RESOURCE_DESCRIPTOR que describe los recursos sin procesar asignados al sistema a la interrupción. Este miembro solo se usa si la interrupción se crea en la devolución de llamada OnPrepareHardware .

InterruptTranslated

Puntero a la estructura CM_PARTIAL_RESOURCE_DESCRIPTOR que describe los recursos traducidos que el sistema asignó a la interrupción. Este miembro solo se usa si la interrupción se crea en la devolución de llamada OnPrepareHardware .

Observaciones

La estructura WUDF_INTERRUPT_CONFIG se usa como entrada para IWDFDevice3::CreateInterrupt.

Para inicializar una estructura de WUDF_INTERRUPT_CONFIG , el controlador debe llamar primero a WUDF_INTERRUPT_CONFIG_INIT y, a continuación, rellenar los miembros de estructura que WUDF_INTERRUPT_CONFIG_INIT no inicializan.

Antes de establecer AutomaticSerialization en TRUE, el controlador debe llamar a IWDFDeviceInitialize::SetLockingConstraint con el parámetro LockType establecido en WdfDeviceLevel.

El controlador debe incluir Wudfwdm.h, que contiene la definición de CM_PARTIAL_RESOURCE_DESCRIPTOR.

UMDF admite interrupciones desencadenadas por el borde, basadas en línea y interrupciones señaladas por mensajes (MSI) en todos los sistemas operativos compatibles con el marco. Dado que estos tipos de recursos de interrupción no se comparten, un controlador que los usa debe establecer el miembro ShareVector de esta estructura en WdfFalse o WdfUseDefault. Si el controlador especifica un valor shareVector no válido, el controlador no se inicia.

Requisitos

   
Versión mínima de UMDF 1.11
Header wudfinterrupt.h

Consulte también

IWDFDevice3::CreateInterrupt

IWDFDeviceInitialize::SetLockingConstraint

WUDF_INTERRUPT_CONFIG_INIT