WUDF_INTERRUPT_CONFIG structure (wudfinterrupt.h)

[Avertissement : UMDF 2 est la dernière version d’UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide d’UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et la prise en charge d’UMDF 1 est limitée sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2. Pour plus d’informations, consultez Prise en main avec UMDF.]

La structure WUDF_INTERRUPT_CONFIG contient des informations de configuration pour une interruption d’appareil.

Syntaxe

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;

Membres

Size

Taille, en octets, de cette structure.

ShareVector

Valeur WDF_TRI_STATE typée. Si cette valeur est WdfTrue, le vecteur d’interruption peut être partagé. Si la valeur est WdfFalse, le vecteur d’interruption ne peut pas être partagé. Si la valeur est WdfDefault et que l’interruption est déclenchée au niveau, le gestionnaire de Plug-and-Play utilise la valeur du pilote de bus. Si la valeur est WdfDefault et que l’interruption n’est pas déclenchée au niveau, le vecteur d’interruption ne peut pas être partagé.

AutomaticSerialization

Valeur booléenne qui, si elle est TRUE, indique que l’infrastructure synchronisera l’exécution de la fonction de rappel OnInterruptWorkItem de l’objet d’interruption avec d’autres fonctions de rappel qui utilisent la fonctionnalité de synchronisation de rappel de l’infrastructure. Pour plus d'informations, consultez la section Notes.

OnInterruptIsr

Pointeur vers la fonction de rappel OnInterruptIsr du pilote, ou NULL.

OnInterruptEnable

Pointeur vers la fonction de rappel OnInterruptEnable du pilote, ou NULL.

OnInterruptDisable

Pointeur vers la fonction de rappel OnInterruptDisable du pilote, ou NULL.

OnInterruptWorkItem

Pointeur vers la fonction de rappel OnInterruptWorkItem du pilote, ou NULL.

InterruptRaw

Pointeur vers la structure CM_PARTIAL_RESOURCE_DESCRIPTOR qui décrit les ressources brutes affectées par le système à l’interruption. Ce membre est utilisé uniquement si l’interruption est créée dans le rappel OnPrepareHardware .

InterruptTranslated

Pointeur vers la structure CM_PARTIAL_RESOURCE_DESCRIPTOR qui décrit les ressources traduites que le système a affectées à l’interruption. Ce membre est utilisé uniquement si l’interruption est créée dans le rappel OnPrepareHardware .

Remarques

La structure WUDF_INTERRUPT_CONFIG est utilisée comme entrée dans IWDFDevice3 ::CreateInterrupt.

Pour initialiser une structure WUDF_INTERRUPT_CONFIG , votre pilote doit d’abord appeler WUDF_INTERRUPT_CONFIG_INIT , puis renseigner les membres de la structure que WUDF_INTERRUPT_CONFIG_INIT n’initialise pas.

Avant de définir AutomaticSerialization sur TRUE, le pilote doit appeler IWDFDeviceInitialize ::SetLockingConstraint avec le paramètre LockType défini sur WdfDeviceLevel.

Votre pilote doit inclure Wudfwdm.h, qui contient la définition de CM_PARTIAL_RESOURCE_DESCRIPTOR.

UMDF prend en charge les interruptions basées sur les lignes déclenchées et basées sur les lignes et les interruptions msi (message-signaled) sur tous les systèmes d’exploitation pris en charge par l’infrastructure. Étant donné que ces types de ressources d’interruption ne sont pas partagés, un pilote qui les utilise doit définir le membre ShareVector de cette structure sur WdfFalse ou WdfUseDefault. Si le pilote spécifie une valeur ShareVector non valide, le pilote ne parvient pas à démarrer.

Configuration requise

Condition requise Valeur
Version UMDF minimale 1.11
En-tête wudfinterrupt.h

Voir aussi

IWDFDevice3 ::CreateInterrupt

IWDFDeviceInitialize ::SetLockingConstraint

WUDF_INTERRUPT_CONFIG_INIT