Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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
- KeAcquireInStackQueuedSpinLockAtDpcLevel
- KeAcquireSpinLock
- KeAcquireSpinLockAtDpcLevel
- KefReleaseSpinLockFromDpcLevel
- KeInitializeSpinLock
- KeReleaseSpinLock
- KeReleaseSpinLockFromDpcLevel
- KeTryToAcquireSpinLockAtDpcLevel
- Bloqueios de rotação