Bagikan melalui


DXGKDDI_NOTIFYWORKSUBMISSION fungsi panggilan balik (d3dkmddi.h)

Penting

Beberapa informasi berkaitan dengan produk prarilis yang mungkin dimodifikasi secara substansial sebelum dirilis secara komersial. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.

Fungsi DxgkDdiNotifyWorkSubmission memberi tahu KMD bahwa UMD telah mengirimkan pekerjaan baru.

Sintaks

DXGKDDI_NOTIFYWORKSUBMISSION DxgkddiNotifyworksubmission;

NTSTATUS DxgkddiNotifyworksubmission(
  INOUT_PDXGKARG_NOTIFYWORKSUBMISSION pArgs
)
{...}

Parameter

pArgs

[in] Arahkan ke struktur DXGKARG_NOTIFYWORKSUBMISSION yang mengidentifikasi antrean perangkat keras tempat pekerjaan dikirimkan.

Menampilkan nilai

DxgkDdiNotifyWorkSubmission harus berhasil dan mengembalikan STATUS_SUCCESS.

Keterangan

Dalam model pengiriman kerja mode pengguna, KMD tidak terlibat dalam pengiriman kerja dan karenanya biasanya tidak menyadari kapan pekerjaan baru dikirimkan pada antrean perangkat keras. Faktor ini adalah motivasi utama dari jalur pengiriman kerja latensi rendah. Namun, ada skenario niche tertentu dan batasan perangkat keras di mana KMD perlu diberi tahu setiap kali pekerjaan dikirimkan pada antrean perangkat keras. Misalnya, penjadwal perangkat keras GPU mengharuskan KMD untuk mengalihkan runlist perangkat keras dari normal ke real time ketika konteks real time mengirimkan pekerjaan. Jika KMD tidak terlibat dalam pengiriman kerja, maka tidak dapat segera memicu pengalihan runlist, yang menghasilkan penundaan eksekusi kerja real time.

Untuk mengatasi masalah ini, KMD dapat menentukan status koneksi bel pintu sebagai D3DDDI_DOORBELL_STATUS_CONNECTED_NOTIFY pada waktu pembuatan bel pintu. Setiap kali UMD melihat status bel pintu ini, UMD menyesuaikan alur kerja pengiriman kerjanya sia-sia sehingga setelah menulis perintah baru dan membunyikan bel pintu, ia memanggil kernel menggunakan D3DKMTNotifyWorkSubmission. Dxgkrnl meneruskan panggilan ini ke KMD melalui DxgkDdiNotifyWorkSubmission.

DxgkDdiNotifyWorkSubmission adalah ping sederhana dari UMD ke Dxgkrnl ke KMD, memberi tahu yang terakhir bahwa pekerjaan baru telah dikirimkan pada antrean perangkat keras tertentu, sehingga memungkinkan KMD untuk memulai tindakan tertentu seperti mengalihkan runlist ke real time.

KMD juga dapat meminta pemberitahuan secara dinamis setelah pembuatan bel pintu. Jika KMD mendeteksi kondisi di mana harus diberi tahu tentang pengiriman kerja pada antrean perangkat keras ini, maka pertama-tama KMD dapat memutuskan bel pintu dengan memanggil DxgkCbDisconnectDoorbell dengan status D3DDDI_DOORBELL_STATUS_DISCONNECTED_RETRY. Kemudian, ketika UMD mencoba menyambungkan kembali bel pintu, KMD dapat membuat koneksi dengan status D3DDDI_DOORBELL_STATUS_CONNECTED_NOTIFY.

Driver harus menggunakan mekanisme ini dalam skenario yang sangat spesifik dan jarang karena melibatkan perjalanan pulang pergi dari UMD ke KMD pada setiap pengiriman pekerjaan, dan jika digunakan untuk skenario yang luas maka itu mengalahkan tujuan model pengiriman mode pengguna latensi rendah.

Untuk informasi selengkapnya, lihat Pengiriman kerja mode pengguna.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 11, versi 24H2 (WDDM 3.2)
Header d3dkmddi.h
IRQL PASSIVE_LEVEL

Lihat juga

DXGKARG_NOTIFYWORKSUBMISSION

**DxgkDdiCreateDoorbell

DxgkCbDisconnectDoorbell