VideoPortAcquireSpinLock-Funktion (video.h)
Die VideoPortAcquireSpinLock Funktion ruft die angegebene Drehsperre ab.
Syntax
VIDEOPORT_API VOID VideoPortAcquireSpinLock(
[in, out] PVOID HwDeviceExtension,
[in] PSPIN_LOCK SpinLock,
[out] PUCHAR OldIrql
);
Parameter
[in, out] HwDeviceExtension
Zeigen Sie auf die Geräteerweiterung des Miniporttreibers.
[in] SpinLock
Zeigen Sie auf einen Speicherspeicherort, der die Drehungssperre enthält.
[out] OldIrql
Zeigen Sie auf einen Speicherspeicherort, der den aktuellen IRQL empfängt.
Rückgabewert
Nichts
Bemerkungen
Die aktuelle IRQL wird in OldIrql-gespeichert. Anschließend wird die aktuelle IRQL auf DISPATCH_LEVEL zurückgesetzt, und die angegebene Drehsperre wird abgerufen.
Der wert OldIrql muss angegeben werden, wenn die Drehsperre mit VideoPortReleaseSpinLockfreigegeben wird.
Drehsperren können schwerwiegende Probleme verursachen, wenn sie nicht sorgfältig verwendet werden. Insbesondere wird kein Deadlockschutz ausgeführt, und die Verteilerfunktion wird deaktiviert, während die Drehsperre gehalten wird. Deshalb:
- Der Code innerhalb eines kritischen Bereichs, der durch eine Drehsperre geschützt ist, darf weder seitenfähig sein noch Verweise auf seitenfähige Daten erstellen.
- Der Code innerhalb eines kritischen Bereichs, der durch eine Drehungssperre geschützt ist, kann weder externe Funktionen aufrufen, die auf seitenfähige Daten zugreifen oder eine Ausnahme auslösen können, noch können Ausnahmen generiert werden.
- Der Aufrufer sollte die Drehsperre mit VideoPortReleaseSpinLock so schnell wie möglich freigeben.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar in Windows XP und höheren Versionen von Windows-Betriebssystemen. |
Zielplattform- | Desktop |
Header- | video.h (video.h einschließen) |
Library | Videoprt.lib |
DLL- | Videoprt.sys |
IRQL- | <=DISPATCH_LEVEL |