Partager via


VideoPortAcquireSpinLock, fonction (video.h)

La fonction VideoPortAcquireSpinLock obtient le verrou de rotation spécifié.

Syntaxe

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

Paramètres

[in, out] HwDeviceExtension

Pointeur vers l’extension de périphérique du pilote miniport.

[in] SpinLock

Pointeur vers un emplacement de mémoire qui contient le verrou de rotation.

[out] OldIrql

Pointeur vers un emplacement de mémoire qui recevra l’IRQL actuel.

Valeur de retour

None

Remarques

L’IRQL actuel est enregistré dans OldIrql. Ensuite, l’IRQL actuel est réinitialisé à DISPATCH_LEVEL et le verrou de rotation spécifié est acquis.

La valeur OldIrql doit être spécifiée lorsque le verrouillage de rotation est libéré avec VideoPortReleaseSpinLock.

Les verrous de rotation peuvent causer de graves problèmes s’ils ne sont pas utilisés judicieusement. En particulier, aucune protection contre les interblocages n’est effectuée et la distribution est désactivée pendant que le verrouillage de rotation est maintenu. Par conséquent :

  • Le code au sein d’une région critique protégée par un verrou de rotation ne doit pas être paginable ni faire référence à des données paginables.
  • Le code au sein d’une région critique protégée par un verrou tournant ne peut pas appeler une fonction externe susceptible d’accéder à des données paginables ou de déclencher une exception, ni générer d’exceptions.
  • L’appelant doit relâcher le verrou tournant avec VideoPortReleaseSpinLock aussi rapidement que possible.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows XP et versions ultérieures des systèmes d’exploitation Windows.
Plateforme cible Desktop (Expérience utilisateur)
En-tête video.h (incluez Video.h)
Bibliothèque Videoprt.lib
DLL Videoprt.sys
IRQL <=DISPATCH_LEVEL

Voir aussi

VideoPortAcquireSpinLockAtDpcLevel

VideoPortReleaseSpinLock