DXGKDDI_DPSBMTRANSMISSION Rückruffunktion (dispmprt.h)

Der DXGKDDI_DPSBMTRANSMISSION Rückruf wird verwendet, um mit DisplayPort-Branchgeräten (DP) und Senkengeräten hinter Branchgeräten über den Seitenbandkanal zu kommunizieren.

Syntax

DXGKDDI_DPSBMTRANSMISSION DxgkddiDpsbmtransmission;

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

Parameter

Context

Kontextzeiger, der beim Abfragen der Schnittstelle bereitgestellt wird.

pArgs

Zeiger auf eine DXGKARG_DPSBMTRANSMISSION-Struktur .

Rückgabewert

DXGKDDI_DPSBMTRANSMISSION gibt bei Erfolg STATUS_SUCCESS zurück. Andernfalls wird ein Fehlercode zurückgegeben, z. B. einer der folgenden:

Fehlercode Bedeutung
STATUS_DRIVER_INTERNAL_ERROR Interner Softwarefehler.
STATUS_ACCESS_DENIED Die Anforderung wird nicht unterstützt. Für Windows 10 Version 2004 werden nur Randbandnachrichtenanforderungen unterstützt, die unten im Abschnitt Hinweise aufgeführt sind.
STATUS_BUFFER_TOO_SMALL Der Puffer ist zu klein für Seitenbandnachrichtenantworten oder andere Vorgänge.
STATUS_DEVICE_HARDWARE_ERROR Ein Hardwarefehler ist aufgetreten.
STATUS_DEVICE_POWERED_OFF Das Gerät ist ausgeschaltet.
STATUS_DEVICE_NOT_CONNECTED Das Gerät ist nicht verbunden
STATUS_DEVICE_PROTOCOL_ERROR Fehler beim DP AUX, I2C über AUX-Protokollebene. Der Treiber kann DPNativeError verwenden, um weitere Details zum Fehler zu codieren.

Hinweise

Für Windows 10 Version 2004 ist ein Treiber nur erforderlich, um die folgenden Abfragetypen von SBM-Anforderungen (Sideband Message) zu unterstützen:

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

Die Anzeigekernlaufzeit blockiert andere SBM-Anforderungen.

Bei einer SBM-Transaktion wird eine Anforderung in geschrieben, und die Antwort wird aus festen DPCD-Bereichen gemäß der DP-Spezifikation (DOWN_REQ und UP_REP) gelesen, sodass kein Adressfeld vorhanden ist.

DXGKDDI_DPSBMTRANSMISSION ist "atomic", sodass der Treiber auf die Antwort der SBM-Anforderung warten und empfangen sollte, bevor er zurückgibt. Die SBM-Anforderung in pArgs-Data> wird vom Aufrufer vollständig paketiert, sodass der Treiber die RequestLength of Data in SBM-Paketgröße sequenziell in den DPCD-Bereich für DOWN_REQ schreiben kann. Der Treiber sollte die SBM-Antwortpakete ohne Verarbeitung/Interpretation direkt in Daten empfangen.

Der Treiber sollte das End_Of_Message Bit im SideBand_MSG_Header verwenden, um zu entscheiden, ob eine vollständige Antwort empfangen wurde, sollte jedoch eine weitere Verarbeitung vermeiden. Daten können eine Antwort auf MaxReplyLength in Bytes enthalten, sodass der Treiber das überlaufende Paket verwerfen muss. Der Treiber sollte die tatsächliche Länge der Antwort in ActualReplyLength zurückgeben.

Der Treiber muss nicht speziell nach einer NAK-Antwort suchen, die vom Aufrufer nur als eine andere ACK-Antwort decodiert wird. Für eine NAK-Antwort sollte der Treiber STATUS_SUCCESS zurückgeben.

MaxReplyLength beträgt mindestens 48 Bytes, was die maximale Größe des Sideband-Nachrichtenpakets ist. Dadurch kann die unformatierte Nachricht direkt für eine einzelne Paketantwort kopiert werden. Bei einer Antwort mit mehreren Paketen wird MaxReplyLength basierend auf einer Paketgröße von 16 Bytes und der längsten relativen Adresse im SBM-Header berechnet, um die Wahrscheinlichkeit eines unzureichenden Puffers zu verringern.

Das CanUseCachedData-Flag gibt an, dass der Treiber zwischengespeicherte Antwortdaten zurückgeben kann, aber es muss im SBM-Paketformat vorliegen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10, Version 2004
Kopfzeile dispmprt.h

Weitere Informationen

DXGKARG_DPSBMTRANSMISSION