Méthode IInterruptSync ::CallSynchronizedRoutine (portcls.h)
La CallSynchronizedRoutine
méthode appelle une routine qui n’est pas une routine de service d’interruption (ISR), mais dont l’exécution doit être synchronisée avec les ISR.
Syntaxe
NTSTATUS CallSynchronizedRoutine(
[in] PINTERRUPTSYNCROUTINE Routine,
[in] PVOID DynamicContext
);
Paramètres
[in] Routine
Pointeur vers la routine à appeler. Cette routine s’exécute en dehors de l’ISR de l’objet et de toutes les autres routines synchronisées via l’objet . Même sur les ordinateurs à processeurs multiples, les routines synchronisées par un objet donné ne s’exécutent pas simultanément. Ce paramètre est un pointeur de fonction de type PINTERRUPTSYNCROUTINE (voir IInterruptSync).
[in] DynamicContext
Valeur de contexte à passer à la routine.
Valeur retournée
CallSynchronizedRoutine
retourne STATUS_SUCCESS si l’appel a réussi. Sinon, la méthode retourne un code d’erreur approprié.
Remarques
L’exécution de tout ISR inscrit est garantie d’être retardée jusqu’à ce que l’appel à la routine passé à CallSynchronizedRoutine
soit terminé.
Les appelants de CallSynchronizedRoutine
doivent s’exécuter sur un IRQL inférieur ou égal au niveau de l’interruption associée à l’objet de synchronisation. Cette interruption a été spécifiée par les paramètres ResourceList et ResourceIndex de la fonction PcNewInterruptSync.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | portcls.h (include Portcls.h) |
IRQL | Consultez la section Notes. |