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 |