Partager via


KeAcquireInterruptSpinLock, fonction (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 de retour

KeAcquireInterruptSpinLock retourne le runtime d’intégration 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é dans IRQL = DIRQL pour le d’interruption spécifié, il doit donc s’exécuter très rapidement. Pour plus d’informations, consultez Utilisation des 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 des interruptions. Si interruption pointe vers un objet d’interruption qui se connecte à un ISR de niveau passif, KeAcquireInterruptSpinLock provoque une vérification de bogue. Pour plus d’informations, consultez Utilisation des routines de service d’interruption Passive-Level.

Les appelants doivent s’exécuter à l'<IRQL = DIRQL pour d’interruption . (Il s’agit de la valeur que le pilote a passée en tant que paramètre SynchronizeIrql de IoConnectInterrupt lors de la création de d’interruption.)

Exigences

Exigence Valeur
client minimum pris en charge Windows XP
d’en-tête wdm.h
IRQL <= DIRQL
règles de conformité DDI HwStorPortProhibitedDDIs(storport)

Voir aussi

IoConnectInterrupt

KeReleaseInterruptSpinLock

keSynchronizeExecution