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 |