Partager via


EVT_WDF_INTERRUPT_SYNCHRONIZE fonction de rappel (wdfinterrupt.h)

[S’applique à KMDF et UMDF]

La fonction de rappel d’événements EvtInterruptSynchronize 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 vers un objet d’interruption de framework.

[in] Context

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

Valeur de retour

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

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 du runtime d’intégration (DIRQL) de l’appareil, avant d’appeler la EvtInterruptSynchronize fonction de rappel, l’infrastructure déclenche le niveau de demande d’interruption du processeur vers DIRQL et acquiert le verrou de rotation que le pilote spécifié dans la structure WDF_INTERRUPT_CONFIG de l’objet d’interruption.

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

EvtInterruptSynchronize fonctions de rappel doivent être conçues pour qu’elles s’exécutent uniquement 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 EvtInterruptSynchronize ou EvtInterruptIsr fonctions de rappel.

À 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 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.

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

EvtInterruptIsr

WDF_INTERRUPT_CONFIG

WdfInterruptSynchronize