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 |