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)

Vedi anche

KeAcquireInStackQueuedSpinLockAtDpcLevel

KeAcquireSpinLock

KeInitializeSpinLock

KeReleaseSpinLock

KeReleaseSpinLockFromDpcLevel

KeTryToAcquireSpinLockAtDpcLevel