DXGK_SEGMENTDESCRIPTOR Struktur (d3dkmddi.h)
Die DXGK_SEGMENTDESCRIPTOR-Struktur enthält Informationen zu einem Segment, das der Treiber unterstützt.
Syntax
typedef struct _DXGK_SEGMENTDESCRIPTOR {
[out] PHYSICAL_ADDRESS BaseAddress;
[out] PHYSICAL_ADDRESS CpuTranslatedAddress;
[out] SIZE_T Size;
[out] UINT NbOfBanks;
[out] SIZE_T *pBankRangeTable;
[out] SIZE_T CommitLimit;
[out] DXGK_SEGMENTFLAGS Flags;
} DXGK_SEGMENTDESCRIPTOR;
Angehörige
[out] BaseAddress
Die Basisadresse des Segments, wie durch die Grafikverarbeitungseinheit (GPU) bestimmt. Die physische Adresse einer Zuordnung, die der im Segment aufgetragene Videospeicher-Manager zugeordnet ist, wird eine GPU-Adresse zugewiesen, die von der Basisadresse versetzt wird, die BaseAddress- angibt.
Der Videospeicher-Manager ignoriert die Basisadresse von AGP-Typ Blendensegmenten (wobei die Agp Bitfeldflagge im Flags Member angegeben ist) und verwendet stattdessen die tatsächliche physische Adresse des Segments innerhalb der AGP-Blende, wie auf dem Bus bestimmt, in dem sich die GPU befindet. In diesem Fall kann der Treiber Adressen verwenden, die der Videospeicher-Manager für die Zuordnung direkt generiert hat, ohne dass eine Übersetzung erforderlich ist.
[out] CpuTranslatedAddress
Die Basisadresse des Segments, relativ zum Bus, auf dem die GPU angeschlossen ist. Wenn die GPU beispielsweise auf dem PCI-Bus verbunden ist, CpuTranslatedAddress die Basisadresse des verwendbaren Bereichs ist, der durch ein PCI-Basisadressenregister (BAR) angegeben wird. Der Treiber gibt diese Adresse nur an, wenn es ein CPU-zugängliches Segment angibt, indem das CpuVisible- Bitfeld-Flag im Flags Member festgelegt wird.
Dieses Element wird für Blendensegmente, einschließlich des AGP-Typ-Blendensegments, ignoriert. 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).
Bevor der Videospeicher-Manager eine virtuelle Adresse dem physischen Bereich zuordnet, übersetzt der Videospeicher-Manager diese physische Adresse basierend auf der CPU-Ansicht des Buss und informiert den Treiber über den Vorgang, damit der Treiber eine Blende einrichten kann, um auf den Inhalt des Segments am angegebenen Ort zuzugreifen.
[out] Size
Die Größe des Segments in Byte. Diese Größe muss ein Vielfaches der systemeigenen Hostseitengröße sein (z. B. 4 KB auf der x86-Architektur).
Für AGP-Typen-Blendensegmente (wobei die Agp Bitfeldflagge im Flags Member angegeben ist), weist der Videospeicher-Manager so viel Öffnungsraum wie möglich zu, sodass dieses Element ignoriert wird.
[out] NbOfBanks
Die Anzahl der Banken im Segment, wenn Bankwesen verwendet wird (d. r., wenn die UseBanking Bitfeldflagge im Flags Mitglied festgelegt ist).
[out] pBankRangeTable
Ein Array von Werten, das die Bereiche angibt, die jede Bank im Segment trennen. Der Treiber gibt dieses Array nur an, wenn es auch das UseBanking- Bitfeld-Flag im Flags Member festlegt.
Das Array gibt die Endadressen der ersten Bank über die NbOfBanksth Bank an (d. s. der Endversatz in das Segment für jede Bank). Beachten Sie Folgendes:
Banken sind zusammenhängend.
Die erste Bank beginnt bei Offset Null des Segments.
Die letzte Bank endet am Ende des Segments, sodass der Treiber nicht erforderlich ist, um die Endadresse der letzten Bank anzugeben.
[out] CommitLimit
Die maximale Anzahl von Bytes, die für das Segment zugesichert werden können. Bei einem Speichersegment ist der Commit-Grenzwert immer mit der Größe des Segments identisch, die im element Size angegeben wird. Bei einem Blendensegment kann der Treiber die Speichermenge begrenzen, die für das Segment auf Systemen mit geringen Mengen physischem Speicher zugesichert werden kann.
[out] Flags
Eine DXGK_SEGMENTFLAGS Struktur, die Eigenschaften in Bitfeldkennzeichnungen für das Segment identifiziert.
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 zugänglich ist, kann der Adapter nicht initialisiert werden, wenn andere Elemente festgelegt sind.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows Vista |
Header- | d3dkmddi.h (einschließlich D3dkmddi.h) |