Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
[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.) |