Ler em inglês

Compartilhar via


Função ExAcquireSpinLockExclusive (wdm.h)

A rotina ExAcquireSpinLockExclusive adquire uma de bloqueio de rotação para acesso exclusivo pelo chamador e eleva o IRQL para DISPATCH_LEVEL.

Sintaxe

C++
KIRQL ExAcquireSpinLockExclusive(
  PEX_SPIN_LOCK SpinLock
);

Parâmetros

SpinLock

[dentro, fora] Um ponteiro para o bloqueio de rotação a ser adquirido para acesso exclusivo. O chamador ainda não deve ter esse bloqueio de rotação.

Valor de retorno

ExAcquireSpinLockExclusive retorna o valor IRQL anterior. Para obter mais informações, consulte Comentários.

Observações

Ao entrar nessa rotina, o chamador deve estar em execução no IRQL <= DISPATCH_LEVEL. Essa rotina eleva o IRQL para DISPATCH_LEVEL e retorna o valor IRQL original (na entrada).

Para liberar o bloqueio de rotação, chame a rotinaExReleaseSpinLockExclusive. ExReleaseSpinLockExclusive restaura o IRQL para o valor original que ele tinha na entrada para ExAcquireSpinLockExclusive.

Um bloqueio de rotação é uma variável de 32 bits do tipo EX_SPIN_LOCK. O driver deve alocar o armazenamento para o bloqueio de rotação e inicializar o bloqueio de rotação como zero. Esse armazenamento deve estar localizado na memória de espaço do sistema nãopagada.

O chamador deve manter o bloqueio de rotação apenas brevemente antes de liberá-lo. Para obter mais informações, consulte Introdução aos bloqueios de rotação.

A aquisição recursiva de um bloqueio de rotação causa deadlock e não é permitida.

Requisitos

Requisito Valor
cabeçalho wdm.h
IRQL IRQL <= DISPATCH_LEVEL

Consulte também

ExReleaseSpinLockExclusive