Función KeInitializeSpinLock (wdm.h)

La rutina KeInitializeSpinLock inicializa una variable de tipo KSPIN_LOCK.

Sintaxis

void KeInitializeSpinLock(
  [out] PKSPIN_LOCK SpinLock
);

Parámetros

[out] SpinLock

Puntero a un bloqueo de número, para el que el autor de la llamada debe proporcionar el almacenamiento.

Valor devuelto

None

Observaciones

Se debe llamar a esta rutina antes de una llamada inicial a KeAcquireSpinLock, a KeAcquireInStackQueuedSpinLock o a cualquier otra rutina de soporte técnico que requiera un bloqueo de número como argumento.

El almacenamiento de un objeto de bloqueo de número debe residir: en la extensión del dispositivo de un objeto de dispositivo creado por el controlador, en la extensión del controlador de un objeto de controlador creado por el controlador o en un grupo no paginado asignado por el autor de la llamada.

Esta función está insertada para sistemas x64 desde Windows XP hasta Windows 7. A partir de Windows 8, esta función se exporta desde ntoskrnl.lib. Como resultado, si usa el WDK de Windows 10 para compilar un archivo binario que se ejecute en Windows 7 (y, por lo tanto, necesita el uso del grupo de NX para pasar pruebas de Windows 10 HLK), debe definir WIN9X_COMPAT_SPINLOCK. De lo contrario, es posible que vea Windows cannot load the device driver for this hardware. The driver may be corrupted or missing. (Code 39).

Para obtener más información sobre los bloqueos de número, consulte Bloqueos de número.

Los autores de llamadas de esta rutina se pueden ejecutar en cualquier IRQL. Normalmente, un llamador se ejecuta en IRQL = PASSIVE_LEVEL en una rutina AddDevice .

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL Cualquier nivel (consulte la sección Comentarios)
Reglas de cumplimiento de DDI HwStorPortProhibitedDDIs(storport)

Consulte también

KeAcquireInStackQueuedSpinLock

KeAcquireInStackQueuedSpinLockAtDpcLevel

KeAcquireSpinLock

KeAcquireSpinLockAtDpcLevel

KeReleaseInStackQueuedSpinLock

KeReleaseInStackQueuedSpinLockFromDpcLevel

KeReleaseSpinLock

KeReleaseSpinLockFromDpcLevel