Compartilhar via


Função KefAcquireSpinLockAtDpcLevel (wdm.h)

A rotina KefAcquireSpinLockAtDpcLevel adquire um bloqueio de rotação quando o chamador já está em execução em IRQL >= DISPATCH_LEVEL.

Sintaxe

void KefAcquireSpinLockAtDpcLevel(
  PKSPIN_LOCK SpinLock
);

Parâmetros

SpinLock

Ponteiro para um KSPIN_LOCK bloqueio de rotação inicializado para o qual o chamador deve fornecer o armazenamento. O bloqueio de rotação deve ser do pool não paginado.

Valor de retorno

Nenhum

Observações

Os motoristas chamam KefAcquireSpinLockAtDpcLevel em vez de KeAcquireSpinLock para melhorar o desempenho do driver se e somente se eles já estiverem em execução em um IRQL de DISPATCH_LEVEL ou superior.

Se um driver estiver em execução no IRQL <= APC_LEVEL, ele deverá chamar KeAcquireSpinLock para ter IRQL gerado por essa rotina. KefAcquireSpinLockAtDpcLevel pressupõe que o chamador já esteja em execução no IRQL >= DISPATCH_LEVEL, portanto, nenhum aumento é necessário.

O chamador deve liberar o bloqueio de rotação com KefReleaseSpinLockFromDpcLevel o mais rápido possível.

Para obter mais informações sobre bloqueios de rotação, consulte Spin Locks.

Requisitos

Requisito Valor
da Plataforma de Destino Universal
cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe
IRQL DISPATCH_LEVEL
regras de conformidade de DDI HwStorPortProhibitedDIs(storport), IrqlDispatch(wdm), SpinLock(wdm), SpinlockRelease(wdm)

Consulte também