Freigeben über


VideoPortSynchronizeExecution-Funktion (video.h)

Die VideoPortSynchronizeExecution-Funktion synchronisiert die Ausführung einer vom Miniporttreiber bereitgestellten HwVidSynchronizeExecutionCallback-Funktion mit der HwVidInterrupt-Funktion des Miniporttreibers, sofern vorhanden. 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

Zeiger auf die Geräteerweiterung des Miniporttreibers.

Priority

Gibt den Prioritätstyp an, mit dem die angegebene SynchronizeRoutine wie folgt ausgeführt werden muss:

  • Wenn Priorität auf VpLowPriority festgelegt ist, wird der aktuelle Thread auf die höchste Nicht-Unterbrechungsmaskierungspriorität erhöht. Dementsprechend kann der aktuelle Thread nur durch eine ISR vorzeitig entfernt werden, wenn ein Gerät unterbricht.
  • Wenn Priorität auf VpMediumPriority festgelegt ist und dem Miniporttreiber eine 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 VideoPortSynchronizeExecutionTRUE zurück.

Hinweise

Miniporttreiber rufen diese Routine nur selten auf, wenn eine der folgenden Bedingungen erfüllt ist:

  • Die HwVidInterrupt-Funktion des Miniporttreibers teilt sich Arbeitsspeicher mit anderen Miniporttreiberfunktionen. Um auf den freigegebenen Speicher auf multiprozessorsichere Weise zugreifen zu können, 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 zugreifen kann.
  • Der Adapter muss mit einer Sequenz von Befehlen programmiert werden, ohne dass ein Kontextwechsel erforderlich ist. Beispielsweise kann die SvgaHwIoPortXxx-Funktion eines Miniporttreibers, die eine Sequenz von E/A-Anweisungen gepuffert und die Sequenz überprüft hat , VideoPortSynchronizeExecution mit HwVidSynchronizeExecutionCallback aufrufen. Diese Miniporttreiberfunktion kann den gepufferten und überprüften E/A-Stream sehr schnell an den Adapter übertragen.
Ein Aufrufer sollte den niedrigsten praktischen Prioritätswert für die Arbeit angeben, die HwVidSynchronizeExecutionCallback ausführen muss. Jede CallbackRoutine , die mit einer hohen Hardwarepriorität (VpMediumPriority oder VpHighPriority) ausgeführt wird, sollte die Steuerung so schnell wie möglich zurückgeben. Ein Treiber mit einer solchen HwVidSynchronizeExecutionCallback-Funktion sollte so konzipiert werden, dass er so viel Arbeit wie möglich in jeder anderen Treiberfunktion ausführen kann, mit Ausnahme einer seiner beiden Funktionen HwVidSynchronizeExecutionCallback und HwVidInterrupt .

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows 2000 und höheren Versionen der Windows-Betriebssysteme.
Zielplattform Desktop
Kopfzeile video.h (Video.h einschließen)
Bibliothek Videoprt.lib
DLL Videoprt.sys
IRQL <= DIRQL

Weitere Informationen

HwVidInterrupt

HwVidSynchronizeExecutionCallback