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