Macro KeAcquireSpinLockAtDpcLevel (wdm.h)
A rotina KeAcquireSpinLockAtDpcLevel adquire um bloqueio de rotação quando o chamador já está em execução em IRQL >= DISPATCH_LEVEL.
Sintaxe
void KeAcquireSpinLockAtDpcLevel(
[in, out] PKSPIN_LOCK SpinLock
);
Parâmetros
[in, out] 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.
Retornar valor
Nenhum
Comentários
Os drivers chamam KeAcquireSpinLockAtDpcLevel 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 em IRQL <= APC_LEVEL, ele deverá chamar KeAcquireSpinLock para ter IRQL gerado por essa rotina. KeAcquireSpinLockAtDpcLevel pressupõe que o chamador já está em execução em IRQL >= DISPATCH_LEVEL, portanto, nenhum aumento é necessário.
O chamador deve liberar o bloqueio de rotação com KeReleaseSpinLockFromDpcLevel o mais rápido possível.
Para obter mais informações sobre bloqueios de rotação, consulte Spin Locks.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Consulte a seção Observações. |
Regras de conformidade da DDI | HwStorPortProhibitedDIs(storport), IrqlDispatch(storport), SpinLockSafe(storport) |