Freigeben über


VideoPortSynchronizeExecution-Funktion (video.h)

Die VideoPortSynchronizeExecution--Funktion synchronisiert die Ausführung eines von einem Miniporttreiber bereitgestellten HwVidSynchronizeExecutionCallback--Funktion mit der HwVidInterrupt--Funktion des Miniporttreibers. Andernfalls wird HwVidSynchronizeExecutionCallback mit einer erhöhten Priorität ausgeführt.

Syntax

VIDEOPORT_DEPRECATED BOOLEAN VIDEOPORT_API VideoPortSynchronizeExecution(
  PVOID                         HwDeviceExtension,
  VIDEO_SYNCHRONIZE_PRIORITY    Priority,
  PMINIPORT_SYNCHRONIZE_ROUTINE SynchronizeRoutine,
  PVOID                         Context
);

Parameter

HwDeviceExtension

Zeigen Sie auf die Geräteerweiterung des Miniporttreibers.

Priority

Gibt den Typ der Priorität an, bei dem die angegebene SynchronizeRoutine ausgeführt werden muss, wie folgt:

  • Wenn Priority auf VpLowPriority-festgelegt ist, wird der aktuelle Thread auf die höchste Nichtinterrupt-Maskierungspriorität ausgelöst. Dementsprechend kann der aktuelle Thread nur durch einen ISR vorgebeutet werden, wenn ein Gerät unterbrochen wird.
  • Wenn Priority auf VpMediumPriority- festgelegt ist und der Miniporttreiber einem ISR zugeordnet ist, wird der Aufruf der angegebenen SynchronizeRoutine- mit der HwVidInterrupt--Funktion des Miniporttreibers synchronisiert. Andernfalls erfolgt die Synchronisierung auf VpLowPriority- Ebene.
  • VpHighPriority hat die gleiche Wirkung wie VpMediumPriority.

SynchronizeRoutine

Zeiger auf die HwVidSynchronizeExecutionCallback-Funktion des Miniporttreibers.

Context

Zeiger auf einen vom Aufrufer bereitgestellten Kontext, der an die HwVidSynchronizeExecutionCallback- funktion des Miniporttreibers übergeben werden soll. Dieser Zeiger kann NULL-sein.

Rückgabewert

Wenn der Vorgang erfolgreich ist, gibt VideoPortSynchronizeExecutionTRUEzurück.

Bemerkungen

Miniport-Treiber rufen diese Routine selten auf, es sei denn, eine der folgenden Bedingungen halten:

  • Die HwVidInterrupt- des Miniporttreibers teilt Arbeitsspeicher mit anderen Miniporttreiberfunktionen. Um auf den gemeinsam genutzten Speicher auf sichere Weise zuzugreifen, müssen solche Miniporttreiberfunktionen VideoPortSynchronizeExecution mit HwVidSynchronizeExecutionCallback-aufrufen. Diese Miniporttreiberfunktion kann sicher auf den freigegebenen Speicher zugreifen, da der Videoporttreiber verhindert, dass die HwVidInterrupt--Funktion gleichzeitig auf denselben Speicher zugreift.
  • Der Adapter muss mit einer Abfolge von Befehlen programmiert werden, ohne einem Kontextschalter unterliegt. Beispielsweise kann die SvgaHwIoPortXxx-Funktion eines Miniporttreibers, die eine Abfolge von E/A-Anweisungen gepuffert und überprüft hat, die Sequenz möglicherweise VideoPortSynchronizeExecution mit HwVidSynchronizeExecutionCallbackaufrufen. Diese Miniporttreiberfunktion kann den gepufferten und validierten E/A-Stream sehr schnell an den Adapter übertragen.
Ein Aufrufer sollte den niedrigsten praktischen Priority Wert für die Arbeit angeben, HwVidSynchronizeExecutionCallback ausführen muss. Jede CallbackRoutine-, die mit hoher Hardwarepriorität ausgeführt wird (VpMediumPriority oder VpHighPriority), sollte die Steuerung so schnell wie möglich zurückgeben. Ein Treiber mit einer solchen hohen Priorität HwVidSynchronizeExecutionCallback--Funktion sollte so viel Arbeit wie möglich in jeder anderen Treiberfunktion ausführen, außer einer seiner HwVidSynchronizeExecutionCallback und HwVidInterrupt Funktionen.

Aufrufer von VideoPortSynchronizeExecution- müssen unter IRQL ausgeführt werden.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Windows 2000 und höheren Versionen von Windows-Betriebssystemen.
Zielplattform- Desktop
Header- video.h (video.h einschließen)
Library Videoprt.lib
DLL- Videoprt.sys
IRQL- <= DIRQL

Siehe auch

HwVidInterrupt

HwVidSynchronizeExecutionCallback-