Bagikan melalui


DXGKDDI_DPSBMTRANSMISSION fungsi panggilan balik (dispmprt.h)

Panggilan balik DXGKDDI_DPSBMTRANSMISSION digunakan untuk berkomunikasi dengan perangkat cabang DisplayPort (DP) dan perangkat sink di belakang perangkat cabang melalui saluran sideband.

Sintaks

DXGKDDI_DPSBMTRANSMISSION DxgkddiDpsbmtransmission;

NTSTATUS DxgkddiDpsbmtransmission(
  HANDLE Context,
  PDXGKARG_DPSBMTRANSMISSION pArgs
)
{...}

Parameter

Context

Penunjuk konteks disediakan saat mengkueri antarmuka.

pArgs

Penunjuk ke struktur DXGKARG_DPSBMTRANSMISSION .

Mengembalikan nilai

DXGKDDI_DPSBMTRANSMISSION mengembalikan STATUS_SUCCESS jika berhasil; jika tidak, ia mengembalikan kode kesalahan seperti salah satu hal berikut:

Kode Kesalahan Makna
STATUS_DRIVER_INTERNAL_ERROR Terjadi kesalahan perangkat lunak internal.
STATUS_ACCESS_DENIED Permintaan tidak didukung. Untuk Windows 10 versi 2004, hanya permintaan Pesan Sideband yang tercantum di bagian Keterangan di bawah ini yang didukung.
STATUS_BUFFER_TOO_SMALL Buffer terlalu kecil untuk balasan pesan Sideband atau operasi lainnya.
STATUS_DEVICE_HARDWARE_ERROR Terjadi kesalahan perangkat keras.
STATUS_DEVICE_POWERED_OFF Perangkat dimatikan.
STATUS_DEVICE_NOT_CONNECTED Perangkat tidak tersambung.
STATUS_DEVICE_PROTOCOL_ERROR Terjadi kesalahan pada DP AUX, I2C melalui tingkat protokol AUX. Driver dapat menggunakan DPNativeError untuk mengodekan detail selengkapnya tentang kesalahan tersebut.

Keterangan

Untuk Windows 10 versi 2004, driver hanya diperlukan untuk mendukung jenis kueri permintaan Sideband Message (SBM) berikut:

  • GET_MESSAGE_TRANSACTION_VERSION
  • LINK_ADDRESS
  • QUERY_PAYLOAD
  • REMOTE_DPCD_READ
  • REMOTE_I2C_READ
  • QUERY_STREAM_ENCRYPTION_STATUS

Runtime kernel tampilan memblokir permintaan SBM lainnya.

Untuk Transaksi SBM, permintaan ditulis ke dan balasan dibaca dari rentang DPCD tetap per spesifikasi DP (DOWN_REQ dan UP_REP), sehingga tidak ada bidang alamat.

DXGKDDI_DPSBMTRANSMISSION adalah "atom", sehingga driver harus menunggu dan menerima balasan permintaan SBM sebelum kembali. Permintaan SBM dalam pArgs-Data> sepenuhnya dikemas oleh pemanggil, sehingga driver dapat langsung menulis RequestLengthdata dalam ukuran paket SBM secara berurutan ke dalam rentang DPCD untuk DOWN_REQ. Driver harus menerima paket balasan SBM langsung ke Data tanpa pemrosesan/interpretasi.

Driver harus menggunakan bit End_Of_Message dalam SideBand_MSG_Header untuk memutuskan apakah balasan penuh telah diterima tetapi harus menghindari pemrosesan lebih lanjut. Data dapat menahan balasan hingga MaxReplyLength dalam byte, sehingga driver perlu membuang paket yang meluap. Driver harus mengembalikan panjang balasan aktual di ActualReplyLength.

Driver tidak perlu secara khusus memeriksa balasan NAK, yang didekodekan oleh pemanggil sama seperti balasan ACK lainnya. Untuk balasan NAK, driver harus mengembalikan STATUS_SUCCESS.

MaxReplyLength setidaknya 48 byte, yang merupakan ukuran paket Pesan Sideband maksimum. Ini memungkinkan pesan mentah disalin langsung untuk satu balasan paket. Untuk balasan dengan beberapa paket, MaxReplyLength dihitung berdasarkan ukuran paket 16 byte dan Alamat Relatif terpanjang di header SBM untuk menurunkan kemungkinan buffer yang tidak mencukupi.

Bendera CanUseCachedData menunjukkan bahwa driver dapat mengembalikan data balasan yang di-cache, tetapi harus dalam format paket SBM.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 10, version 2004
Header dispmprt.h

Lihat juga

DXGKARG_DPSBMTRANSMISSION