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 vorgesehen und unterscheiden sich vom pPrivateDriverData-Element in der DXGKARG_CREATEALLOCATION Struktur. Der Anzeigetreiber des Benutzermodus übergibt diese Daten möglicherweise an den Display-Miniporttreiber. Wenn das Microsoft DirectX-Grafik-Kernel-Subsystem 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-Element 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 systemeigenen Hostseitengröße erweitert (z. B. 4 KB auf der x86-Architektur). Der Anzeige-Miniporttreiber gibt die Zuordnungsgröße für den Videospeicher-Manager an.

PitchAlignedSize

[out] Die Größe in Byte der Zuordnung, wenn sie sich in einem Ablagesegment befindet, das durch das PitchAlignment-Bitfeld-Flag im Flags-Element der DXGK_SEGMENTDESCRIPTOR Struktur für das Segment angegeben wird. Wenn die Zuordnung in einem Ablagesegment nicht unterstützt wird (Grafikverarbeitungseinheiten [GPUs] unterstützen häufig diesen Segmenttyp nicht), sollte der Treiber den Wert in PitchAlignedSize auf Null festlegen. Wenn der Treiber einen Wert ohne Zero in PitchAlignedSize angibt, muss der Wert größer oder gleich dem Wert im Size-Element sein.

HintedBank

[out] Eine DXGK_SEGMENTBANKPREFERENCE Struktur, die die Bankbestellungseinstellungen angibt, die der Anzeige-Miniporttreiber anfordert, dass der Videospeicher-Manager für die Seitenzuordnung verwendet wird. Wenn dieses Element angegeben ist, verwendet der Videospeichermanager Bankinformationen über das am besten bevorzugte Segment, das durch das SegmentId0-Element der DXGK_SEGMENTPREFERENCE Struktur angegeben wird, die das PreferredSegment-Element angibt.

PreferredSegment

[out] Eine DXGK_SEGMENTPREFERENCE Struktur, die bevorzugte Segmentbezeichner angibt, die der Anzeige-Miniporttreiber anfordert, dass der Videospeicher-Manager für die Seitenzuordnung verwendet wird.

SupportedReadSegmentSet

[out] Segmentbezeichner, die der Anzeige-Miniporttreiber für Lesevorgänge im PreferredSegment-Element festlegen kann. Die Segmente, die diese Bezeichner angeben, sind Segmente, die der Anzeige-Miniporttreiber anfordert, dass der Videospeicher-Manager die Zuordnung für Lesevorgänge unabhängig von der Leistung verwendet. Das Festlegen von Bit 0 gibt an, dass das erste Segment unterstützt wird, wenn Bit 1 festgelegt wird, dass das zweite Segment unterstützt wird usw.

Der Anzeige-Miniporttreiber kann einstellungen nur für Segmente festlegen, die für Lesevorgänge unterstützt werden. Der Videospeicher-Manager stellt fest, ob der Treiber versucht, Einstellungen für nicht unterstützte Segmente im PreferredSegment-Element festzulegen.

SupportedWriteSegmentSet

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

Der Anzeige-Miniporttreiber kann einstellungen nur für Segmente festlegen, die für Schreibvorgänge unterstützt werden. Der Videospeicher-Manager stellt fest, ob der Treiber versucht, Einstellungen für nicht unterstützte Segmente im PreferredSegment-Element festzulegen.

EvictionSegmentSet

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

Nur Blendensegmente können durch dieses Element angegeben werden. Wenn der Treiber gültige Segmente angibt, die für die Auslassung verwendet werden sollen, versucht der Videospeicher-Manager, Ressourcen in diesen Blendensegmenten zuzuweisen, um den Eviction-Prozess zu beschleunigen. Wenn der Treiber "0" angibt, ruft der Videospeicher-Manager den Treiber auf, um den Inhalt einer Zuordnung direkt an den seitengesperrten Systemspeicher zu übertragen, ohne die zugrunde liegenden Seiten durch ein Blendensegment zuzuordnen.

MaximumRenamingListLength

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

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

PhysicalAdapterIndex

[out] Der Index des physischen Adapters.

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

hAllocation

[out] Ein Handle für die Zuordnung. Der Anzeige-Miniporttreiber muss dieses Element 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 Bitfeld-Flags identifiziert. Diese Eigenschaften geben den Typ der zu erstellenden Zuordnung an. Der Anzeige-Miniporttreiber gibt diese Kennzeichen für den Videospeicher-Manager an. Treiber, die auf eine frühere WDDM-Version als 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 Bitfeld-Flags identifiziert. Diese Eigenschaften geben den Typ der zu erstellenden Zuordnung an. Der Anzeige-Miniporttreiber gibt diese Kennzeichen für den Videospeicher-Manager an. Treiber, die auf eine WDDM-Version >= WDDM 2.0 abzielen, sollten FlagsWddm2 verwenden. Treiber, die auf eine frühere WDDM-Version als WDDM 2.0 abzielen, sollten Flags verwenden.

pAllocationUsageHint

[out] Ein Zeiger auf eine DXGK_ALLOCATIONUSAGEHINT Struktur, die der Speichermanager verwendet, um zu bestimmen, wie die Zuordnung verwendet wird.

AllocationPriority

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

Der Treiber bestimmt die entsprechende Prioritätsstufe für jede Zuordnung. Weitere Informationen zu Prioritätsstufen finden Sie im Abschnitt "Hinweise" der Funktion pfnSetPriorityCb . Wenn die Prioritätsstufe für Zuordnungen kein Problem für den Treiber ist, sollte der Treiber alle Prioritätsstufen 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).

Bemerkungen

Mit dem WDDM v2 wurde die DXGK_ALLOCATIONINFO Struktur geändert, sodass der Lese- und Schreibsegmentsatz 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 genau den Segmentsatz darstellt, der 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 nicht mehr einen Unterschied zwischen diesen Sätzen aufweisen sollte, und der Videospeicher-Manager kann ein geeignetes Segment für jede Zuordnung aus einem einzelnen Segmentsatz auswählen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista
Header d3dkmddi.h (include D3dkmddi.h)

Siehe auch

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFOFLAGS

DXGK_ALLOCATIONLIST

DXGK_ALLOCATIONUSAGEHINT

DXGK_SEGMENTBANKPREFERENCE

DXGK_SEGMENTDESCRIPTOR

DXGK_SEGMENTPREFERENCE

DxgkDdiCreateAllocation

DxgkDdiRender

pfnAllocateCb