DXGKDDI_BEGINEXCLUSIVEACCESS fungsi panggilan balik (d3dkmddi.h)

Dxgkrnl memanggil DxgkDdiBeginExclusiveAccess untuk memberi tahu driver mode kernel bahwa sakelar domain IOMMU akan terjadi.

Sintaks

DXGKDDI_BEGINEXCLUSIVEACCESS DxgkddiBeginexclusiveaccess;

NTSTATUS DxgkddiBeginexclusiveaccess(
  IN_CONST_HANDLE hAdapter,
  IN_PDXGKARG_BEGINEXCLUSIVEACCESS pBeginExclusiveAccess
)
{...}

Parameter

hAdapter

[in] Handel ke blok konteks yang terkait dengan adaptor tampilan.

pBeginExclusiveAccess

[in] Penunjuk ke struktur DXGKARG_BEGINEXCLUSIVEACCESS yang berisi argumen input untuk DxgkDdiBeginExclusiveAccess.

Menampilkan nilai

DxgkDdiBeginExclusiveAccess harus mengembalikan STATUS_SUCCESS jika operasi berhasil. Jika tidak, itu harus mengembalikan kode kesalahan NTSTATUS yang sesuai.

Keterangan

Lampiran dan pencopotan domain IOMMU sangat cepat, tetapi tetap tidak atomik saat ini. Ini berarti bahwa transaksi yang dikeluarkan melalui PCIe tidak dijamin akan diterjemahkan dengan benar saat bertukar ke domain dengan pemetaan yang berbeda.

Untuk menangani situasi ini, Dxgkrnl memanggil pasangan KMD DDI berikut:

  • DxgkDdiBeginExclusiveAccess untuk memberi tahu KMD bahwa sakelar domain IOMMU akan terjadi.
  • DxgkDdiEndExclusiveAccess setelah sakelar domain IOMMU selesai.

Driver harus memastikan bahwa perangkat kerasnya diam setiap kali perangkat dialihkan ke domain IOMMU baru. Artinya, driver harus memastikan bahwa driver tidak membaca atau menulis ke memori sistem dari perangkat di antara kedua panggilan ini.

Di antara kedua panggilan ini, Dxgkrnl menjamin hal berikut:

  • Penjadwal akan ditangguhkan. Semua beban kerja aktif akan dibersihkan, dan tidak ada beban kerja baru yang akan dikirim atau dijadwalkan pada perangkat keras.
  • Tidak ada panggilan DDI lain yang akan dilakukan.

Sebagai bagian dari panggilan ini, driver dapat memilih untuk menonaktifkan dan menekan gangguan (termasuk interupsi vsync) selama akses eksklusif, bahkan tanpa pemberitahuan eksplisit dari OS.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 10, versi 1803 (WDDM 2.4)
Header d3dkmddi.h
IRQL PASSIVE_LEVEL

Lihat juga

DRIVER_INITIALIZATION_DATA

DXGKARG_BEGINEXCLUSIVEACCESS

DxgkDdiEndExclusiveAccess