Freigeben über


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 zu einem Kontextblock, der einem Anzeigeadapter zugeordnet ist. Der Display-Miniporttreiber, der zuvor dieses Handle für das Microsoft DirectX-Grafikkernsubsystem im MiniportDeviceContext Ausgabeparameter des DxgkDdiAddDevice--Funktion bereitgestellt hat.

[in] pPatch

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

Rückgabewert

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

Bemerkungen

Die DxgkDdiPatch--Funktion muss dem DMA-Puffer physische Adressen zuweisen. Wenn der Anzeige-Miniporttreiber den DMA-Puffer generiert, muss der Treiber daher sicherstellen, dass der Speicherplatz im DMA-Puffer verfügbar ist, um Anweisungen einzufügen, die zum Verarbeiten 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 bereitgestellte Patch-Location-Liste in der pPatchLocationList Mitglied 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 durch die pAllocationList Mitglied von DXGKARG_PATCH angegeben wird) enthält auch die physischen Adressen, die der Videospeicher-Manager generiert. Der Aufruf der DxgkDdiPatch--Funktion des Treibers ist die letzte Möglichkeit, 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 vorab gepatcht wird, mehrmals patchen kann.

Der Treiber kann den Wert patchen, der im SubmissionFenceId Member von DXGKARG_PATCH am Ende des DMA-Puffers in den Zaunbefehl bereitgestellt wird. Weitere Informationen zu diesem Mitglied finden Sie unter Supplying Fence Identifiers.

Wenn der Treiber einen Fehlercode zurückgibt, verursacht das Microsoft DirectX-Grafik-Kernelsubsystem eine Systemfehlerüberprüfung. In einer Absturzabbilddatei wird der Fehler durch die Meldung BugCheck-0x119angegeben, die die folgenden vier Parameter enthält.

  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 seitenfähig gemacht werden.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Vista
Zielplattform- Desktop
Header- d3dkmddi.h
IRQL- PASSIVE_LEVEL

Siehe auch

DXGKARG_PATCH

DxgkDdiAddDevice