DXGKDDI_PATCH Rückruffunktion (d3dkmddi.h)

Die DxgkDdiPatch-Funktion weist dem angegebenen DMA-Puffer (Direct Memory Access) physische Adressen zu, bevor der DMA-Puffer an die Grafikhardware übermittelt wird.

Syntax

DXGKDDI_PATCH DxgkddiPatch;

NTSTATUS DxgkddiPatch(
  [in] IN_CONST_HANDLE hAdapter,
  [in] IN_CONST_PDXGKARG_PATCH pPatch
)
{...}

Parameter

[in] hAdapter

Ein Handle für einen Kontextblock, der einer Grafikkarte zugeordnet ist. Der Anzeige-Miniporttreiber hat dieses Handle zuvor für das Microsoft DirectX-Grafikkernsubsystem im Ausgabeparameter MiniportDeviceContext der DxgkDdiAddDevice-Funktion bereitgestellt.

[in] pPatch

Ein Zeiger auf eine DXGKARG_PATCH-Struktur , die den DMA-Puffer beschreibt, der mit physischen Adressen gepatcht werden soll.

Rückgabewert

Gibt nach erfolgreichem Abschluss STATUS_SUCCESS zurück. Wenn der Treiber stattdessen einen Fehlercode zurückgibt, verursacht das Betriebssystem eine Systemfehlerprüfung. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".

Hinweise

Die DxgkDdiPatch-Funktion muss dem DMA-Puffer physische Adressen zuweisen. Wenn der Anzeige-Miniporttreiber den DMA-Puffer generiert, muss der Treiber daher sicherstellen, dass im DMA-Puffer Speicherplatz verfügbar ist, um Anweisungen einzufügen, die für die Verarbeitung physischer Adressen erforderlich sind. Beachten Sie, dass physische Adressen dem Videospeicher, dem AGP-/PCI-Express-Speicher oder dem Systemspeicher entsprechen können.

Der Treiber muss die angegebene Patchspeicherortliste im pPatchLocationList-Element der DXGKARG_PATCH Struktur untersuchen, auf die vom pPatch-Parameter verwiesen wird, um Orte im DMA-Puffer zu identifizieren, die mit physischen Adressen gepatcht werden müssen. Die angegebene Zuordnungsliste (die vom pAllocationList-Element von DXGKARG_PATCH angegeben wird) enthält auch die physischen Adressen, die vom Videospeicher-Manager generiert werden. Der Aufruf der DxgkDdiPatch-Funktion des Treibers ist die letzte Gelegenheit für den Treiber, den Inhalt des DMA-Puffers zu ändern, bevor der DMA-Puffer an die Grafikverarbeitungseinheit (GPU) übermittelt wird. Beachten Sie, dass der Treiber einen DMA-Puffer in Szenarien, in denen der DMA-Puffer vorzeitig entfernt wird, mehrmals patchen kann.

Der Treiber kann den Wert, der im SubmissionFenceId-Element von DXGKARG_PATCH angegeben wird, in den Fence-Befehl am Ende des DMA-Puffers patchen. Weitere Informationen zu diesem Member finden Sie unter Bereitstellen von Zaunbezeichnern.

Wenn der Treiber einen Fehlercode zurückgibt, führt das Microsoft DirectX-Grafikkernsystem zu einer Systemfehlerüberprüfung. In einer Absturzabbilddatei wird der Fehler durch die Meldung BugCheck 0x119 mit den folgenden vier Parametern notiert.

  1. 0x3
  2. Ein Zeiger auf eine interne Planerdatenstruktur
  3. Ein Zeiger auf eine interne Planerdatenstruktur
  4. Ein Zeiger auf eine interne Planerdatenstruktur
DxgkDdiPatch sollte als ausserstellbar gemacht werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Zielplattform Desktop
Kopfzeile d3dkmddi.h
IRQL PASSIVE_LEVEL

Weitere Informationen

DXGKARG_PATCH

DxgkDdiAddDevice