Partager via


structure WUDF_INTERRUPT_CONFIG (wudfinterrupt.h)

[Avertissement : UMDF 2 est la dernière version de 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 Bien démarrer 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 des de l’objet d’interruption OnInterruptWorkItem fonction de rappel avec d’autres fonctions de rappel qui utilisent la synchronisation de rappel de l’infrastructure fonctionnalité. Pour plus d’informations, consultez les remarques.

OnInterruptIsr

Pointeur vers le OnInterruptIsr du pilote fonction de rappel ou NULL.

OnInterruptEnable

Pointeur vers le OnInterruptEnable du pilote fonction de rappel ou NULL.

OnInterruptDisable

Pointeur vers le OnInterruptDisable du pilote fonction de rappel ou NULL.

OnInterruptWorkItem

Pointeur vers le OnInterruptWorkItem du pilote fonction de rappel ou NULL.

InterruptRaw

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

InterruptTranslated

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

Remarques

La structure WUDF_INTERRUPT_CONFIG est utilisée comme entrée pour 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 basées sur les périphéries, 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 ShareVector membre de cette structure sur WdfFalse ou WdfUseDefault. Si le pilote spécifie une valeur ShareVector non valide, le pilote ne parvient pas à démarrer.

Exigences

Exigence Valeur
version minimale de UMDF 1.11
d’en-tête wudfinterrupt.h

Voir aussi

IWDFDevice3 ::CreateInterrupt

IWDFDeviceInitialize ::SetLockingConstraint

WUDF_INTERRUPT_CONFIG_INIT