Partager via


EVT_WDF_INTERRUPT_SYNCHRONIZE fonction de rappel (wdfinterrupt.h)

[S’applique à KMDF et UMDF]

La fonction de rappel d’événement EvtInterruptSynchronize d’un pilote effectue des opérations qui doivent être synchronisées avec une fonction de rappel EvtInterruptIsr .

Syntaxe

EVT_WDF_INTERRUPT_SYNCHRONIZE EvtWdfInterruptSynchronize;

BOOLEAN EvtWdfInterruptSynchronize(
  [in] WDFINTERRUPT Interrupt,
  [in] WDFCONTEXT Context
)
{...}

Paramètres

[in] Interrupt

Handle pour un objet d’interruption de framework.

[in] Context

Informations fournies par le pilote que le pilote spécifie lorsqu’il appelle WdfInterruptSynchronize.

Valeur retournée

La fonction de rappel EvtInterruptSynchronize doit retourner TRUE si l’opération réussit. Sinon, cette fonction doit retourner FALSE.

Remarques

Pour exécuter une fonction de rappel EvtInterruptSynchronize , le pilote doit appeler WdfInterruptSynchronize.

Si le pilote a configuré l’objet d’interruption pour la gestion au niveau de l’IRQL (DIRQL) de l’appareil, avant d’appeler la fonction de rappel EvtInterruptSynchronize , l’infrastructure élève le niveau de demande d’interruption du processeur à DIRQL et acquiert le verrou de rotation que le pilote a spécifié dans la structure WDF_INTERRUPT_CONFIG de l’objet d’interruption.

Par conséquent, pendant qu’une fonction de rappel EvtInterruptSynchronize est en cours d’exécution, la fonction de rappel EvtInterruptIsr de l’objet d’interruption (et tout autre code qui s’exécute au niveau de la DIRQL en tenant le verrou de rotation) ne peut pas s’exécuter.

Les fonctions de rappel EvtInterruptSynchronize doivent être conçues de sorte qu’elles ne s’exécutent que pendant une courte période. Ils sont généralement utilisés pour accéder aux données d’interruption qui sont également accessibles par les autres fonctions de rappel EvtInterruptSynchronize ou EvtInterruptIsr d’un 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 EvtInterruptSynchronize à 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.

Pour plus d’informations sur la fonction de rappel EvtInterruptSynchronize , consultez Synchronisation du code d’interruption.

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

EvtInterruptIsr

WDF_INTERRUPT_CONFIG

WdfInterruptSynchronize