DXGK_ALLOCATIONINFO Struktur (d3dkmddi.h)
Die DXGK_ALLOCATIONINFO-Struktur beschreibt Parameter zum Erstellen einer Zuordnung.
Syntax
typedef struct _DXGK_ALLOCATIONINFO {
VOID *pPrivateDriverData;
UINT PrivateDriverDataSize;
union {
UINT Alignment;
struct {
UINT16 MinimumPageSize;
UINT16 RecommendedPageSize;
};
};
SIZE_T Size;
SIZE_T PitchAlignedSize;
DXGK_SEGMENTBANKPREFERENCE HintedBank;
DXGK_SEGMENTPREFERENCE PreferredSegment;
union {
UINT SupportedReadSegmentSet;
UINT MmuSet;
};
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;
Angehörige
pPrivateDriverData
[in] Ein Zeiger auf einen Block privater Daten. Diese Daten sind für jede Zuordnung vorgesehen und unterscheiden sich von dem pPrivateDriverData Member in der DXGKARG_CREATEALLOCATION-Struktur. Der Benutzermodusanzeigetreiber (USER-Mode Display Driver, UMD) übergibt diese Daten möglicherweise an den Kernelmodus-Miniporttreiber (KMD). Wenn Dxgkrn l 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 Byte in pPrivateDriverData-.
Alignment
[out] Die erforderliche Ausrichtung in Bytes für die Zuordnung.
MinimumPageSize
RecommendedPageSize
Size
[out] Die Größe in Byte, 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). Die KMD gibt die Zuordnungsgröße für den Videospeicher-Manager an (VidMm).
PitchAlignedSize
[out] Die Größe der Zuordnung in Byte, wenn sie sich in einem Neigungssegment befindet, das durch die PitchAlignment- Bitfeldflagge im Flags Element der DXGK_SEGMENTDESCRIPTOR Struktur für das Segment angegeben wird. Wenn die Zuordnung in einem bereichsbezogenen Bereich nicht unterstützt wird (GPUs unterstützen diesen Segmenttyp normalerweise nicht), sollte der Treiber den Wert in PitchAlignedSize auf Null festlegen. Wenn der Treiber einen Wert ungleich Null in PitchAlignedSize-angibt, muss der Wert größer oder gleich dem Wert im member Size sein.
HintedBank
[out] Eine DXGK_SEGMENTBANKPREFERENCE Struktur, die die Bankbestellungseinstellungen von KMD angibt, die VidMm für die Zuordnung verwenden. Wenn dieses Element angegeben ist, verwendet VidMm Bankinformationen zum am häufigsten bevorzugten Segment, das durch das SegmentId0 Mitglied der DXGK_SEGMENTPREFERENCE Struktur angegeben wird, die das PreferredSegment Member angibt.
PreferredSegment
[out] Eine
SupportedReadSegmentSet
[out] Segmentbezeichner, die der KMD im PreferredSegment Member für Lesevorgänge festlegen kann. Die Segmente, die diese Bezeichner angeben, sind Segmente, die die KMD-Anforderungen VidMm für die Zuordnung für Lesevorgänge verwenden, unabhängig von der Leistung. Das Festlegen von Bit 0 gibt an, dass das erste Segment unterstützt wird, das Festlegen von Bit 1 gibt an, dass das zweite Segment unterstützt wird usw.
Die KMD kann Einstellungen nur für Segmente festlegen, die für Lesevorgänge unterstützt werden. VidMm bestätigt, ob der Treiber versucht, Einstellungen für nicht unterstützte Segmente im PreferredSegment Member festzulegen.
MmuSet
SupportedWriteSegmentSet
[out] Segmentbezeichner, die der KMD im PreferredSegment Member für Schreibvorgänge festlegen kann. Die Segmente, die diese Bezeichner angeben, sind Segmente, die die KMD-Anforderungen anfordert, die VidMm für die Seitenzuordnung für Schreibvorgänge verwenden, unabhängig von der Leistung. Das Festlegen von Bit 0 gibt an, dass das erste Segment unterstützt wird, das Festlegen von Bit 1 gibt an, dass das zweite Segment unterstützt wird usw.
Die KMD kann Einstellungen nur für Segmente festlegen, die für Schreibvorgänge unterstützt werden. VidMm bestätigt, ob 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, wenn Bit 1 festgelegt wird, dass das zweite Segment für die Entfernung verwendet werden kann usw.
Nur Blendensegmente können durch dieses Element angegeben werden. Wenn der Treiber gültige Segmente angibt, die für die Entfernung verwendet werden sollen, VidMm versucht, Ressourcen in diesen Blendensegmenten zuzuordnen, um den Äumungsprozess zu beschleunigen. Wenn der Treiber "0" angibt, ruft VidMm den Treiber auf, den Inhalt einer Zuordnung direkt an 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, eine Zuordnungumzubenennen.
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 KMD 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 Bitfeldkennzeichnungen identifiziert. Diese Eigenschaften geben den Typ der zu erstellenden Zuordnung an. Die KMD gibt diese Flags für VidMm-an. Treiber, die auf eine frühere WDDM-Version als WDDM 2.0 abzielen, sollten Flagsverwenden; Treiber, die auf eine WDDM-Version >= WDDM 2.0 abzielen, sollten FlagsWddm2-verwenden.
FlagsWddm2
[out] Eine DXGK_ALLOCATIONINFOFLAGS_WDDM2_0 Struktur, die Eigenschaften für eine Zuordnung in Bitfeldkennzeichnungen identifiziert. Diese Eigenschaften geben den Typ der zu erstellenden Zuordnung an. Die KMD gibt diese Flags für VidMm-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 Flagsverwenden.
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 prioritätsstufe für Zuordnungen kein Problem für den Treiber ist, sollte der Treiber alle Prioritätsstufen auf D3DDDI_ALLOCATIONPRIORITY_NORMALfestlegen. Beachten Sie, dass 0 eine ungültige Priorität für die anfängliche Zuordnung ist.
Flags2
[out] Eine DXGK_ALLOCATIONINFOFLAGS2 Struktur, die zusätzliche Eigenschaften für eine Zuordnung enthält. Wird ab Windows 11 (WDDM 3.0) unterstützt.
Bemerkungen
Mit wdDM v2 wurde die DXGK_ALLOCATIONINFO Struktur geändert, sodass der Lese- und Schreibsegmentsatz nicht mehr unterschieden wird. Während der Oberflächenerstellung ignoriert VidMm- den wert SupportedReadSegmentSet und verwendet nur den Segmentsatz, der von SupportedWriteSegmentSetbereitgestellt wird. Treiber sollten sicherstellen, dass dieser Wert den Segmentsatz genau darstellt, der von der Zuordnung für den vorgesehenen Zweck verwendet werden kann.
Das Ignorieren des unterstützten Lesesegmentsatzes bedeutet nicht, dass er nicht mehr unterstützt wird, sondern dass es einfach nicht mehr einen Unterschied zwischen diesen Sätzen geben sollte, und VidMm kann ein geeignetes Segment für jede Zuordnung aus einem einzelnen Segmentsatz auswählen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows Vista |
Header- | d3dkmddi.h (einschließlich D3dkmddi.h) |