struktur DXGKARG_SUBMITCOMMAND (d3dkmddi.h)

Struktur DXGKARG_SUBMITCOMMAND menjelaskan buffer akses memori langsung (DMA) yang dikirimkan driver miniport tampilan ke unit eksekusi perintah perangkat keras selama panggilan ke DxgkDdiSubmitCommand.

Sintaks

typedef struct _DXGKARG_SUBMITCOMMAND {
  union {
    HANDLE hDevice;
    HANDLE hContext;
  };
  UINT                           DmaBufferSegmentId;
  PHYSICAL_ADDRESS               DmaBufferPhysicalAddress;
  UINT                           DmaBufferSize;
  UINT                           DmaBufferSubmissionStartOffset;
  UINT                           DmaBufferSubmissionEndOffset;
  VOID                           *pDmaBufferPrivateData;
  UINT                           DmaBufferPrivateDataSize;
  UINT                           DmaBufferPrivateDataSubmissionStartOffset;
  UINT                           DmaBufferPrivateDataSubmissionEndOffset;
  UINT                           SubmissionFenceId;
  D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
  D3DDDI_FLIPINTERVAL_TYPE       FlipInterval;
  DXGK_SUBMITCOMMANDFLAGS        Flags;
  UINT                           EngineOrdinal;
  D3DGPU_VIRTUAL_ADDRESS         DmaBufferVirtualAddress;
  UINT                           NodeOrdinal;
} DXGKARG_SUBMITCOMMAND;

Anggota

hDevice

[in] Jika driver tidak sadar beberapa mesin (yaitu, driver tidak mendukung pembuatan konteks), hDevice adalah handel ke perangkat tampilan (konteks grafis) asal permintaan pengiriman. Handel perangkat diberikan ke fungsi DxgkDdiSubmitCommand driver dalam gabungan yang DXGKARG_SUBMITCOMMAND berisi.

Untuk beberapa operasi paging, hDevice adalah NULL (misalnya, operasi paging yang mengeluarkan konten seluruh buffer bingkai selama manajemen daya). Operasi halaman ditunjukkan oleh bendera Paging bit-field di anggota Bendera .

hContext

[in] Jika driver mengetahui beberapa mesin (yaitu, driver mendukung pembuatan konteks), handel ke konteks perangkat asal permintaan pengiriman. Handel konteks diberikan ke fungsi DxgkDdiSubmitCommand driver dalam serikat yang DXGKARG_SUBMITCOMMAND berisi.

Untuk beberapa operasi paging, hContext adalah NULL (misalnya, operasi paging yang mengeluarkan konten seluruh buffer bingkai selama manajemen daya). Operasi halaman ditunjukkan oleh bendera Paging bit-field di anggota Bendera .

DmaBufferSegmentId

[in] Pengidentifikasi segmen memori tempat buffer DMA dipajang.

Pengidentifikasi dapat menjadi nol jika driver yang ditunjukkan tidak memetakan buffer DMA ke segmen dengan mengatur anggota DmaBufferSegmentSet dari struktur DXGK_CONTEXTINFO ke 0 dalam panggilan ke fungsi DxgkDdiCreateContext driver. Jika DmaBufferSegmentId adalah nol, buffer DMA dialokasikan sebagai blok memori sistem yang berdekatan.

DmaBufferPhysicalAddress

[in] Jenis data PHYSICAL_ADDRESS (yang didefinisikan sebagai LARGE_INTEGER) yang menunjukkan alamat fisik tempat buffer DMA di-paged in.

Jika DmaBufferSegmentId adalah nol, DmaBufferPhysicalAddress adalah alamat fisik dalam memori sistem tempat buffer DMA berada.

Jika DmaBufferSegmentId bukan nol, DmaBufferPhysicalAddress adalah alamat fisik segmen untuk buffer DMA; yaitu, alamat menunjuk ke alamat fisik segmen aperture yang merupakan ruang alamat yang berdekatan yang ditentukan dalam memori fisik (DXGK_SEGMENTDESCRIPTOR. BaseAddress + DmaBuffer.SegmentOffset).

Perhatikan bahwa DmaBufferPhysicalAddress selalu mengacu pada awal buffer DMA meskipun driver mungkin diperlukan untuk menambal atau mengirimkan bagian dari buffer DMA yang tidak menyertakan awal buffer DMA (yaitu, jika anggota DmaBufferSubmissionStartOffset bukan nol).

DmaBufferSize

[in] Ukuran, dalam byte, dari buffer DMA.

DmaBufferSize mewakili seluruh panjang buffer DMA; namun, permintaan untuk menambal atau mengirimkan mungkin hanya merujuk ke sebagian buffer DMA.

DmaBufferSubmissionStartOffset

[in] Offset, dalam byte, dari awal buffer DMA hingga awal bagian buffer DMA yang memerlukan patching atau pengiriman. Offset yang diterima pada waktu patch cocok dengan offset yang diterima pada waktu pengiriman.

DmaBufferSubmissionEndOffset

[in] Offset, dalam byte, dari awal buffer DMA hingga akhir bagian buffer DMA yang memerlukan patching atau pengiriman. Offset yang diterima pada waktu patch cocok dengan offset yang diterima pada waktu pengiriman.

pDmaBufferPrivateData

[in] Penunjuk ke data pribadi residen pengemudi yang terkait dengan buffer DMA yang diisi selama fungsi DxgkDdiRender, DxgkDdiPresent, atau DxgkDdiPatch .

Untuk operasi paging, buffer paging tunggal digunakan untuk beberapa pengiriman independen. Dalam skenario itu, driver dapat menunjukkan --dengan mengembalikan penunjuk data driver pribadi yang sesuai dalam panggilan ke fungsi DxgkDdiBuildPagingBuffer --untuk memiliki rentang data pribadi driver tunggal untuk semua pengiriman atau satu untuk setiap pengiriman.

DmaBufferPrivateDataSize

[in] Ukuran data driver privat yang dituju pDmaBufferPrivateData , dalam byte.

DmaBufferPrivateDataSize mewakili seluruh panjang buffer data driver privat; namun, bagian yang terkait dengan pengiriman saat ini mungkin lebih kecil.

KMD tidak boleh memvalidasi data privat saat anggota ini nol.

DmaBufferPrivateDataSubmissionStartOffset

[in] Offset, dalam byte, dari awal data privat buffer DMA yang ditentukan pDmaBufferPrivateData ke awal bagian data privat yang terkait dengan pengiriman saat ini. DmaBufferPrivateDataSubmissionStartOffset selalu nol untuk permintaan nonpaging.

DmaBufferPrivateDataSubmissionEndOffset

[in] Offset, dalam byte, dari awal data privat buffer DMA yang ditentukan pDmaBufferPrivateData hingga akhir bagian data privat yang terkait dengan pengiriman saat ini.

SubmissionFenceId

[in] Pengidentifikasi unik yang dapat ditulis driver ke dalam perintah pagar di buffer cincin, yang merupakan buffer tempat buffer DMA diantrekan agar unit pemrosesan grafis (GPU) berjalan. Untuk informasi selengkapnya tentang jenis pengidentifikasi ini, lihat Menyediakan Pengidentifikasi Pagar.

VidPnSourceId

[in] Nomor identifikasi berbasis nol dari sumber video yang ada di jalur topologi video present network (VidPN) untuk operasi balik. Anggota ini hanya valid ketika bendera bidang bit Flip atau FlipWithNoWait diatur dalam anggota Bendera .

FlipInterval

[in] Nilai D3DDDI_FLIPINTERVAL_TYPE-ketik yang menunjukkan interval balik (yaitu, jika flip terjadi setelah sinkronisasi vertikal nol, satu, dua, tiga, atau empat). FlipInterval hanya valid jika bendera Flip bit-field diatur (yaitu TRUE) di anggota Bendera .

Flags

[in] Struktur DXGK_SUBMITCOMMANDFLAGS yang mengidentifikasi informasi tentang buffer DMA untuk dikirimkan.

EngineOrdinal

[in] Disiapkan untuk penggunaan di masa mendatang.

DmaBufferVirtualAddress

Anggota ini dicadangkan dan harus diatur ke nol. Didukung dimulai dengan Windows 7.

NodeOrdinal

Indeks berbasis nol dari simpul tempat konteks dibuat. Mengidentifikasi simpul ketika konteksnya adalah NULL. Didukung dimulai dengan Windows 8.

Keterangan

Fungsi DxgkDdiSubmitCommand driver miniport tampilan harus menyadari bahwa beberapa proses dapat mengakses objek perangkat yang ditentukan anggota hDevice secara bersamaan.

Persyaratan

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

Lihat juga

D3DDDI_FLIPINTERVAL_TYPE

DXGK_CONTEXTINFO

DXGK_SUBMITCOMMANDFLAGS

DxgkCbNotifyDpc

DxgkCbNotifyInterrupt

DxgkDdiBuildPagingBuffer

DxgkDdiCreateContext

DxgkDdiPatch

DxgkDdiPresent

DxgkDdiRender

DxgkDdiSubmitCommand