Bagikan melalui


struktur DXGK_DEVICEINFO (d3dkmddi.h)

Struktur DXGK_DEVICEINFO menjelaskan parameter yang diperlukan subsistem kernel grafis Microsoft DirectX dari driver miniport tampilan.

Sintaks

typedef struct _DXGK_DEVICEINFO {
  [out] UINT                 DmaBufferSize;
  [out] UINT                 DmaBufferSegmentSet;
  [out] UINT                 DmaBufferPrivateDataSize;
  [out] UINT                 AllocationListSize;
  [out] UINT                 PatchLocationListSize;
  [out] DXGK_DEVICEINFOFLAGS Flags;
} DXGK_DEVICEINFO;

Anggota

[out] DmaBufferSize

Ukuran, dalam byte, dari buffer perintah perangkat keras yang dikirim melalui akses memori langsung (DMA) ke perangkat keras.

Buffer DMA dapat tumbuh dan menyusut setelah perangkat dibuat; namun, buffer DMA tidak pernah dapat menyusut lebih kecil dari ukuran awal yang ditentukan DmaBufferSize .

[out] DmaBufferSegmentSet

Pengidentifikasi segmen tempat buffer DMA harus dapat diakses oleh unit pemrosesan grafis (GPU).

[out] DmaBufferPrivateDataSize

Ukuran, dalam byte, dari struktur data pribadi residen pengemudi yang terkait dengan setiap buffer DMA. Memori untuk struktur data privat ini dialokasikan dari kumpulan yang tidak dipagasi. Jika driver menentukan nol dalam DmaBufferPrivateDataSize, tidak ada memori yang dialokasikan untuk struktur data privat.

Struktur data privat yang terkait dengan buffer DMA diinisialisasi ke nol saat buffer DMA dibuat. Selama masa pakai buffer DMA, manajer memori video tidak pernah mengakses struktur data privat yang terkait dengan buffer DMA.

[out] AllocationListSize

Jumlah awal elemen dalam array alokasi (yaitu, array struktur DXGK_ALLOCATIONLIST ). Nomor ini adalah jumlah awal alokasi yang diminta driver untuk berada di anggota pAllocationList dari struktur DXGKARG_PRESENT dan DXGKARG_RENDER dalam panggilan ke fungsi DxgkDdiPresent dan DxgkDdiRender driver.

Daftar alokasi dapat bertambah dan menyusut setelah perangkat dibuat; namun, daftar alokasi tidak pernah dapat menyusut lebih kecil dari ukuran awal yang ditentukan AllocationListSize .

[out] PatchLocationListSize

Jumlah awal elemen dalam array lokasi patch (yaitu, array struktur D3DDDI_PATCHLOCATIONLIST ) untuk perangkat dalam mode pengguna dan mode kernel. Nomor ini adalah jumlah awal lokasi patch yang diminta driver untuk berada di anggota pPatchLocationListIn dari struktur DXGKARG_RENDER dalam panggilan ke fungsi DxgkDdiRender-nya .

Daftar lokasi patch dapat tumbuh dan menyusut setelah perangkat dibuat; namun, daftar lokasi patch tidak pernah dapat menyusut lebih kecil dari ukuran awal yang ditentukan PatchLocationListSize .

[out] Flags

Struktur DXGK_DEVICEINFOFLAGS yang mengidentifikasi, dalam bendera bit-field, informasi tentang perangkat.

Keterangan

Driver miniport tampilan menentukan nilai untuk anggota DmaBufferSize dan AllocationListSize untuk menjamin hal berikut:

  • Subsistem grafis DirectX hanya dapat menggunakan satu buffer DMA untuk ditampilkan (dengan menggunakan fungsi DxgkDdiPresent driver miniport tampilan) setidaknya satu struktur RECT untuk semua skenario.
  • Ukuran buffer DMA dan daftar alokasi cukup besar untuk menahan setidaknya satu perintah yang tidak dapat dibagi di beberapa buffer.
  • Ukuran buffer DMA dan daftar alokasi cukup besar untuk menghindari pengaturan dan overhead DMA.
Driver miniport tampilan hanya dapat menentukan segmen bukaan di anggota DmaBufferSegmentSet ; jika driver menentukan segmen memori, kegagalan pembuatan perangkat terjadi.

Jika driver mengatur DmaBufferSegmentSet ke 0, manajer memori video mengalokasikan memori terkunci halaman yang berdekatan, yang dipetakan memori gabungan tulis, untuk buffer DMA. Oleh karena itu, GPU harus mengakses buffer DMA dengan menggunakan siklus PCI pada sistem di mana transfer AGP yang terjadi di luar bukaan AGP tidak diizinkan.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista
Header d3dkmddi.h (termasuk D3dkmddi.h)

Lihat juga

D3DDDI_PATCHLOCATIONLIST

DXGKARG_PRESENT

DXGKARG_RENDER

DXGK_ALLOCATIONLIST

DXGK_DEVICEINFOFLAGS

DxgkDdiCreateDevice

DxgkDdiPresent

DxgkDdiRender