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.

Jika driver mengembalikan kode kesalahan, subsistem kernel grafis Microsoft DirectX menyebabkan terjadinya bugcheck sistem. Dalam file crash dump, kesalahan dicatat oleh pesan BugCheck 0x119, yang memiliki empat parameter berikut.
  1. 0x2
  2. Kode kesalahan NTSTATUS yang dikembalikan dari panggilan driver yang gagal
  3. Penunjuk ke struktur DXGKARG_PREEMPTCOMMAND
  4. Penunjuk ke struktur data penjadwal internal
DxgkDdiPreemptCommand harus dibuat tidak dapat dihapus karena berjalan di IRQL = DISPATCH_LEVEL

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista
Target Platform Desktop
Header d3dkmddi.h
IRQL DISPATCH_LEVEL

Lihat juga

DXGKARG_PREEMPTCOMMAND

DxgkCbNotifyInterrupt

DxgkCbSynchronizeExecution

DxgkDdiAddDevice

DxgkDdiInterruptRoutine