Freigeben über


DXGKDDI_INTERRUPT_ROUTINE Rückruffunktion (dispmprt.h)

Die DxgkDdiInterruptRoutine-Funktion verarbeitet Interrupts, die von einem Grafikkarte generiert werden.

Syntax

DXGKDDI_INTERRUPT_ROUTINE DxgkddiInterruptRoutine;

BOOLEAN DxgkddiInterruptRoutine(
  [in] IN_CONST_PVOID MiniportDeviceContext,
  [in] IN_ULONG MessageNumber
)
{...}

Parameter

[in] MiniportDeviceContext

Ein Handle für einen Kontextblock, der einem Grafikkarte zugeordnet ist. Die DxgkDdiAddDevice-Funktion des Anzeigeminiporttreibers hat dieses Handle zuvor für das DirectX-Grafikkernsubsystem bereitgestellt.

[in] MessageNumber

Der nullbasierte Index in der MSI-Tabelle (Message-Signaled Interrupt ), wenn der Interrupt nachrichtensignalisiert ist. Bei zeilenbasierten Interrupts ist dieser Parameter 0.

Rückgabewert

Wenn DxgkDdiInterruptRoutine feststellt, dass der von MiniportDeviceContext dargestellte Adapter den Interrupt nicht generiert hat, wird FALSE zurückgegeben. Andernfalls muss der Interrupt auf dem Adapter geschlossen werden, bevor true zurückgegeben wird.

Hinweise

Wenn der Interrupt zeilenbasiert ist (MessageNumber = 0), muss DxgkDdiInterruptRoutine ermitteln, ob der von MiniportDeviceContext dargestellte Adapter den Interrupt generiert hat, und, falls nicht, sofort FALSE zurückgeben.

Wenn der von MiniportDeviceContext dargestellte Adapter den Interrupt generiert hat, sollte DxgkDdiInterruptRoutine die folgenden Schritte ausführen:

  • Schließen Sie den Interrupt auf dem Adapter.
  • Schließen Sie den angeforderten Vorgang ab, der den Interrupt verursacht hat, oder stellen Sie eine DPC in die Warteschlange, die den Vorgang später abschließen wird.
  • Geben Sie TRUE so schnell wie möglich zurück.

Jede andere Anzeige-Miniporttreiberfunktion, die Arbeitsspeicher gemeinsam verwendet (z. B. ein Teil des durch MiniportDeviceContext dargestellten Zustands) mit DxgkDdiInterruptRoutine muss DxgkCbSynchronizeExecution aufrufen, um den Zugriff auf den freigegebenen Arbeitsspeicher zu synchronisieren.

Die DxgkDdiInterruptRoutine-Funktion kann DxgkCbQueueDpc und DxgkCbNotifyInterrupt aufrufen, darf jedoch keine anderen DxgkCbXxx-Funktionen aufrufen. Weitere Informationen zur richtigen Sequenz von Funktionsaufrufen finden Sie unter Übermitteln eines Befehlspuffers.

DxgkDdiInterruptRoutine wird mit einem IRQL mit erhöhten Rechten ausgeführt, sodass es (und alle aufgerufenen Funktionen) nicht ausgelagert werden können müssen. Außerdem darf DxgkDdiInterruptRoutine (und alle aufgerufenen Funktionen) nicht versuchen, auf ausgelagerten Speicher zuzugreifen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Zielplattform Desktop
Kopfzeile dispmprt.h
IRQL Weitere Informationen finden Sie im Abschnitt mit den Hinweisen.

Weitere Informationen

DxgkCbNotifyInterrupt

DxgkCbQueueDpc

DxgkCbSynchronizeExecution