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 |