DXGKDDI_PREEMPTCOMMAND fungsi panggilan balik (d3dkmddi.h)
Fungsi DxgkDdiPreemptCommand mendahului buffer akses memori langsung (DMA) yang sebelumnya dikirimkan ke dan saat ini diantrekan di unit eksekusi perintah perangkat keras.
Sintaks
DXGKDDI_PREEMPTCOMMAND DxgkddiPreemptcommand;
NTSTATUS DxgkddiPreemptcommand(
[in] IN_CONST_HANDLE hAdapter,
[in] IN_CONST_PDXGKARG_PREEMPTCOMMAND pPreemptCommand
)
{...}
Parameter
[in] hAdapter
Handel ke blok konteks yang terkait dengan adaptor tampilan. Driver miniport tampilan sebelumnya menyediakan handel ini ke subsistem kernel grafis Microsoft DirectX di parameter output MiniportDeviceContext dari fungsi DxgkDdiAddDevice .
[in] pPreemptCommand
Penunjuk ke struktur DXGKARG_PREEMPTCOMMAND yang menjelaskan perintah yang digunakan untuk mendahului buffer DMA yang sebelumnya dikirimkan ke unit eksekusi perintah perangkat keras.
Menampilkan nilai
Mengembalikan STATUS_SUCCESS setelah berhasil diselesaikan. Jika driver mengembalikan kode kesalahan, sistem operasi menyebabkan terjadinya bugcheck sistem. Untuk informasi selengkapnya, lihat bagian Keterangan berikut ini.
Keterangan
Jika driver menentukan bahwa perangkat keras sudah selesai memproses semua buffer DMA yang dikirimkan--dan bahwa perangkat keras menginformasikan penjadwal unit pemrosesan grafis (GPU) tentang penyelesaian --ketika fungsi DxgkDdiPreemptCommand dipanggil untuk mendahului buffer DMA, driver harus melakukan operasi berikut alih-alih mengirimkan pagar preempt yang diidentifikasi oleh anggota PreemptionFenceIdDXGKARG_PREEMPTCOMMAND ke perangkat keras:
- Naikkan IRQL ke tingkat interupsi. Misalnya, driver dapat memanggil fungsi DxgkCbSynchronizeExecution untuk disinkronkan dengan fungsi DxgkDdiInterruptRoutine-nya .
-
Beri tahu penjadwal GPU tentang informasi preemption. Driver dapat memanggil fungsi DxgkCbNotifyInterrupt secara langsung atau memanggil fungsi DxgkDdiInterruptRoutine (misalnya, jika driver harus melakukan pembaruan lain juga).
Perhatikan bahwa penjadwal GPU menangani instans tempat perangkat keras berhenti merespons karena Deteksi dan Pemulihan Batas Waktu (TDR) berfungsi.
- 0x2
- Kode kesalahan NTSTATUS yang dikembalikan dari panggilan driver yang gagal
- Penunjuk ke struktur DXGKARG_PREEMPTCOMMAND
- Penunjuk ke struktur data penjadwal internal
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista |
Target Platform | Desktop |
Header | d3dkmddi.h |
IRQL | DISPATCH_LEVEL |