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

IInterruptSync

KeSynchronizeExecution

PcNewInterruptSync