DXGK_ALLOCATIONINFO Struktur (d3dkmddi.h)

Die DXGK_ALLOCATIONINFO-Struktur beschreibt Parameter zum Erstellen einer Zuordnung.

Syntax

typedef struct _DXGK_ALLOCATIONINFO {
  VOID                       *pPrivateDriverData;
  UINT                       PrivateDriverDataSize;
  UINT                       Alignment;
  SIZE_T                     Size;
  SIZE_T                     PitchAlignedSize;
  DXGK_SEGMENTBANKPREFERENCE HintedBank;
  DXGK_SEGMENTPREFERENCE     PreferredSegment;
  UINT                       SupportedReadSegmentSet;
  UINT                       SupportedWriteSegmentSet;
  UINT                       EvictionSegmentSet;
  union {
    UINT MaximumRenamingListLength;
    UINT PhysicalAdapterIndex;
  };
  HANDLE                     hAllocation;
  union {
    DXGK_ALLOCATIONINFOFLAGS         Flags;
    DXGK_ALLOCATIONINFOFLAGS_WDDM2_0 FlagsWddm2;
  };
  DXGK_ALLOCATIONUSAGEHINT   *pAllocationUsageHint;
  UINT                       AllocationPriority;
  DXGK_ALLOCATIONINFOFLAGS2  Flags2;
} DXGK_ALLOCATIONINFO;

Member

pPrivateDriverData

[in] Ein Zeiger auf einen Block privater Daten. Diese Daten sind für jede Zuordnung und unterscheiden sich vom pPrivateDriverData-Member in der DXGKARG_CREATEALLOCATION-Struktur . Der Benutzermodusanzeigetreiber übergibt diese Daten möglicherweise an den Anzeigeminiporttreiber. Wenn das Microsoft DirectX-Grafikkernsubsystem diese Daten jedoch übergibt, um die freigegebene primäre oder andere sperrbare Oberfläche zu beschreiben, werden die Daten als erstes Element des Arrays im pAllocationInfo-Member von DXGKARG_CREATEALLOCATION übergeben.

PrivateDriverDataSize

[in] Die Größe des Blocks privater Daten in pPrivateDriverData in Bytes.

Alignment

[out] Die erforderliche Ausrichtung in Bytes für die Zuordnung.

Size

[out] Die Größe in Bytes, die für die Zuordnung erforderlich ist. Der Größenwert wird auf ein Vielfaches der nativen Hostseitengröße erweitert (z. B. 4 KB in der x86-Architektur). Der Anzeigeminiporttreiber gibt die Zuordnungsgröße zum Videospeicher-Manager an.

PitchAlignedSize

[out] Die Größe der Zuordnung in Bytes, wenn sie sich in einem pitch-ausgerichteten Segment befindet, das durch das PitchAlignment-Bitfeldflag im Flags-Element der DXGK_SEGMENTDESCRIPTOR Struktur für das Segment angegeben wird. Wenn die Zuordnung in einem pitch-ausgerichteten Segment nicht unterstützt wird (Grafikverarbeitungseinheiten [GPUs] unterstützen diesen Segmenttyp in der Regel nicht), sollte der Treiber den Wert in PitchAlignedSize auf 0 festlegen. Wenn der Treiber einen ungleichen Wert in PitchAlignedSize angibt, muss der Wert größer oder gleich dem Wert im Size-Element sein.

HintedBank

[out] Eine DXGK_SEGMENTBANKPREFERENCE-Struktur , die die Vom Anzeigeminiporttreiber angeforderten Bankreihenfolgeeinstellungen angibt, die der Videospeicher-Manager zum Einblättern der Zuordnung verwendet. Wenn dieses Element angegeben ist, verwendet der Videospeicher-Manager Bankinformationen zum am häufigsten bevorzugten Segment, die durch das SegmentId0-Element der DXGK_SEGMENTPREFERENCE-Struktur angegeben werden, die das PreferredSegment-Element angibt.

PreferredSegment

[out] Eine DXGK_SEGMENTPREFERENCE Struktur, die bevorzugte Segmentbezeichner angibt, die der Anzeigeminiporttreiber anfordert, die der Videospeicher-Manager zum Einblättern der Zuordnung verwendet.

SupportedReadSegmentSet

[out] Segmentbezeichner, die der Anzeigeminiporttreiber im PreferredSegment-Member für Lesevorgänge festlegen kann. Bei den Segmenten, die diese Bezeichner angeben, handelt es sich um Segmente, die der Anzeigeminiporttreiber anfordert, die der Videospeicher-Manager zum Einblättern der Zuordnung für Lesevorgänge verwendet, unabhängig von der Leistung. Das Festlegen von Bit 0 gibt an, dass das erste Segment unterstützt wird, das Festlegen von Bit 1 bedeutet, dass das zweite Segment unterstützt wird usw.

Der Anzeigeminiporttreiber kann Einstellungen nur für Segmente festlegen, die für Lesevorgänge unterstützt werden. Der Videospeicher-Manager gibt an, wenn der Treiber versucht, Einstellungen für nicht unterstützte Segmente im PreferredSegment-Member festzulegen.

SupportedWriteSegmentSet

[out] Segmentbezeichner, die der Anzeigeminiporttreiber im PreferredSegment-Member für Schreibvorgänge festlegen kann. Die Segmente, die diese Bezeichner angeben, sind Segmente, die der Anzeigeminiporttreiber anfordert, die der Videospeicher-Manager zum Einblättern der Zuordnung für Schreibvorgänge verwendet, unabhängig von der Leistung. Das Festlegen von Bit 0 gibt an, dass das erste Segment unterstützt wird, das Festlegen von Bit 1 bedeutet, dass das zweite Segment unterstützt wird usw.

Der Anzeigeminiporttreiber kann Einstellungen nur für Segmente festlegen, die für Schreibvorgänge unterstützt werden. Der Videospeicher-Manager gibt an, wenn der Treiber versucht, Einstellungen für nicht unterstützte Segmente im PreferredSegment-Member festzulegen.

EvictionSegmentSet

[out] Bezeichner von Segmenten, die für die Entfernung verwendet werden können. Das Festlegen von Bit 0 gibt an, dass das erste Segment für die Entfernung verwendet werden kann, das Festlegen von Bit 1 gibt an, dass das zweite Segment für die Entfernung verwendet werden kann usw.

Dieses Element kann nur Blendensegmente angeben. Wenn der Treiber gültige Segmente angibt, die für die Entfernung verwendet werden sollen, versucht der Videospeicher-Manager, Ressourcen in diesen Blendensegmenten zuzuweisen, um den Entfernungsprozess zu beschleunigen. Wenn der Treiber 0 angibt, ruft der Videospeicher-Manager den Treiber auf, um den Inhalt einer Zuordnung direkt in den ausgelagerten Systemspeicher zu übertragen, ohne die zugrunde liegenden Seiten über ein Blendensegment zuzuordnen.

MaximumRenamingListLength

[out] Die maximale Länge der Umbenennungsliste für die Zuordnung. Weitere Informationen zur Umbenennungsliste finden Sie unter Anfordern einer Umbenennung einer Zuordnung.

Die Unterstützung für dieses Mitglied begann mit Windows 10 und WDDM v2.

PhysicalAdapterIndex

[out] Der Index des physischen Adapters.

Die Unterstützung für dieses Mitglied begann mit Windows 10 und WDDM v2.

hAllocation

[out] Ein Handle für die Zuordnung. Der Anzeigeminiporttreiber muss diesen Member auf einen Wert festlegen, den er verwenden kann, um auf seine private Nachverfolgungsstruktur für die Zuordnung zu verweisen.

Flags

[out] Eine DXGK_ALLOCATIONINFOFLAGS-Struktur , die Eigenschaften für eine Zuordnung in Bitfeldflags identifiziert. Diese Eigenschaften geben den Typ der zu erstellenden Zuordnung an. Der Anzeigeminiporttreiber gibt diese Flags für den Videospeicher-Manager an. Treiber, die auf eine WDDM-Version vor WDDM 2.0 abzielen, sollten Flags verwenden. Treiber, die auf eine beliebige WDDM-Version >= WDDM 2.0 abzielen, sollten FlagsWddm2 verwenden.

FlagsWddm2

[out] Eine DXGK_ALLOCATIONINFOFLAGS_WDDM2_0-Struktur , die Eigenschaften für eine Zuordnung in Bitfeldflags identifiziert. Diese Eigenschaften geben den Typ der zu erstellenden Zuordnung an. Der Anzeigeminiporttreiber gibt diese Flags für den Videospeicher-Manager an. Treiber, die auf eine beliebige WDDM-Version >abzielen = WDDM 2.0 sollten FlagsWddm2 verwenden. Treiber, die auf eine WDDM-Version vor WDDM 2.0 abzielen, sollten Flags verwenden.

pAllocationUsageHint

[out] Ein Zeiger auf eine DXGK_ALLOCATIONUSAGEHINT Struktur, die der Speicher-Manager verwendet, um zu bestimmen, wie die Zuordnung verwendet werden soll.

AllocationPriority

[out] Ein UINT-Wert, der die Anfangsprioritätsebene der Zuordnung angibt.

Der Treiber bestimmt die geeignete Prioritätsebene für jede Zuordnung. Weitere Informationen zu Prioritätsstufen finden Sie im Abschnitt Hinweise der PfnSetPriorityCb-Funktion . Wenn die Prioritätsebene für Zuordnungen kein Problem für den Treiber ist, sollte der Treiber alle Prioritätsebenen auf D3DDDI_ALLOCATIONPRIORITY_NORMAL festlegen. Beachten Sie, dass 0 eine ungültige anfängliche Zuordnungspriorität ist.

Flags2

[out] Eine DXGK_ALLOCATIONINFOFLAGS2-Struktur , die zusätzliche Eigenschaften für eine Zuordnung enthält. Unterstützt ab Windows 11 (WDDM 3.0).

Hinweise

Mit WDDM v2 wurde die DXGK_ALLOCATIONINFO-Struktur geändert, sodass der Satz des Lese- und Schreibsegments nicht mehr unterschieden wird. Während der Oberflächenerstellung ignoriert der Videospeicher-Manager den SupportedReadSegmentSet-Wert und verwendet nur den Segmentsatz, der von SupportedWriteSegmentSet bereitgestellt wird. Treiber sollten sicherstellen, dass dieser Wert die Segmentmenge genau darstellt, die von der Zuordnung für den beabsichtigten Zweck verwendet werden kann.

Das Ignorieren des unterstützten Lesesegmentsatzes bedeutet nicht, dass er nicht mehr unterstützt wird, sondern einfach, dass es keinen Unterschied mehr zwischen diesen Sätzen geben sollte, und der Videospeicher-Manager darf ein geeignetes Segment für jede Zuordnung aus einer einzelnen Segmentmenge auswählen.

Anforderungen

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

Weitere Informationen

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFOFLAGS

DXGK_ALLOCATIONLIST

DXGK_ALLOCATIONUSAGEHINT

DXGK_SEGMENTBANKPREFERENCE

DXGK_SEGMENTDESCRIPTOR

DXGK_SEGMENTPREFERENCE

DxgkDdiCreateAllocation

DxgkDdiRender

pfnAllocateCb