Partager via


EVT_WDF_INTERRUPT_DISABLE fonction de rappel (wdfinterrupt.h)

[S’applique à KMDF et UMDF]

La fonction de rappel d’événement EvtInterruptDisable d’un pilote désactive une interruption matérielle spécifiée.

Syntaxe

EVT_WDF_INTERRUPT_DISABLE EvtWdfInterruptDisable;

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

Paramètres

[in] Interrupt

Handle pour un objet d’interruption de framework.

[in] AssociatedDevice

Handle à l’objet de périphérique d’infrastructure que le pilote a transmis à WdfInterruptCreate.

Valeur retournée

La fonction de rappel EvtInterruptDisable doit retourner STATUS_SUCCESS ou une autre valeur de status pour laquelle NT_SUCCESS(status) est égal à TRUE si la fonction ne rencontre aucune erreur. Sinon, cette fonction doit retourner une valeur status pour laquelle NT_SUCCESS(status) est égal à FALSE.

Remarques

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

Le framework appelle la fonction de rappel EvtInterruptDisable du pilote chaque fois que l’appareil quitte son état de fonctionnement (D0). En outre, un pilote peut amener l’infrastructure à appeler la fonction de rappel EvtInterruptDisable en appelant WdfInterruptDisable. Notez que la plupart des pilotes basés sur l’infrastructure ne doivent pas appeler WdfInterruptDisable, car le framework appelle la fonction de rappel EvtInterruptDisable du pilote chaque fois que l’appareil quitte son état de fonctionnement (D0).

Avant d’appeler la fonction de rappel EvtInterruptDisable , l’infrastructure élève l’IRQL du processeur au DIRQL de l’appareil et acquiert le verrou de rotation que le pilote a 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 une gestion passive des interruptions. Si le pilote a demandé la gestion des interruptions de niveau passif, avant d’appeler la fonction EvtInterruptDisable à IRQL = PASSIVE_LEVEL, l’infrastructure acquiert le verrou d’interruption de niveau passif que le pilote a configuré dans la structure WDF_INTERRUPT_CONFIG de l’objet d’interruption.

Avant d’appeler la fonction de rappel EvtInterruptDisable , l’infrastructure appelle la fonction de rappel d’événement EvtDeviceD0ExitPreInterruptsDisabled du pilote à l’adresse IRQL = PASSIVE_LEVEL.

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

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.0
Version UMDF minimale 2.0
En-tête wdfinterrupt.h (inclure Wdf.h)
IRQL (Voir la section Notes.)

Voir aussi

EvtDeviceD0ExitPreInterruptsDisabled

EvtInterruptEnable

WDF_INTERRUPT_CONFIG

WdfInterruptCreate

WdfInterruptDisable