struktur DXGK_SEGMENTDESCRIPTOR3 (d3dkmddi.h)

Struktur DXGK_SEGMENTDESCRIPTOR3 berisi informasi tentang segmen yang didukung driver yang terdiri dari memori yang dipesan BIOS (yang dihapus menyeluruh selama transisi ke status berdaya rendah) dan memori yang dicadangkan driver.

Sintaks

typedef struct _DXGK_SEGMENTDESCRIPTOR3 {
  [out] DXGK_SEGMENTFLAGS Flags;
  [out] PHYSICAL_ADDRESS  BaseAddress;
  [out] PHYSICAL_ADDRESS  CpuTranslatedAddress;
  [out] SIZE_T            Size;
  [out] UINT              NbOfBanks;
  [out] SIZE_T            *pBankRangeTable;
  [out] SIZE_T            CommitLimit;
        SIZE_T            SystemMemoryEndAddress;
        SIZE_T            Reserved;
} DXGK_SEGMENTDESCRIPTOR3;

Anggota

[out] Flags

Struktur DXGK_SEGMENTFLAGS yang mengidentifikasi properti, dalam bendera bit-field, untuk segmen .

Perhatikan bahwa untuk segmen aperture jenis AGP, driver harus secara eksklusif mengatur anggota Agp struktur dalam penyatuan yang DXGK_SEGMENTFLAGS berisi. Meskipun segmen aperture jenis AGP adalah aperture dan dapat diakses oleh CPU, jika ada anggota lain yang diatur, adaptor gagal diinisialisasi.

[out] BaseAddress

Alamat dasar segmen, seperti yang ditentukan oleh unit pemrosesan grafis (GPU). Alamat fisik alokasi yang ditentukan manajer memori video di segmen diberi alamat GPU yang diimbangi dari alamat dasar yang ditentukan BaseAddress .

Manajer memori video mengabaikan alamat dasar segmen aperture jenis AGP (di mana bendera bit-field Agp ditentukan dalam anggota Bendera ) dan sebaliknya menggunakan alamat fisik aktual segmen dalam aperture AGP, seperti yang ditentukan pada bus tempat GPU berada. Dalam situasi ini, driver dapat menggunakan alamat yang dihasilkan manajer memori video untuk alokasi secara langsung tanpa memerlukan terjemahan.

[out] CpuTranslatedAddress

Alamat dasar segmen, relatif terhadap bus tempat GPU terhubung. Misalnya, ketika GPU terhubung pada bus PCI, CpuTranslatedAddress adalah alamat dasar rentang yang dapat digunakan yang ditentukan oleh register alamat dasar (BAR) PCI. Driver menentukan alamat ini hanya jika menentukan segmen yang dapat diakses CPU dengan mengatur bendera bit-field CpuVisible di anggota Bendera .

Anggota ini diabaikan untuk segmen aperture, termasuk segmen aperture jenis AGP. Satu-satunya pengecualian terjadi ketika driver tampilan mode pengguna belum menyiapkan alamat virtual alternatif untuk alokasi utama (yaitu, ketika driver belum mengatur UseAlternateVA di anggota Bendera struktur D3DDDICB_LOCKFLAGS selama panggilan ke fungsi pfnLockCb ).

Sebelum manajer memori video memetakan alamat virtual ke rentang fisik, manajer memori video menerjemahkan alamat fisik ini berdasarkan tampilan CPU bus dan memberi tahu driver tentang operasi sehingga driver dapat mengatur aperture untuk mengakses konten segmen di lokasi yang ditentukan.

[out] Size

Ukuran, dalam byte, dari segmen . Ukuran ini harus berupa kelipatan ukuran halaman host asli (misalnya, 4 KB pada arsitektur x86).

Untuk segmen aperture jenis AGP (di mana bendera bidang bit Agp ditentukan dalam anggota Bendera ), manajer memori video mengalokasikan ruang bukaan sebanyak mungkin, sehingga anggota ini diabaikan.

[out] NbOfBanks

Jumlah bank dalam segmen, jika perbankan digunakan (yaitu, jika bendera bit-field UseBanking diatur dalam anggota Bendera ).

[out] pBankRangeTable

Array nilai yang menunjukkan rentang yang memisahkan setiap bank di segmen. Driver menentukan array ini hanya jika juga mengatur bendera bit-field UseBanking di anggota Bendera .

Array menentukan alamat akhir bank pertama melalui bank NbOfBanksth (yaitu, offset akhir ke dalam segmen untuk setiap bank). Perhatikan hal-hal berikut:

  • Bank-bank itu berseberangan.

  • Bank pertama mulai mengimbangi nol segmen.

  • Bank terakhir berakhir di akhir segmen, sehingga driver tidak diharuskan untuk menentukan alamat akhir bank terakhir.

[out] CommitLimit

Jumlah maksimum byte yang dapat diterapkan pada segmen. Untuk segmen memori, batas penerapan selalu sama dengan ukuran segmen, yang ditentukan dalam anggota Ukuran . Untuk segmen aperture, driver dapat membatasi jumlah memori yang dapat diterapkan pada segmen pada sistem dengan memori fisik dalam jumlah kecil.

SystemMemoryEndAddress

Untuk segmen yang sebagian terdiri dari memori sistem, semua alokasi yang dimulai setelah alamat ini dibersihkan dalam transisi ke status hibernasi. Alokasi yang ada sepenuhnya dalam memori sistem, di mana alamat segmen kurang dari atau sama dengan SystemMemoryEndAddress, tidak dikeluarkan dalam transisi ini.

Driver miniport tampilan harus mengatur anggota ini ke nilai non-NULL jika segmen sebagian dipertahankan dalam transisi ke status hibernasi, dalam hal ini anggota PartiallyPreservedDuringHibernate dalam struktur DXGK_SEGMENTFLAGS harus diatur.

Memori yang dicadangkan driver berjalan dari alamat segmen 0 melalui SystemMemoryEndAddress, inklusif. Memori yang dipesan BIOS berjalan dari (SystemMemoryEndAddress+1) hingga akhir segmen.

Reserved

Anggota ini dicadangkan dan harus diatur ke nol.

Keterangan

Struktur ini digunakan oleh driver miniport tampilan mode kernel WDDM 1.2 atau yang lebih baru untuk mengembalikan informasi tentang segmen memori sebagai respons terhadap panggilan fungsi DxgkDdiQueryAdapterInfo di mana subsistem grafis menentukan nilai DXGKQAITYPE_QUERYSEGMENT3 dalam jenis anggota struktur DXGKARG_QUERYADAPTERINFO .

Struktur ini ditunjukkan oleh anggota pSegmentDescriptor dari struktur DXGK_QUERYSEGMENTOUT3 .

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8
Server minimum yang didukung Windows Server 2012
Header d3dkmddi.h

Lihat juga

D3DDDICB_LOCKFLAGS

DXGKARG_QUERYADAPTERINFO

DXGK_QUERYSEGMENTOUT3

DXGK_SEGMENTFLAGS

DxgkDdiQueryAdapterInfo