Freigeben über


DXGKDDI_I2C_RECEIVE_DATA_FROM_DISPLAY Rückruffunktion (dispmprt.h)

DxgkDdiI2CReceiveDataFromDisplay gibt Daten zurück, die von einem I2C-Gerät in einem Monitor empfangen wurden.

Syntax

DXGKDDI_I2C_RECEIVE_DATA_FROM_DISPLAY DxgkddiI2cReceiveDataFromDisplay;

NTSTATUS DxgkddiI2cReceiveDataFromDisplay(
  [in]  PVOID MiniportDeviceContext,
  [in]  D3DDDI_VIDEO_PRESENT_TARGET_ID VidPnTargetId,
  [in]  ULONG SevenBitI2CAddress,
  [in]  ULONG Flags,
  [in]  ULONG DataLength,
  [out] PVOID Data
)
{...}

Parameter

[in] MiniportDeviceContext

Ein Handle für einen Kontextblock, der einer Grafikkarte zugeordnet ist. Die DxgkDdiAddDevice-Funktion des Display-Miniporttreibers hat dieses Handle zuvor für das Microsoft DirectX-Grafikkernsystem bereitgestellt.

[in] VidPnTargetId

Eine ganze Zahl, die eines der Videoziele identifiziert, die auf der Grafikkarte vorhanden sind.

[in] SevenBitI2CAddress

Die Adresse des I2C-Geräts, von dem Daten empfangen werden.

[in] Flags

Ein -Wert, der angibt, ob die Länge der Daten im Rahmen der vom I2C-Gerät übertragenen Daten angegeben wird. Dieser Parameter muss auf einen der folgenden Werte festgelegt werden.

Wert Bedeutung
I2C_NO_FLAGS Die Datenlänge wird vom DataLength-Parameter bereitgestellt. Das I2C-Gerät gibt die Datenlänge nicht als Teil der übertragenen Daten an.
I2C_DEVICE_TRANSMITS_DATA_LENGTH Die Datenlänge wird vom I2C-Gerät als Teil der übertragenen Daten bereitgestellt. Das I2C-Gerät überträgt mindestens zwei Bytes. Die sieben am wenigsten signifikanten Bits des zweiten übertragenen Byte enthalten die Zwischenlänge. Sie können die Anzahl der Bytes berechnen, die nach dem Byte übertragen werden, das die Zwischenlänge enthält, indem Sie eins zur Zwischenlänge hinzufügen.

[in] DataLength

Die Länge des Puffers in Byte, auf den daten verweist.

[out] Data

Ein Zeiger auf einen Puffer, der die Daten empfängt. Der Puffer kann sich im Auslagerungsspeicher befinden.

Rückgabewert

DxgkDdiI2CReceiveDataFromDisplaygibt bei Erfolg STATUS_SUCCESS zurück. Andernfalls wird einer der in Ntstatus.h definierten Fehlercodes zurückgegeben. Die folgende Liste enthält einige der möglichen Fehlercodes, die zurückgegeben werden können.

Rückgabecode Beschreibung
STATUS_GRAPHICS_MONITOR_NOT_CONNECTED Es ist kein Monitor mit der von VidPnTargetId identifizierten Videoausgabe verbunden.
STATUS_GRAPHICS_I2C_NOT_SUPPORTED Die von VidPnTargetId identifizierte Videoausgabe verfügt nicht über einen I2C-Bus.
STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST Kein Gerät hat die in SevenBitI2CAddress angegebene I2C-Adresse bestätigt. Dies kann bedeuten, dass kein Gerät im I2C-Bus über die angegebene Adresse verfügt oder dass bei der Übertragung der Adresse ein Fehler aufgetreten ist.
STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA Die I2C-Adresse wurde erfolgreich übertragen, aber beim Empfangen von Daten vom I2C-Gerät ist ein Fehler aufgetreten.
STATUS_BUFFER_TOO_SMALL Der in DataLength angegebene Wert ist kleiner als die erforderliche Datenpuffergröße. Dieser Rückgabewert ist nur dann sinnvoll, wenn das flag I2C_DEVICE_TRANSMITS_DATA_LENGTH festgelegt ist.

Hinweise

Das von VidPnTargetId identifizierte Videoziel ist einer der Videoausgaben auf der Grafikkarte zugeordnet. Die Daten werden von einem I2C-Gerät im Monitor empfangen, der mit dieser Videoausgabe verbunden ist.

Die DxgkDdiI2CReceiveDataFromDisplay-Funktion ist für das Signalisieren der I2C-Startbedingung, das Senden der I2C-Adresse, den Empfang der Daten vom I2C-Gerät, das Senden von Bestätigungen und das Signalisieren der Beendigungsbedingung verantwortlich. Ausführliche Informationen zum I2C-Bus finden Sie in der I2C Bus-Spezifikation, die von Philips Semiconductors veröffentlicht wurde. Die Spezifikation definiert ein Protokoll zum Initiieren der I2C-Kommunikation, zum Lesen und Schreiben von Bytes über die I2C-Datenleitung und zum Beenden der I2C-Kommunikation. (Diese Ressource ist in einigen Sprachen möglicherweise nicht verfügbar.

und Länder.)

DxgkDdiI2CReceiveDataFromDisplayist erforderlich, um Daten von einem I2C-Gerät zu empfangen, das über eine Adresse 0x6F verfügt, aber den Empfang von Daten von einem I2C-Gerät mit einer anderen Adresse ablehnen darf.

DxgkDdiI2CReceiveDataFromDisplay darf blockiert werden, wenn ein anderer Teil des Anzeigeminiporttreibers oder der Grafikhardware den I2C-Bus des angegebenen Monitors verwendet. Es ist auch zulässig, zu blockieren, wenn der Anzeige-Miniporttreiber den I2C-Bus zum Senden oder Empfangen von HDCP-Daten (Digital Content Protection) mit hoher Bandbreite verwendet.

Wenn der Grafikkarte HDCP unterstützt, muss DxgkDdiI2CReceiveDataFromDisplay den Empfang von Daten von einem I2C-Gerät ablehnen, wenn das Gerät über eine I2C-Adresse verfügt, die von HDCP verwendet wird.

DxgkDdiI2CReceiveDataFromDisplay darf niemals Daten von einem I2C-Gerät auf der Grafikkarte empfangen. Das heißt, diese Funktion kann Daten von einem I2C-Gerät in einem Monitor empfangen, der mit der Grafikkarte verbunden ist, aber nicht von einem I2C-Gerät, das sich auf der Grafikkarte selbst befindet.

DxgkDdiI2CReceiveDataFromDisplay sollte ausgelagert werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Zielplattform Desktop
Kopfzeile dispmprt.h (include Dispmprt.h)
IRQL PASSIVE_LEVEL

Weitere Informationen

DxgkDdiI2CTransmitDataToDisplay