KeAcquireSpinLockAtDpcLevel, macro (wdm.h)
La routine KeAcquireSpinLockAtDpcLevel acquiert un verrou de rotation lorsque l’appelant est déjà en cours d’exécution à IRQL >= DISPATCH_LEVEL.
Syntaxe
void KeAcquireSpinLockAtDpcLevel(
[in, out] PKSPIN_LOCK SpinLock
);
Paramètres
[in, out] SpinLock
Pointeur vers un verrou de rotation KSPIN_LOCK initialisé pour lequel l’appelant doit fournir le stockage. Le verrou de rotation doit provenir d’un pool non paginé.
Valeur de retour
None
Remarques
Les pilotes appellent KeAcquireSpinLockAtDpcLevel au lieu de KeAcquireSpinLock pour de meilleures performances de pilote si et seulement s’ils s’exécutent déjà à un IRQL de DISPATCH_LEVEL ou supérieur.
Si un pilote s’exécute sur IRQL <= APC_LEVEL, il doit appeler KeAcquireSpinLock pour que IRQL soit déclenché par cette routine. KeAcquireSpinLockAtDpcLevel suppose que l’appelant est déjà en cours d’exécution à IRQL >= DISPATCH_LEVEL, donc aucune augmentation n’est nécessaire.
L’appelant doit libérer le verrou de rotation avec KeReleaseSpinLockFromDpcLevel aussi rapidement que possible.
Pour plus d’informations sur les verrous de rotation, consultez Verrous de rotation.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Consultez la section Notes. |
Règles de conformité DDI | HwStorPortProhibitedDDIs(storport), IrqlDispatch(storport), SpinLockSafe(storport) |