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
Zeiger auf die Geräteerweiterung des Miniporttreibers.
[in] SpinLock
Zeiger auf einen Speicherort, der die Drehsperre enthält.
[out] OldIrql
Zeiger auf einen Speicherspeicherort, der die aktuelle IRQL empfängt.
Rückgabewert
Keine
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 OldIrql-Wert muss angegeben werden, wenn die Drehsperre mit VideoPortReleaseSpinLock freigegeben wird.
Spinsperren können schwerwiegende Probleme verursachen, wenn sie nicht vernünftig verwendet werden. Insbesondere wird kein Deadlockschutz ausgeführt und die Verteilung deaktiviert, während die Drehsperre gehalten wird. Deshalb gilt Folgendes:
- Der Code in einem kritischen Bereich, der durch eine Spin-Sperre geschützt wird, darf weder ausgelagert werden können noch verweise auf auslagerungsfähige Daten enthalten.
- Der Code in einem kritischen Bereich, der durch eine Spin-Sperre geschützt wird, kann weder externe Funktionen aufrufen, die auf auslagerungsfähige Daten zugreifen oder eine Ausnahme auslösen, noch kann er Ausnahmen generieren.
- Der Aufrufer sollte die Drehsperre mit VideoPortReleaseSpinLock so schnell wie möglich freigeben.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows XP und höheren Versionen der Windows-Betriebssysteme. |
Zielplattform | Desktop |
Kopfzeile | video.h (Video.h einschließen) |
Bibliothek | Videoprt.lib |
DLL | Videoprt.sys |
IRQL | <=DISPATCH_LEVEL |