DXGKDDI_INTERRUPT_ROUTINE Rückruffunktion (dispmprt.h)
Die DxgkDdiInterruptRoutine Funktion behandelt Unterbrechungen, die von einem Anzeigeadapter generiert werden.
Syntax
DXGKDDI_INTERRUPT_ROUTINE DxgkddiInterruptRoutine;
BOOLEAN DxgkddiInterruptRoutine(
[in] IN_CONST_PVOID MiniportDeviceContext,
[in] IN_ULONG MessageNumber
)
{...}
Parameter
[in] MiniportDeviceContext
Ein Handle zu einem Kontextblock, der einem Anzeigeadapter zugeordnet ist. Die DxgkDdiAddDevice-Funktion des Display-Miniporttreibers dieses Handle für das DirectX-Grafik-Kernel-Subsystem bereitgestellt.
[in] MessageNumber
Der nullbasierte Index in der meldungs signalisierter Interrupt (MSI)-Tabelle, wenn der Interrupt meldungs signalisiert ist. Bei zeilenbasierten Unterbrechungen ist dieser Parameter null.
Rückgabewert
Wenn DxgkDdiInterruptRoutine bestimmt, dass der durch MiniportDeviceCon text 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.
Bemerkungen
Wenn der Interrupt zeilenbasiert ist (MessageNumber = 0), muss DxgkDdiInterruptRoutine bestimmen, ob der Adapter, der durch MiniportDeviceContext dargestellt wird, den Interrupt generiert hat, und wenn nicht, false sofort zurückgeben.
Wenn der durch MiniportDeviceCon text 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 Unterbrechung verursacht hat, oder stellen Sie einen DPC in die Warteschlange, der den Vorgang später abschließen wird.
- True so schnell wie möglich zurückgeben.
Alle anderen Miniporttreiberfunktionen, die Arbeitsspeicher gemeinsam nutzen (z. B. ein Teil des Zustands, der durch MiniportDeviceContextdargestellt wird) mit DxgkDdiInterruptRoutine- müssen DxgkCbSynchronizeExecution aufrufen, um den Zugriff auf den freigegebenen Speicher zu synchronisieren.
Die DxgkDdiInterruptRoutine--Funktion kann DxgkCbQueueDpc- und DxgkCbNotifyInterrupt- aufrufen, darf jedoch keine anderen DxgkCb-Xxx--Funktionen aufrufen. Weitere Informationen zur richtigen Abfolge von Funktionsaufrufen finden Sie unter Übermitteln eines Befehlspuffers.
DxgkDdiInterruptRoutine in einem IRQL mit erhöhten Rechten ausgeführt wird, sodass sie (und alle aufgerufenen Funktionen) nicht seitenfähig sein müssen. Außerdem darf DxgkDdiInterruptRoutine (und alle aufgerufenen Funktionen) nicht versuchen, auf den ausgelagerten Speicher zuzugreifen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows Vista |
Zielplattform- | Desktop |
Header- | dispmprt.h |
IRQL- | Siehe Abschnitt "Hinweise". |