structure WUDF_INTERRUPT_CONFIG (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 de UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et il existe une prise en charge limitée de UMDF 1 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 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 la valeur est TRUE, indique que l’infrastructure synchronise 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 affectées par le système à 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 remplir 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 déclenchées par la périphérie, les interruptions basées sur les lignes et les interruptions signalées par les messages (MSI) 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

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

Voir aussi

IWDFDevice3::CreateInterrupt

IWDFDeviceInitialize::SetLockingConstraint

WUDF_INTERRUPT_CONFIG_INIT