Compartir a través de


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 nuevos controladores UMDF deben escribirse mediante 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 a 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 a nivel, el vector de interrupción no se puede compartir.

AutomaticSerialization

Valor booleano que, si es TRUE, indica que el marco sincronizará la ejecución de la onInterruptWorkItem de onInterruptWorkItem función de devolución de llamada 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 onInterruptIsr del controlador función de devolución de llamada o NULL.

OnInterruptEnable

Puntero al onInterruptEnable del controlador función de devolución de llamada o NULL.

OnInterruptDisable

Puntero al onInterruptDisable del controlador función de devolución de llamada o NULL.

OnInterruptWorkItem

Puntero al onInterruptWorkItem del controlador función de devolución de llamada o NULL.

InterruptRaw

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

InterruptTranslated

Puntero a la estructura de 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 OnPrepareHardware devolución de llamada.

Observaciones

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

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

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 perímetro, interrupciones 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 shareVector miembro de esta estructura en WdfFalse o WdfUseDefault. Si el controlador especifica un valor de de ShareVector no válido, el controlador no se puede iniciar.

Requisitos

Requisito Valor
versión mínima de UMDF 1.11
encabezado de wudfinterrupt.h

Consulte también

IWDFDevice3::CreateInterrupt

IWDFDeviceInitialize::SetLockingConstraint

WUDF_INTERRUPT_CONFIG_INIT