Fonction KeAcquireInterruptSpinLock (wdm.h)

La routine KeAcquireInterruptSpinLock acquiert le verrou de rotation associé à un objet d’interruption.

Syntaxe

KIRQL KeAcquireInterruptSpinLock(
  PKINTERRUPT Interrupt
);

Paramètres

Interrupt

[in, out] Spécifie un pointeur vers un objet d’interruption. Cette valeur doit être fournie par IoConnectInterrupt ou IoConnectInterruptEx.

Valeur retournée

KeAcquireInterruptSpinLock retourne l’IRQL actuel au moment où la routine est appelée. Cette valeur est transmise à KeReleaseInterruptSpinLock lorsque le verrou de rotation est libéré.

Remarques

Les pilotes utilisent le verrou de rotation d’interruption pour synchroniser l’accès à la mémoire partagée avec l’ISR de l’interruption. Le pilote peut libérer le verrou de rotation en appelant KeReleaseInterruptSpinLock.

Tout code qui s’exécute pendant que le verrou de rotation d’interruption est conservé le fait à IRQL = DIRQL pour l’interruption spécifiée, il doit donc s’exécuter très rapidement. Pour plus d’informations, consultez Utilisation de sections critiques.

La méthode recommandée pour synchroniser une routine de pilote avec un ISR consiste à utiliser la routine KeSynchronizeExecution .

À compter de Windows 8, un pilote peut utiliser IoConnectInterruptEx pour inscrire une routine de service d’interruption qui s’exécute à IRQL = PASSIVE_LEVEL et qui n’utilise pas de verrou de rotation pour la synchronisation d’interruption. Si Interrupt pointe vers un objet d’interruption qui se connecte à un ISR passif, KeAcquireInterruptSpinLock provoque un bogue case activée. Pour plus d’informations, consultez Utilisation de Passive-Level routines de service d’interruption.

Les appelants doivent être en cours d’exécution à IRQL <= DIRQL pour l’interruption. (Il s’agit de la valeur que le pilote a transmise en tant que paramètre SynchronizeIrqld’IoConnectInterrupt lors de la création de l’interruption .)

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP
En-tête wdm.h
IRQL <= DIRQL
Règles de conformité DDI HwStorPortProhibitedDDIs(storport)

Voir aussi

IoConnectInterrupt

KeReleaseInterruptSpinLock

KeSynchronizeExecution