Función VideoPortAcquireSpinLock (video.h)

La función VideoPortAcquireSpinLock obtiene el bloqueo de número especificado.

Sintaxis

VIDEOPORT_API VOID VideoPortAcquireSpinLock(
  [in, out] PVOID      HwDeviceExtension,
  [in]      PSPIN_LOCK SpinLock,
  [out]     PUCHAR     OldIrql
);

Parámetros

[in, out] HwDeviceExtension

Puntero a la extensión del dispositivo del controlador de minipuerto.

[in] SpinLock

Puntero a una ubicación de memoria que contiene el bloqueo de número.

[out] OldIrql

Puntero a una ubicación de memoria que recibirá el IRQL actual.

Valor devuelto

None

Observaciones

El IRQL actual se guarda en OldIrql. A continuación, el IRQL actual se restablece a DISPATCH_LEVEL y se adquiere el bloqueo de número especificado.

El valor OldIrql debe especificarse cuando se libere el bloqueo de número con VideoPortReleaseSpinLock.

Los bloqueos de número pueden causar problemas graves si no se usan con criterio. En concreto, no se realiza ninguna protección de interbloqueo y se deshabilita el envío mientras se mantiene el bloqueo de giro. Por lo tanto:

  • El código de una región crítica protegida por un bloqueo de número no debe ser paginable ni hacer referencias a datos paginables.
  • El código dentro de una región crítica protegida por un bloqueo de número no puede llamar a ninguna función externa que pueda tener acceso a datos paginables o generar una excepción, ni puede generar ninguna excepción.
  • El autor de la llamada debe liberar el bloqueo de número con VideoPortReleaseSpinLock lo antes posible.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows XP y versiones posteriores de los sistemas operativos Windows.
Plataforma de destino Escritorio
Encabezado video.h (incluya Video.h)
Library Videoprt.lib
Archivo DLL Videoprt.sys
IRQL <=DISPATCH_LEVEL

Consulte también

VideoPortAcquireSpinLockAtDpcLevel

VideoPortReleaseSpinLock