Macro KeAcquireSpinLockAtDpcLevel (wdm.h)
La routine KeAcquireSpinLockAtDpcLevel acquisisce un blocco di selezione 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 selezione KSPIN_LOCK inizializzato per il quale il chiamante deve fornire l'archiviazione. Il blocco di selezione deve trovarsi da un pool non di paging.
Valore restituito
Nessuno
Osservazioni
I driver chiamano KeAcquireSpinLockAtDpcLevel anziché KeAcquireSpinLock per migliorare le prestazioni del driver se e solo se sono già in esecuzione in un runtime di integrazione di DISPATCH_LEVEL o superiore.
Se un driver è in esecuzione in IRQL <= APC_LEVEL, deve chiamare KeAcquireSpinLock per fare in modo che IRQL venga generato da tale routine. KeAcquireSpinLockAtDpcLevel presuppone che il chiamante sia già in esecuzione in IRQL >= DISPATCH_LEVEL, quindi non è necessario generare alcuna generazione.
Il chiamante deve rilasciare il blocco spin con KeReleaseSpinLockFromDpcLevel il più rapidamente possibile.
Per altre informazioni sui blocchi di selezione, vedere Spin Locks.
Fabbisogno
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) |