DXGK_CONTEXTINFO Struktur (d3dkmddi.h)

Die DXGK_CONTEXTINFO-Struktur beschreibt einen Gerätekontext.

Syntax

typedef struct _DXGK_CONTEXTINFO {
  UINT                  DmaBufferSize;
  UINT                  DmaBufferSegmentSet;
  UINT                  DmaBufferPrivateDataSize;
  UINT                  AllocationListSize;
  UINT                  PatchLocationListSize;
  UINT                  Reserved;
  DXGK_CONTEXTINFO_CAPS Caps;
  ULONG                 PagingCompanionNodeId;
} DXGK_CONTEXTINFO;

Member

DmaBufferSize

Die Größe des Puffers von Hardwarebefehlen, der über den direkten Speicherzugriff (DMA) an die Grafikverarbeitungseinheit (GPU) gesendet wird, in Bytes.

Der DMA-Puffer kann wachsen und verkleinern, nachdem der Kontext erstellt wurde. Der DMA-Puffer kann jedoch nie kleiner als die von DmaBufferSize festgelegte Startgröße verkleinern.

DmaBufferSegmentSet

Die Bezeichner der Segmente, in denen der DMA-Puffer für die GPU zugänglich gemacht werden soll.

DmaBufferPrivateDataSize

Die Größe der treiberresidenten privaten Datenstruktur in Bytes, die jedem DMA-Puffer zugeordnet ist. Der Arbeitsspeicher für diese private Datenstruktur wird aus einem nicht ausgestellten Pool zugewiesen. Wenn der Treiber null in DmaBufferPrivateDataSize angibt, wird kein Arbeitsspeicher für die private Datenstruktur zugewiesen.

Die private Datenstruktur, die einem DMA-Puffer zugeordnet ist, wird beim Erstellen des DMA-Puffers mit null initialisiert. Während der Lebensdauer des DMA-Puffers greift der Videospeicher-Manager nie auf die private Datenstruktur zu, die dem DMA-Puffer zugeordnet ist.

AllocationListSize

Die Anfangsanzahl von Elementen in einem Array von Zuordnungen (d.a. ein Array von DXGK_ALLOCATIONLIST Strukturen). Diese Zahl ist die Anfangsanzahl von Zuordnungen, die der Treiber in den pAllocationList-Membern der DXGKARG_PRESENT - und DXGKARG_RENDER-Strukturen in Aufrufen der DxgkDdiPresent - bzw . DxgkDdiRender-Funktionen des Treibers anfordert.

Die Zuordnungsliste kann wachsen und verkleinern, nachdem der Kontext erstellt wurde. Die Zuordnungsliste kann jedoch niemals kleiner als die von AllocationListSize festgelegte Startgröße verkleinern.

Hinweis Wenn DXGK_CREATECONTEXTFLAGS. GdiContext ist auf 1 festgelegt, was bedeutet, dass der Kontext als GDI-spezifischer Kontext erstellt wird. AllocationListSize muss auf den Wert 256 festgelegt werden.
 

PatchLocationListSize

Die Anfangsanzahl von Elementen in einem Array von Patchspeicherorten (d. h. ein Array von D3DDDI_PATCHLOCATIONLIST Strukturen) für das Gerät im Benutzer- und Kernelmodus. Diese Zahl ist die Anfangsanzahl von Patchspeicherorten, die der Treiber anfordert, sich in den pPatchLocationListIn-Membern der DXGKARG_RENDER Strukturen in Aufrufen der DxgkDdiRender-Funktion zu befinden.

Die Patchspeicherortliste kann wachsen und verkleinern, nachdem der Kontext erstellt wurde. Die Patchlocation-Liste kann jedoch nie kleiner als die von PatchLocationListSize festgelegte Startgröße verkleinern.

Reserved

Dieser Member ist reserviert und sollte auf null festgelegt werden.

Dieses Mitglied ist ab Windows 7 verfügbar.

Caps

Beschreibt optionale Features, die vom Kontext unterstützt werden.

Wird ab Windows 10 unterstützt.

PagingCompanionNodeId

Gibt den nullbasierten Engine-Bezeichner der Engine an, die für diesen Kontext paging-Begleiter verwendet werden soll.

Wird ab Windows 10 unterstützt.

Hinweise

Ein Anzeigeminiporttreiber gibt Werte für die Member DmaBufferSize und AllocationListSize an, um Folgendes zu gewährleisten:

  • Das Microsoft DirectX-Grafiksubsystem kann nur einen DMA-Puffer (Direct Memory Access) verwenden, um (mithilfe der DxgkDdiPresent-Funktion des Anzeigeminiporttreibers) mindestens eine RECT-Struktur für alle Szenarien anzuzeigen.
  • Die Größen von DMA- und Zuordnungslistenpuffern sind groß genug, um mindestens einen Befehl zu enthalten, der nicht auf mehrere Puffer aufgeteilt werden kann.
  • Die Größen von DMA- und Zuordnungslistenpuffern sind groß genug, um Setup- und DMA-Aufwand zu vermeiden.
Der Display-Miniporttreiber kann nur Blendensegmente im DmaBufferSegmentSet-Element angeben. wenn der Treiber ein Speichersegment angibt, tritt ein Fehler bei der Kontexterstellung auf.

Wenn der Treiber DmaBufferSegmentSet auf 0 festlegt, weist der Videospeicher-Manager den DMA-Puffern zusammenhängenden ausgelagerten Speicher zu, bei dem es sich um kombinierten Schreibspeicher handelt. Daher muss die GPU auf DMA-Puffer zugreifen, indem sie PCI-Zyklen auf Computern verwendet, auf denen AGP-Übertragungen außerhalb der AGP-Blende nicht zulässig sind.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Kopfzeile d3dkmddi.h (einschließlich D3dkmddi.h)

Weitere Informationen

D3DDDI_PATCHLOCATIONLIST

DXGKARG_CREATECONTEXT

DXGKARG_PRESENT

DXGKARG_RENDER

DXGK_ALLOCATIONLIST

DXGK_CREATECONTEXTFLAGS

DxgkDdiPresent

DxgkDdiRender

RECT