KeSynchronizeExecution, fonction (wdm.h)
La routine KeSynchronizeExecution synchronise l’exécution de la routine spécifiée avec la routine de service d’interruption (ISR) affectée à un ensemble d’un ou plusieurs objets d’interruption.
Syntaxe
BOOLEAN KeSynchronizeExecution(
[in, out] PKINTERRUPT Interrupt,
[in] PKSYNCHRONIZE_ROUTINE SynchronizeRoutine,
[in, optional] __drv_aliasesMem PVOID SynchronizeContext
);
Paramètres
[in, out] Interrupt
Pointeur vers un ensemble d’objets d’interruption. L’appelant a obtenu ce pointeur à partir de la routine IoConnectInterrupt ou IoConnectInterruptEx .
[in] SynchronizeRoutine
Spécifie une routine SynchCritSection fournie par l’appelant dont l’exécution doit être synchronisée avec l’exécution de l’ISR affecté aux objets d’interruption.
[in, optional] SynchronizeContext
Pointeur vers une valeur de contexte fournie par l’appelant à passer à la routine SynchCritSection lorsqu’elle est appelée.
Valeur retournée
KeSynchronizeExecution retourne TRUE si l’opération réussit. Sinon, elle retourne FALSE.
Remarques
Lorsque cette routine est appelée, les opérations suivantes se produisent :
- L’IRQL est élevé à la valeur SynchronizeIrql spécifiée dans l’appel à IoConnectInterrupt ou IoConnectInterruptEx.
- L’accès à SynchronizeContext est synchronisé avec l’ISR attribué en acquérant le verrou de rotation de l’objet d’interruption associé (ou objet d’événement système, dans le cas d’un ISR qui s’exécute à PASSIVE_LEVEL).
- La routine SynchCritSection spécifiée est appelée avec la valeur SynchronizeContext comme paramètre.
Les appelants de KeSynchronizeExecution doivent s’exécuter à IRQL <= DIRQL, c’est-à-dire à un IRQL inférieur ou égal à la valeur de la valeur SynchronizeIrql spécifiée par l’appelant lors de l’inscription de son ISR auprès de IoConnectInterrupt ou IoConnectInterruptEx.
À compter de Windows 8, un pilote peut appeler KeSynchronizeExecution pour synchroniser l’exécution d’une routine SynchCritSection avec un ISR qui s’exécute à IRQL = PASSIVE_LEVEL. Dans les versions antérieures de Windows, KeSynchronizeExecution ne peut synchroniser l’exécution qu’avec un ISR qui s’exécute à IRQL >= DISPATCH_LEVEL. Pour plus d’informations, consultez Utilisation Passive-Level routines de service d’interruption.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible à partir de Windows 2000. |
Plateforme cible | Universal |
En-tête | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DIRQL (voir la section Notes) |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour