Partager via


EVT_WDF_INTERRUPT_ENABLE fonction de rappel (wdfinterrupt.h)

[S’applique à KMDF et UMDF]

La fonction de rappel d’événements EvtInterruptEnable du pilote active une interruption matérielle spécifiée.

Syntaxe

EVT_WDF_INTERRUPT_ENABLE EvtWdfInterruptEnable;

NTSTATUS EvtWdfInterruptEnable(
  [in] WDFINTERRUPT Interrupt,
  [in] WDFDEVICE AssociatedDevice
)
{...}

Paramètres

[in] Interrupt

Handle vers un objet d’interruption de framework.

[in] AssociatedDevice

Handle de l’objet de périphérique framework que le pilote a passé à WdfInterruptCreate.

Valeur de retour

La fonction de rappel EvtInterruptEnable doit retourner STATUS_SUCCESS ou une autre valeur d’état pour laquelle NT_SUCCESS(status) est égal TRUE si la fonction ne rencontre aucune erreur. Dans le cas contraire, cette fonction doit retourner une valeur d’état pour laquelle NT_SUCCESS(status) est égal à FALSE.

Remarques

Pour inscrire une fonction de rappel EvtInterruptEnable, votre pilote doit placer l’adresse de la fonction de rappel dans une structure WDF_INTERRUPT_CONFIG avant d’appeler WdfInterruptCreate.

L’infrastructure appelle la fonction de rappel EvtInterruptEnable du pilote chaque fois que l’appareil entre dans son état de travail (D0). En outre, un pilote peut entraîner l’appel de la fonction de rappel EvtInterruptEnable en appelant WdfInterruptEnable. Notez que la plupart des pilotes basés sur le framework ne doivent pas appeler WdfInterruptEnable, car l’infrastructure appelle la EvtInterruptEnable fonction de rappel chaque fois que l’appareil entre dans son état de travail (D0).

Avant d’appeler la fonction de rappel EvtInterruptEnable, l’infrastructure déclenche l’IRQL du processeur sur le DIRQL de l’appareil et acquiert le verrou de rotation spécifié dans la structure WDF_INTERRUPT_CONFIG de l’objet d’interruption.

À compter de la version 1.11 de KMDF, votre pilote peut fournir gestion des interruptions au niveau passif. Si le pilote a demandé la gestion des interruptions au niveau passif, avant d’appeler la fonction EvtInterruptEnable à IRQL = PASSIVE_LEVEL, l’infrastructure acquiert le verrou d’interruption au niveau passif que le pilote a configuré dans la structure WDF_INTERRUPT_CONFIG de l’objet d’interruption.

Une fois la fonction de rappel EvtInterruptEnable retournée, l’infrastructure appelle la fonction de rappel evtDeviceD0EntryPostInterruptsEnabled fonction de rappel d’événements au niveau de IRQL = PASSIVE_LEVEL.

Vous ne devez pas supposer qu’un appareil utilisera les mêmes ressources d’interruption chaque fois que le framework appelle la EvtInterruptEnable de votre pilote fonction de rappel. Parfois, le gestionnaire PnP redistribue les ressources système, et il peut affecter de nouvelles ressources d’interruption à votre appareil. Le pilote peut appeler WdfInterruptGetInfo pour déterminer les ressources d’interruption d’un appareil.

Pour plus d’informations sur la gestion des interruptions dans les pilotes basés sur l’infrastructure, consultez Gestion des interruptions matérielles.

Spécifications

Besoin Valeur
plateforme cible Universel
version minimale de KMDF 1.0
version minimale de UMDF 2.0
En-tête wdfinterrupt.h (include Wdf.h)
IRQL (Voir la section Remarques.)

Voir aussi

EvtDeviceD0EntryPostInterruptsEnabled

EvtInterruptDisable

WDF_INTERRUPT_CONFIG

WdfInterruptCreate

WdfInterruptEnable

WdfInterruptGetInfo