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 |