Freigeben über


DXGK_SEGMENTFLAGS Struktur (d3dkmddi.h)

Die DXGK_SEGMENTFLAGS Struktur identifiziert Eigenschaften für ein Segment, das der Treiber über einen Aufruf seiner DxgkDdiQueryAdapterInfo Funktion bereitstellt.

Syntax

typedef struct _DXGK_SEGMENTFLAGS {
  union {
    struct {
      UINT Aperture : 1;
      UINT Agp : 1;
      UINT CpuVisible : 1;
      UINT UseBanking : 1;
      UINT CacheCoherent : 1;
      UINT PitchAlignment : 1;
      UINT PopulatedFromSystemMemory : 1;
      UINT PreservedDuringStandby : 1;
      UINT PreservedDuringHibernate : 1;
      UINT PartiallyPreservedDuringHibernate : 1;
      UINT DirectFlip : 1;
      UINT Use64KBPages : 1;
      UINT ReservedSysMem : 1;
      UINT SupportsCpuHostAperture : 1;
      UINT SupportsCachedCpuHostAperture : 1;
      UINT ApplicationTarget : 1;
      UINT VprSupported : 1;
      UINT VprPreservedDuringStandby : 1;
      UINT EncryptedPagingSupported : 1;
      UINT LocalBudgetGroup : 1;
      UINT NonLocalBudgetGroup : 1;
      UINT PopulatedByReservedDDRByFirmware : 1;
#if ...
      UINT Reserved : 10;
#elif
      UINT Reserved : 11;
#elif
      UINT Reserved : 21;
#else
      UINT Reserved : 22;
#endif
    };
    UINT Value;
  };
} DXGK_SEGMENTFLAGS;

Angehörige

Aperture

[out] Ein UINT-Wert, der angibt, ob es sich bei dem Segment um ein Blendensegment anstelle eines Speichersegments handelt. Ein Blendensegment verfügt nicht über physische Seiten, die Inhalte für eine Zuordnung enthalten können. Wenn der Videospeicher-Manager eine Zuordnung in ein Speichersegment aufgibt, überträgt der Speicher-Manager den Inhalt der Zuordnung vom Speicher des Systems an den Segmentspeicherort. Wenn der Videospeicher-Manager eine Zuordnung in ein Blendensegment aufgibt, ordnet der Speichermanager die physischen Seiten der Zuordnungsspeicher in das Segment zu.

Wenn der Treiber dieses Element angibt, muss er auch die Karten-Blendensegment- und Unmap-Blendensegment-Vorgangstypen für seine DxgkDdiBuildPagingBuffer--Funktion implementieren.

Das Festlegen dieses Elements entspricht dem Festlegen des ersten Bits des 32-Bit-Value Members (0x00000001).

Agp

[out] Ein UINT-Wert, der angibt, ob das Segment ein AGP**-Typ Blendensegment ist, das einen Teil der AGP-Blende verwendet, die der Chipsatz verfügbar macht. Der Videospeicher-Manager weist die Seite für die zugrunde liegende Blende zu und kommuniziert mit dem Grafikadressen-Neuzuordnungstabellentreiber (GART) zum Zuordnen und Aufheben der Zuordnung des Speichers für die Blende. Da nur ein AGP-Segment vorhanden sein kann, sollte der Treiber nicht das Agp- Bitfeld-Flag mit anderen DXGK_SEGMENTFLAGS Bitfeld-Flags angeben.

Das Festlegen dieses Elements entspricht dem Festlegen des zweiten Bits des 32-Bit-Value Members (0x00000002).

CpuVisible

[out] Ein UINT-Wert, der angibt, ob auf die CPU an der Adresse zugegriffen werden kann, die durch die CpuTranslatedAddress Mitglied der DXGK_SEGMENTDESCRIPTOR Struktur angegeben wird, die das Speichersegment beschreibt.

Dieses Element hat keine Bedeutung für ein Blendensegment, einschließlich des AGP-Typ-Blendensegments. Die einzige Ausnahme tritt auf, wenn der Anzeigetreiber für den Benutzermodus keine alternative virtuelle Adresse für eine primäre Zuordnung eingerichtet hat (d. a., wenn der Treiber UseAlternateVA im Flags Member der D3DDDICB_LOCKFLAGS Struktur während eines Aufrufs der pfnLockCb-Funktion nicht festgelegt hat).

Weitere Informationen finden Sie in den Hinweisen.

Das Festlegen dieses Elements entspricht dem Festlegen des dritten Bits des 32-Bit-Value Members (0x00000004).

UseBanking

[out] Ein UINT-Wert, der angibt, ob das Segment in Banken unterteilt ist, die der Treiber verwendet, um dem Videospeichermanager Hinweise zur Platzierung von Zuordnungen innerhalb des Segments bereitzustellen. Der Treiber sollte auch gültige Bankinformationen in den NbOfBanks und pBankRangeTable Mitglieder der DXGK_SEGMENTDESCRIPTOR Struktur angeben, die das Segment beschreibt.

Das Festlegen dieses Elements entspricht dem Festlegen des vierten Bits des 32-Bit-Value Members (0x00000008).

CacheCoherent

[out] Ein UINT-Wert, der angibt, ob das Blendensegment die Cachekohärenz mit zwischenspeicherbaren Seiten beibehalten kann, die in der Blende zugeordnet sind. Dieses Element kann nur mit dem Festlegen des Blend Members festgelegt werden (d. h. CacheCoherent hat keine Bedeutung für ein Speichersegment).

Das Festlegen dieses Elements entspricht dem Festlegen des fünften Bits des 32-Bit-Value Members (0x00000010).

PitchAlignment

[out] Ein UINT-Wert, der angibt, ob eine Zuordnung, die dem Segment zugeordnet ist, ausgerichtet sein muss. Für diese Art von Segment verwendet der Videospeicher-Manager das Size Member der DXGK_ALLOCATIONINFO-Struktur für die Zuordnung, um einen Sicherungsspeicher für die Zuordnung zuzuweisen. Der Videospeicher-Manager verwendet jedoch die PitchAlignedSize Member von DXGK_ALLOCATIONINFO, um Ressourcen für das Segment zuzuweisen. Eine Zuordnung, die für diese Art von Segment vorgesehen ist, weist in der Regel eine andere Größe für den Sicherungsspeicher und für das Segment auf. Wenn die Größe des Sicherungsspeichers nicht mit der Segmentgröße übereinstimmt, muss der Treiber bestimmen, wie die Daten in der Zuordnung ordnungsgemäß verschoben werden. Diese Art von Segment kann nicht für die Entfernung verwendet werden.

Das Festlegen dieses Elements entspricht dem Festlegen des sechsten Bits des 32-Bit-Value Members (0x00000020).

PopulatedFromSystemMemory

[out] Ein UINT-Wert, der angibt, ob das Speichersegment tatsächlich aus dem Systemspeicher aufgefüllt wird, den der Treiber während der Initialisierung zugewiesen hat. Wenn das Speichersegment aus dem Systemspeicher aufgefüllt wird, den das BIOS reserviert hat und nicht auf das Betriebssystem zugreifen kann (d. h. das Betriebssystem zählt diesen Systemspeicher nicht, wenn das Betriebssystem die Gesamtmenge des Systemspeichers meldet), sollte der Treiber dieses Kennzeichen nicht festlegen. Diese Kennzeichnung ist ungültig und wird auf Blendensegmenten ignoriert.

Das Festlegen dieses Elements entspricht dem Festlegen des siebten Bits des 32-Bit-Value Members (0x00000040).

PreservedDuringStandby

[out] Ein UINT-Wert, der angibt, ob das Segment in einem Übergang zu einem Standbysystem-Energiezustand beibehalten wird.

Weitere Informationen zu Optionen für den Energieübergang finden Sie in den Anmerkungen.

Das Festlegen dieses Elements entspricht dem Festlegen des achten Bits des 32-Bit-Value Members (0x00000080).

Wird ab Windows 8 unterstützt.

PreservedDuringHibernate

[out] Ein UINT-Wert, der angibt, ob das Segment in einem Übergang zu einem Ruhezustand des Systems beibehalten wird. Legen Sie dieses Flag nicht fest, es sei denn, der PreservedDuringStandby Member ist ebenfalls festgelegt. Weitere Informationen zu Optionen für den Energieübergang finden Sie in den Anmerkungen.

Das Festlegen dieses Elements entspricht dem Festlegen des neunten Bits des 32-Bit-Value Members (0x00000100).

Wird ab Windows 8 unterstützt.

PartiallyPreservedDuringHibernate

[out] Ein UINT-Wert, der angibt, ob das Segment teilweise in einem Übergang zu einem Ruhezustand des Systems beibehalten wird. Legen Sie dieses Flag nicht fest, es sei denn, der PreservedDuringStandby Member ist ebenfalls festgelegt. Weitere Informationen zu Optionen für den Energieübergang finden Sie in den Anmerkungen.

Das Festlegen dieses Elements entspricht dem Festlegen des zehnten Bits des 32-Bit-Value Members (0x00000200).

Wird ab Windows 8 unterstützt.

DirectFlip

[out] Ein UINT-Wert, der angibt, ob ein Segment Direct Flip-Zuordnungen unterstützt. In diesem Fall muss der Treiber sicherstellen, dass direkte Flip-Zuordnungen angeheftet und aus diesem Segment gescannt werden können.

Das Festlegen dieses Elements entspricht dem Festlegen des elften Bits des 32-Bit-Value Members (0x00000400).

Wird ab Windows 8 unterstützt.

Use64KBPages

[out] Wenn festgelegt, unterstützt das GPU-Speichersegment 64 KB Seiten. Andernfalls werden 4 KB Seiten unterstützt. Wenn der Treiber die Obergrenze festlegt und eine Zuordnung in das Segment eingelagert werden kann, muss die Zuordnungsausrichtung, die vom Kernelmodustreiber von DXGK_ALLOCATIONINFOzurückgegeben wird, mehrere 64 KB sein.

Wird ab Windows 10 unterstützt.

ReservedSysMem

[out] Reserviert für die Systemverwendung und sollte nicht vom Kernelmodustreiber festgelegt werden.

Wird ab Windows 10 unterstützt.

SupportsCpuHostAperture

[out] Bei Festlegung kann das Segment über die CPU-Host-Blende zugeordnet werden. Dieses Flag kann nicht in Kombination mit dem CpuVisible Flag verwendet werden.

Wird ab Windows 10 unterstützt.

SupportsCachedCpuHostAperture

[out] Wenn festgelegt, gibt dies an, dass die Hardware die CPU-Cache-kohärente CPU-Host-Blende unterstützt. Darüber hinaus muss die SupportsCpuHostAperture Flag festgelegt werden. Das Flag wird in der Regel von den GPU-Emulationstreibern der Software festgelegt.

Wird ab Windows 10 unterstützt.

ApplicationTarget

[out] Wenn festgelegt, gibt es an, dass dieses Segment von Anwendungsbudgets ausgerichtet werden soll.

Wird ab Windows 10 unterstützt.

VprSupported

[out] Wenn festgelegt, gibt an, dass videogeschützte Region (VPR) unterstützt wird.

VprPreservedDuringStandby

[out] Wenn festgelegt, gibt an, dass der Inhalt von VPRs während des Standbymodus beibehalten wird.

EncryptedPagingSupported

[out] Wenn festgelegt, gibt an, dass hardwaregeschützte Zuordnungen während des Pagings verschlüsselt werden.

LocalBudgetGroup

[out] Wenn festgelegt, gibt an, dass dieses Segment für die Budgetgruppe des lokalen Speichersegments gerechnet wird.

NonLocalBudgetGroup

[out] Wenn festgelegt, gibt an, dass dieses Segment für die Budgetgruppe des nicht lokalen Speichersegments zählt.

PopulatedByReservedDDRByFirmware

[out] Wenn festgelegt, gibt an, dass dieses Segment von reservierten System-DDR-Speicher nach Firmware aufgefüllt wird. Verfügbar ab Windows Server 2022 (WDDM 2.9).

Reserved

[out] Dieses Element ist reserviert und sollte auf Null festgelegt werden.

Value

[out] Ein Mitglied in der Union, das DXGK_SEGMENTFLAGS enthält, das einen 32-Bit-Wert enthalten kann, der Eigenschaften des Segments identifiziert.

Bemerkungen

Der Treiber kann Eigenschaften des Segments angeben, indem Bits im 32-Bit-Value Member festgelegt werden, oder indem einzelne Elemente der Struktur in der Union festgelegt werden, die DXGK_SEGMENTFLAGS enthält.

Beachten Sie, dass der Treiber für ein AGP-Typ Blendensegment ausschließlich die Agp Mitglied der Struktur in der Vereinigung festlegen muss, die DXGK_SEGMENTFLAGS enthält. Obwohl das AGP-Typ Blendensegment eine Blende ist und für die CPU sichtbar ist, wenn andere Member festgelegt sind, kann der Adapter nicht initialisiert werden.

Im Sonderfall, in dem die Zuordnung ein Blendensegment für eine gemeinsame Primärzuweisung verwendet (DXGKARG_GETSTANDARDALLOCATIONDRIVERDATA.StandardAllocationType ist D3DKMDT_STANDARDALLOCATION_SHAREDPRIMARYSURFACE) und DXGK_ALLOCATIONINFOFLAGS.UseAlternateVA nicht festgelegt ist, sollte der Treiber eine abschnittsgestützte primäre Zuordnung (DXGK_VIDMMCAPS.SectionBackedPrimary- festgelegt) verwenden, wenn die DxgkDdiQueryAdapterInfo-Funktion des Treibers aufgerufen wird. Durch die Verwendung einer abschnittsgestützten Primär können Sie die Einschränkungen von CpuVisible- für das Blendensegment vermeiden.

Sie können die Einschränkungen von CpuVisible- für ein Blendensegment vermeiden, indem Sie eine freigegebene, abschnittsbasierte Primärzuweisung verwenden. Verwenden Sie in diesem Fall ein Blendensegment für eine gemeinsame primäre Zuordnung (DXGKARG_GETSTANDARDALLOCATIONDRIVERDATA.StandardAllocationType ist D3DKMDT_STANDARDALLOCATION_SHAREDPRIMARYSURFACE), legen Sie DXGK_ALLOCATIONINFOFLAGSnicht fest.UseAlternateVA-, und verwenden Sie eine abschnittsgestützte primäre Zuordnung (festgelegt DXGK_VIDMMCAPS.SectionBackedPrimary), wenn die DxgkDdiQueryAdapterInfo -Funktion des Treibers aufgerufen wird.

Optimierte Standbyeinstellungen

Die Kombination von Werten für die PreservedDuringStandby, PreservedDuringHibernateund PartiallyPreservedDuringHibernate Member bestimmt, ob ein Segment aus seinem Inhalt gelöscht wird, wenn das System wie folgt in einen Standby-Systemzustand wechselt.

Beibehalten während des Standbymodus Während des Ruhezustands beibehalten Teilweise während des Ruhezustands erhalten Standbyzustand Ruhezustand
1 1 1 Ungültig Ungültig
1 1 0 nicht gelöscht nicht gelöscht
1 0 1 nicht gelöscht Teilweise gelöscht
1 0 0 nicht gelöscht gereinigt
0 1 1 Ungültig Ungültig
0 1 0 Ungültig Ungültig
0 0 1 Ungültig Ungültig
0 0 0 gereinigt gereinigt

Das Betriebssystem erkennt keine Kombinationen in dieser Tabelle, die als "ungültig" gekennzeichnet sind.

Wenn der hybriden Energiesparmodus Modus aktiviert ist, wirkt das System so, als ob es sich um den Ruhezustand handelt: Es löscht Segmente, die während des Ruhezustands nicht beibehalten werden, auch wenn er in einen Energiesparmodus wechselt.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar ab Windows Vista.
Header- d3dkmddi.h (einschließlich D3dkmddi.h)

Siehe auch

DXGKARG_QUERYADAPTERINFO

DXGK_ALLOCATIONINFO

DXGK_QUERYSEGMENTIN

DXGK_SEGMENTDESCRIPTOR

DXGK_SEGMENTDESCRIPTOR3

DxgkDdiBuildPagingBuffer-

DxgkDdiQueryAdapterInfo