struktur DXGKARG_RENDER (d3dkmddi.h)

Struktur DXGKARG_RENDER menjelaskan anggota untuk menghasilkan buffer akses memori langsung (DMA) dari buffer perintah.

Sintaks

typedef struct _DXGKARG_RENDER {
  [in]     const VOID               *pCommand;
  [in]     UINT                     CommandLength;
  [out]    VOID                     *pDmaBuffer;
  [in]     UINT                     DmaSize;
  [in]     VOID                     *pDmaBufferPrivateData;
  [in]     UINT                     DmaBufferPrivateDataSize;
  [in]     DXGK_ALLOCATIONLIST      *pAllocationList;
  [in]     UINT                     AllocationListSize;
  [in]     D3DDDI_PATCHLOCATIONLIST *pPatchLocationListIn;
  [in]     UINT                     PatchLocationListInSize;
  [in/out] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListOut;
  [in]     UINT                     PatchLocationListOutSize;
  [in/out] UINT                     MultipassOffset;
  [in]     UINT                     DmaBufferSegmentId;
  [in]     PHYSICAL_ADDRESS         DmaBufferPhysicalAddress;
} DXGKARG_RENDER;

Anggota

[in] pCommand

Penunjuk ke awal buffer perintah.

Catatan Ketika DxgkDdiRender dipanggil, driver miniport tampilan harus memvalidasi buffer. Lihat Keterangan di DxgkDdiRender untuk informasi penting tentang bagaimana pengemudi harus mengakses anggota ini.
 

[in] CommandLength

Ukuran, dalam byte, dari buffer perintah yang dituju pCommand .

[out] pDmaBuffer

Penunjuk ke awal buffer DMA, yang selaras pada 4 KB. Buffer ini dapat dikirim melalui DMA ke perangkat keras grafis. Sebelum driver miniport tampilan kembali dari fungsi DxgkDdiRender atau DxgkDdiRenderKm , driver harus mengatur pDmaBuffer ke byte kosong berikutnya yang mengikuti byte terakhir yang ditulis driver, atau driver harus menunjuk ke lokasi (satu byte di luar ruang buffer) jika tidak ada lebih banyak ruang yang tersedia. Lokasi ini akan benar jika buffer cukup besar.

[in] DmaSize

Ukuran, dalam byte, dari buffer DMA yang dituju pDmaBuffer .

[in] pDmaBufferPrivateData

Penunjuk ke struktur data privat residen driver yang digunakan untuk menghasilkan buffer DMA yang dituju pDmaBuffer .

[in] DmaBufferPrivateDataSize

Jumlah byte yang tetap berada dalam struktur data privat yang dituju pDmaBufferPrivateData untuk operasi saat ini.

[in] pAllocationList

Array struktur DXGK_ALLOCATIONLIST untuk daftar alokasi yang dirujuk oleh buffer DMA. Setiap alokasi yang dirujuk akan muncul sekali untuk performa optimal.

[in] AllocationListSize

Jumlah elemen yang tersedia dalam array yang ditentukan pAllocationList , yang mewakili jumlah spesifikasi alokasi untuk dikirim melalui DMA ke perangkat keras grafis.

[in] pPatchLocationListIn

Array struktur D3DDDI_PATCHLOCATIONLIST untuk daftar lokasi patch yang disediakan driver tampilan mode pengguna dalam panggilan ke fungsi pfnRenderCb .

Catatan Ketika DxgkDdiRender dipanggil, driver miniport tampilan harus memvalidasi buffer. Lihat Keterangan di DxgkDdiRender untuk informasi penting tentang bagaimana pengemudi harus mengakses anggota ini.
 

[in] PatchLocationListInSize

Jumlah elemen dalam daftar lokasi patch yang ditentukan pPatchLocationListIn .

[in/out] pPatchLocationListOut

Array struktur D3DDDI_PATCHLOCATIONLIST untuk daftar lokasi patch yang diisi driver miniport tampilan. Sebelum driver kembali dari panggilan ke fungsi DxgkDdiRender atau DxgkDdiRenderKm , driver harus mengatur pPatchLocationListOut ke elemen D3DDDI_PATCHLOCATIONLIST berikutnya yang mengikuti elemen D3DDDI_PATCHLOCATIONLIST terakhir yang diperbarui driver.

[in] PatchLocationListOutSize

Jumlah elemen dalam daftar lokasi patch yang ditentukan pPatchLocationListOut . Driver miniport tampilan tidak diperlukan untuk mengisi semua elemen di seluruh daftar; driver hanya boleh menggunakan elemen yang diperlukan untuk menggambarkan lokasi patch dalam buffer DMA.

[in/out] MultipassOffset

Nilai UINT yang menentukan kemajuan operasi penyajian jika fungsi DxgkDdiRender atau DxgkDdiRenderKm driver miniport tampilan harus mengembalikan STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER untuk mendapatkan buffer DMA baru. Ketika fungsi DxgkDdiRender atau DxgkDdiRenderKm driver pertama kali dipanggil dengan buffer perintah baru, MultipassOffset diinisialisasi ke nol. Sebelum driver kembali dari panggilan DxgkDdiRender atau DxgkDdiRenderKm , driver mengatur anggota ini untuk menunjukkan kemajuan terjemahan untuk panggilan DxgkDdiRender atau DxgkDdiRenderKm berikutnya dengan buffer perintah yang sama. Subsistem kernel grafik DirectX tidak mengubah nilai lebih lanjut.

[in] DmaBufferSegmentId

Pengidentifikasi segmen memori tempat buffer DMA di-paged in. Jika pengidentifikasi adalah nol, buffer DMA tidak di-paged dengan benar.

[in] DmaBufferPhysicalAddress

Jenis data PHYSICAL_ADDRESS (yang didefinisikan sebagai LARGE_INTEGER) yang menunjukkan alamat fisik tempat buffer DMA di-paged in. Jika alamat fisik adalah nol, buffer DMA tidak di-paged dengan benar.

Keterangan

Dukungan untuk fungsi DxgkDdiRenderKm ditambahkan dimulai dengan Windows 7 untuk adaptor tampilan yang mendukung Akselerasi Perangkat Keras GDI.

Persyaratan

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

Lihat juga

D3DDDI_PATCHLOCATIONLIST

DXGK_ALLOCATIONLIST

DxgkDdiRender

DxgkDdiRenderKm

pfnRenderCb