Compartilhar via


Função KeInitializeSpinLock (wdm.h)

A rotina KeInitializeSpinLock inicializa uma variável do tipo KSPIN_LOCK.

Sintaxe

void KeInitializeSpinLock(
  [out] PKSPIN_LOCK SpinLock
);

Parâmetros

[out] SpinLock

Ponteiro para um bloqueio de rotação, para o qual o chamador deve fornecer o armazenamento.

Retornar valor

Nenhum

Comentários

Essa rotina deve ser chamada antes de uma chamada inicial para KeAcquireSpinLock, para KeAcquireInStackQueuedSpinLock ou para qualquer outra rotina de suporte que exija um bloqueio de rotação como argumento.

O armazenamento de um objeto de bloqueio de rotação deve ser residente: na extensão do dispositivo de um objeto de dispositivo criado pelo driver, na extensão do controlador de um objeto controlador criado pelo driver ou no pool nãopagado alocado pelo chamador.

Essa função é embutida para sistemas x64 do Windows XP até o Windows 7. A partir de Windows 8, essa função é exportada de ntoskrnl.lib. Como resultado, se você estiver usando o WDK do Windows 10 para criar um binário que é executado no Windows 7 (e, portanto, você precisa do uso do pool de NX para passar Windows 10 testes HLK), defina WIN9X_COMPAT_SPINLOCK. Caso contrário, você poderá ver Windows cannot load the device driver for this hardware. The driver may be corrupted or missing. (Code 39).

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

Os chamadores dessa rotina podem estar em execução em qualquer IRQL. Normalmente, um chamador está em execução em IRQL = PASSIVE_LEVEL em uma rotina AddDevice .

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 Qualquer nível (consulte a seção Comentários)
Regras de conformidade da DDI HwStorPortProhibitedDDIs(storport)

Confira também

KeAcquireInStackQueuedSpinLock

KeAcquireInStackQueuedSpinLockAtDpcLevel

KeAcquireSpinLock

KeAcquireSpinLockAtDpcLevel

KeReleaseInStackQueuedSpinLock

KeReleaseInStackQueuedSpinLockFromDpcLevel

KeReleaseSpinLock

KeReleaseSpinLockFromDpcLevel