Freigeben über


DXGKDDI_DPSBMTRANSMISSION Rückruffunktion (dispmprt.h)

Der DXGKDDI_DPSBMTRANSMISSION Rückruf wird verwendet, um mit DisplayPort(DP)-Zweiggeräten und Sinkgeräten hinter Zweiggeräten über den Sidebandkanal 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 STATUS_SUCCESS zurück, wenn dies erfolgreich ist; andernfalls wird ein Fehlercode zurückgegeben, z. B. einer der folgenden:

Fehlercode Bedeutung
STATUS_DRIVER_INTERNAL_ERROR Es ist ein interner Softwarefehler aufgetreten.
STATUS_ACCESS_DENIED Die Anforderung wird nicht unterstützt. Für Windows 10, Version 2004, werden nur sideband message requests listed in the Remarks section below are supported.
STATUS_BUFFER_TOO_SMALL Der Puffer ist zu klein für die Sideband-Nachrichtenantwort 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.

Bemerkungen

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

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

Die Anzeige kernellaufzeit blockiert andere SBM-Anforderungen.

Bei einer SBM-Transaktion wird eine Anforderung in feste DPCD-Bereiche pro DP-Spezifikation (DOWN_REQ und UP_REP) geschrieben und beantwortet, sodass kein Adressfeld vorhanden ist.

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

Der Treiber sollte das End_Of_Message Bit in der SideBand_MSG_Header verwenden, um zu entscheiden, ob eine vollständige Antwort empfangen wurde, aber eine weitere Verarbeitung vermeiden sollte. Data kann eine Antwort auf MaxReplyLength- in Bytes enthalten, sodass der Treiber das Überlaufpaket verwerfen muss. Der Treiber sollte die tatsächliche Länge der Antwort in ActualReplyLength-zurückgeben.

Der Treiber muss nicht explizit nach einer NAK-Antwort suchen, die vom Anrufer wie eine andere ACK-Antwort decodiert wird. Bei einer NAK-Antwort sollte der Treiber STATUS_SUCCESS zurückgeben.

Die MaxReplyLength- beträgt mindestens 48 Byte, 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 Möglichkeit eines unzureichenden Puffers zu verringern.

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

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 10, Version 2004
Header- dispmprt.h

Siehe auch

DXGKARG_DPSBMTRANSMISSION