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) |