Bagikan melalui


DXGKDDI_SUSPENDCONTEXT fungsi panggilan balik (d3dkmddi.h)

DxgkddiSuspendContext menginstruksikan GPU untuk menangguhkan konteks. Jika GPU tidak mengakui penyelesaian penangguhan dalam batas waktu TDR (deteksi dan pemulihan batas waktu), OS akan mendeteksi batas waktu mesin dan melakukan reset mesin.

Sintaks

DXGKDDI_SUSPENDCONTEXT DxgkddiSuspendcontext;

NTSTATUS DxgkddiSuspendcontext(
  IN_CONST_HANDLE hAdapter,
  IN_CONST_PDXGKARG_SUSPENDCONTEXT pSuspendContext
)
{...}

Parameter

hAdapter

[in] Konteks perangkat keras yang akan didahulukan dan ditandai sebagai ditangguhkan. Jenis permintaan pendahuluan ini tidak memiliki masa tenggang, dan diharapkan untuk dihormati oleh GPU sesegera mungkin.

pSuspendContext

[in] Penunjuk ke struktur DXGKARG_SUSPENDCONTEXT yang berisi argumen tambahan untuk fungsi ini.

Menampilkan nilai

DxgkddiSuspendContext mengembalikan STATUS_SUCCESS jika konteks sudah ditangguhkan pada saat panggilan ini. Jika tidak, nilai ini diatur ke STATUS_PENDING, dan operasi penangguhan akan selesai ketika contextSuspendFence disinyalir melalui gangguan.

Keterangan

Daftarkan implementasi Anda dari fungsi panggilan balik ini dengan mengaturnya di DRIVER_INITIALIZATION_DATA.

Meskipun preemption round robin dapat dimulai oleh GPU, OS masih membutuhkan cara untuk mendahului konteks karena alasan lain; misalnya, jika perlu memindahkan alokasinya atau melakukan transisi daya GPU.

Nilai penangguhan konteks diperlukan untuk menangani kasus ketika OS menangguhkan konteks, tidak menunggu pengakuan yang ditangguhkan, dilanjutkan, dan menangguhkan konteks lagi. Nilai suspensi akan memungkinkan OS membedakan antara pengakuan suspensi sebelumnya dan yang terbaru.

Setelah konteks ditangguhkan, diasumsikan bahwa semua referensi ke dalamnya hilang dari GPU, dan OS bebas untuk menghancurkan konteks atau memindahkan memorinya. Tidak seperti WDDM 2.3 atau yang lebih lama, tidak ada perintah pengalihan konteks NULL terpisah (sebelumnya ditunjukkan oleh bendera ContextSwitch di DxgkDdiSubmitCommandVirtual) ada dalam mode penjadwalan WDDM 2.4, karena DxgkddiSuspendContext seharusnya melakukan pekerjaan ini.

Persyaratan

Persyaratan Nilai
Header d3dkmddi.h

Lihat juga

DxgkddiResumeContext

DXGKARG_SUSPENDCONTEXT