Freigeben über


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

Weitere Informationen

VideoPortAcquireSpinLockAtDpcLevel

VideoPortReleaseSpinLock