Bagikan melalui


DXGKCB_EXCLUDE_ADAPTER_ACCESS fungsi panggilan balik (dispmprt.h)

Fungsi DxgkCbExcludeAdapterAccess mencegah semua akses ke adaptor tampilan dan memanggil rutinitas panggilan balik DxgkProtectedCallback yang disediakan saat dalam keadaan terlindungi ini.

Sintaks

DXGKCB_EXCLUDE_ADAPTER_ACCESS DxgkcbExcludeAdapterAccess;

NTSTATUS DxgkcbExcludeAdapterAccess(
  [in] HANDLE DeviceHandle,
  [in] ULONG Attributes,
  [in] DXGKDDI_PROTECTED_CALLBACK DxgkProtectedCallback,
  [in] PVOID ProtectedCallbackContext
)
{...}

Parameter

[in] DeviceHandle

Handel yang mewakili adaptor tampilan. Driver miniport tampilan memperoleh handel ini di anggota DeviceHandle dari struktur DXGKRNL_INTERFACE yang diteruskan ke DxgkDdiStartDevice.

[in] Attributes

Nilai yang menentukan operasi memori video. Parameter ini dapat berupa kombinasi dari nilai bendera bit berikut, kecuali bahwa DXGK_EXCLUDE_EVICT_ALL dan DXGK_EXCLUDE_CALL_SYNCHRONOUS saling eksklusif. Nilai-nilai ini didefinisikan dalam Dispmprt.h.

DXGK_EXCLUDE_EVICT_ALL

Semua memori video dalam adaptor disalin ke memori sistem; ini adalah operasi yang mahal. Jika parameter Atribut tidak diatur ke nilai ini, akses ke permukaan terkunci dalam memori sistem ditangguhkan.

DXGK_EXCLUDE_CALL_SYNCHRONOUS

Menjalankan rutinitas panggilan balik driver DxgkProtectedCallback yang dilindungi dalam konteks utas yang sama dengan pemanggil. Pemanggil harus memanggil dari tingkat kedua atau panggilan DDI yang disinkronkan tingkat ketiga . Jika tidak , fungsi DxgkCbExcludeAdapterAccess akan gagal.

DXGK_EXCLUDE_BRIDGE_ACCESS

Melindungi akses ke port akar PCI Express (PCIe) ketika driver perlu mengakses ruang konfigurasi port akar. Atur parameter Atribut ke nilai ini sebelum memanggil fungsi DxgkCbReadDeviceSpace atau DxgkCbWriteDeviceSpace dengan parameter DataType diatur ke DXGK_WHICHSPACE_BRIDGE.

[in] DxgkProtectedCallback

Rutinitas panggilan balik yang akan dipanggil kembali ketika semua akses ke adaptor telah dihentikan.

[in] ProtectedCallbackContext

Penunjuk ke nilai untuk diteruskan ke parameter ProtectedCallbackContext dari rutinitas panggilan balik DxgkProtectedCallback .

Menampilkan nilai

DxgkCbExcludeAdapterAccess mengembalikan STATUS_SUCCESS jika berhasil. Jika tidak, ia mengembalikan salah satu kode kesalahan yang ditentukan dalam Ntstatus.h.

Keterangan

Permintaan aplikasi akan diblokir hingga fungsi ini kembali. Sementara dalam keadaan perlindungan ini, rutinitas panggilan balik DxgkProtectedCallback yang disediakan dipanggil di IRQL = PASSIVE_LEVEL.

DxgkCbExcludeAdapterAccess memperoleh akses adaptor eksklusif untuk mencegah operasi I/O terkait grafis ke adaptor tampilan dan semua tautan. Ini secara efektif menganggur GPU selama seluruh durasi panggilan.

Fungsi ini juga mencegah semua akses ruang konfigurasi PCI ke port akar PCI Express (PCIe) jika DXGK_EXCLUDE_BRIDGE_ACCESS ditentukan dalam parameter Atribut .

Driver tidak boleh memblokir eksekusi berkelanjutan dari utas panggilan dengan menunggu rutinitas panggilan balik DxgkProtectedCallback kembali. Misalnya, driver dapat menjadwalkan utas pekerja asinkron untuk menangani rutinitas panggilan balik.

Pengecualian untuk pemblokiran permintaan aplikasi ini terjadi ketika driver tampilan mode pengguna telah mengatur bendera bit-field UseAlternateVA di anggota Bendera struktur D3DDDICB_LOCKFLAGS dalam panggilan ke fungsi pfnLockCb . DxgkCbExcludeAdapterAccess tidak memblokir jenis kunci alokasi ini, dan CPU dapat mengakses adaptor tampilan saat rutinitas panggilan balik yang dilindungi dijalankan.

Catatan Jika UseAlternateVA telah diatur dalam panggilan ke pfnLockCb, driver miniport tampilan tidak boleh memanggil DxgkCbExcludeAdapterAccess.
 

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista
Target Platform Desktop
Header dispmprt.h (termasuk Dispmprt.h)
IRQL PASSIVE_LEVEL

Lihat juga

DxgkProtectedCallback