Macro KeAcquireSpinLockAtDpcLevel (wdm.h)
La routine KeAcquireSpinLockAtDpcLevel acquisisce un blocco di spin quando il chiamante è già in esecuzione in IRQL >= DISPATCH_LEVEL.
Sintassi
void KeAcquireSpinLockAtDpcLevel(
[in, out] PKSPIN_LOCK SpinLock
);
Parametri
[in, out] SpinLock
Puntatore a un blocco di spin KSPIN_LOCK inizializzato per il quale il chiamante deve fornire l'archiviazione. Il blocco di spin deve essere da un pool non a pagina.
Valore restituito
nessuno
Osservazioni
I driver chiamano KeAcquireSpinLockAtDpcLevel anziché KeAcquireSpinLock per migliorare le prestazioni dei driver se e solo se sono già in esecuzione in un IRQL di DISPATCH_LEVEL o versioni successive.
Se un driver è in esecuzione in IRQL <= APC_LEVEL, deve chiamare KeAcquireSpinLock per avere IRQL generato da tale routine. KeAcquireSpinLockAtDpcLevel presuppone che il chiamante sia già in esecuzione in IRQL >= DISPATCH_LEVEL, quindi nessuna generazione è necessaria.
Il chiamante deve rilasciare il blocco di spin con KeReleaseSpinLockFromDpcLevel il più rapidamente possibile.
Per altre informazioni sui blocchi di spin, vedere Blocchi di spin.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Vedere La sezione Osservazioni. |
Regole di conformità DDI | HwStorPortProhibitedDDDIs(storport), IrqlDispatch(storport), SpinLockSafe(storport) |