Freigeben über


PVIDEO_HW_INTERRUPT Rückruffunktion (video.h)

HwVidInterrupt erkennt und schließt Interrupts, die von der zugeordneten Grafikkarte generiert wurden.

Syntax

PVIDEO_HW_INTERRUPT PvideoHwInterrupt;

BOOLEAN PvideoHwInterrupt(
  PVOID HwDeviceExtension
)
{...}

Parameter

HwDeviceExtension

Zeiger auf den Speicherbereich des Miniporttreibers pro Adapter. Weitere Informationen finden Sie unter Geräteerweiterungen.

Rückgabewert

Wenn HwVidInterrupt feststellt, dass die zugehörige Hardware den Interrupt nicht generiert hat, gibt es FALSE zurück. Andernfalls muss der Interrupt auf dem Adapter geschlossen werden, bevor true zurückgegeben wird.

Hinweise

Ein Miniporttreiber muss HwVidInterrupt implementieren, wenn seine Grafikkarte Interrupts generiert.

Zunächst sollte HwVidInterrupt ermitteln, ob der Adapter den Interrupt tatsächlich verursacht hat. Andernfalls sollte diese Funktion sofort FALSE zurückgeben, sodass der ISR des Geräts, das den Interrupt verursacht hat, sofort aufgerufen wird.

Andernfalls ist HwVidInterrupt in der Regel für den Abschluss des E/A-Vorgangs verantwortlich, der den Interrupt verursacht hat, und sollte folgendes tun:

  • Schließen Sie den Interrupt auf dem Adapter (erforderlich).
  • Schließen Sie den angeforderten Vorgang ab, der den Interrupt verursacht hat.
  • Geben Sie die Steuerung so schnell wie möglich zurück (erforderlich).
Wenn ein Miniporttreiber über eine HwVidInterrupt-Funktion verfügt, kann für den entsprechenden Anzeigetreiber kein Register oder Speicherspeicherort sichtbar sein, auf den HwVidInterrupt zugegriffen werden kann. Ein Interrupt kann auftreten, während der Anzeigetreiber eines der beteiligten Register oder Speicherspeicherorte ändert, und es gibt keine Möglichkeit, die Synchronisierung sicherzustellen. Daher müssen sich alle Funktionen, die Zugriff auf die kritischen Register oder Speicherspeicherorte für interruptgesteuerte Vorgänge benötigen, im Miniporttreiber befinden.

Wenn eine andere Miniporttreiberfunktion Arbeitsspeicher gemeinsam verwendet, z. B. teil der HwDeviceExtension, mit HwVidInterrupt, muss videoPortSynchronizeExecution aufgerufen werden, um den Zugriff auf den freigegebenen Bereich zu synchronisieren.

HwVidInterrupt kann nur die folgenden vom System bereitgestellten VideoPortXxx-Routinen aufrufen (siehe Vom Videoporttreiber exportierte Funktionen):

HwVidInterrupt darf keineVideoPortXxx-Funktion aufrufen, die nicht in der vorherigen Liste enthalten ist. Ein Verstoß gegen diese Anforderung führt zu Systemfehlern (ein "Bluescreen").

Eine HwVidInterrupt-Funktion kann nicht ausgelagert werden, und auch keine Funktion, die sie aufruft.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile video.h (einschließen von Video.h)

Weitere Informationen

Vom Videoporttreiber exportierte Funktionen

HwVidSynchronizeExecutionCallback

VideoPortDisableInterrupt

VideoPortEnableInterrupt

VideoPortLogError

VideoPortStallExecution

VideoPortSynchronizeExecution

VideoPortZeroDeviceMemory

VideoPortZeroMemory