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 |