Freigeben über


DXGKDDI_I2C_RECEIVE_DATA_FROM_DISPLAY Rückruffunktion (dispmprt.h)

Die DxgkDdiI2CReceiveDataFromDisplay daten zurückgibt, 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 zu einem Kontextblock, der einem Anzeigeadapter zugeordnet ist. Die DxgkDdiAddDevice-Funktion des Display-Miniporttreibers stellt dieses Handle zuvor für das Microsoft DirectX-Grafik-Kernel-Subsystem bereit.

[in] VidPnTargetId

Eine ganze Zahl, die einen der Videodaten identifiziert, die auf dem Grafikkartenziel 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 als Teil der vom I2C-Gerät übertragenen Daten bereitgestellt 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 liefert die Datenlänge nicht als Teil der übertragenen Daten.
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 übertragenen zweiten 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 eine zur Zwischenlänge hinzufügen.

[in] DataLength

Die Länge des Puffers in Bytes, auf den Dataverweist.

[out] Data

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

Rückgabewert

DxgkDdiI2CReceiveDataFromDisplaygibt STATUS_SUCCESS zurück, wenn dies erfolgreich ist. Andernfalls wird eine der fehlercodes zurückgegeben, die in ntstatus.hdefiniert sind. 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 auf dem I2C-Bus die angegebene Adresse hat oder dass beim Übertragen der Adresse ein Fehler aufgetreten ist.
STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA Die I2C-Adresse wurde erfolgreich übertragen, aber es gab einen Fehler beim Empfangen von Daten vom I2C-Gerät.
STATUS_BUFFER_TOO_SMALL Der in DataLength bereitgestellte Wert ist kleiner als die erforderliche Datenpuffergröße. Dieser Rückgabewert ist nur dann sinnvoll, wenn das I2C_DEVICE_TRANSMITS_DATA_LENGTH Flag festgelegt ist.

Bemerkungen

Das video present target identified by VidPnTargetId is associated with one of the video outputs on the display adapter. Die Daten werden von einem I2C-Gerät auf dem Monitor empfangen, der mit dieser Videoausgabe verbunden ist.

DxgkDdiI2CReceiveDataFromDisplay Funktion ist verantwortlich für die Signalisierung der I2C-Startbedingung, senden der I2C-Adresse, Empfangen der Daten vom I2C-Gerät, Senden von Bestätigungen und Signalisieren der Stoppbedingung. Details zum I2C-Bus finden Sie in der I2C Bus Specification, veröffentlicht von Philips Semiconductors. Die Spezifikation definiert ein Protokoll zum Initiieren der I2C-Kommunikation, zum Lesen und Schreiben von Bytes über die I2C-Datenzeile und zum Beenden der I2C-Kommunikation. (Diese Ressource ist in einigen Sprachen möglicherweise nicht verfügbar.

und Länder.)

DxgkDdiI2CReceiveDataFromDisplay-ist erforderlich, um Daten von einem I2C-Gerät zu empfangen, das die Adresse 0x6F hat, aber das Empfangen von Daten von jedem I2C-Gerät mit einer anderen Adresse verweigern darf.

DxgkDdiI2CReceiveDataFromDisplay kann blockiert werden, wenn ein anderer Teil des Display Miniporttreibers oder der Grafikhardware den I2C-Bus des angegebenen Monitors verwendet. Es ist auch erlaubt, zu blockieren, wenn der Display-Miniporttreiber den I2C-Bus zum Senden oder Empfangen von HDCP-Daten (High-Bandwidth Digital Content Protection) verwendet.

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

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

DxgkDdiI2CReceiveDataFromDisplay sollte seitenfähig gemacht werden.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Vista
Zielplattform- Desktop
Header- dispmprt.h (include Dispmprt.h)
IRQL- PASSIVE_LEVEL

Siehe auch

DxgkDdiI2CTransmitDataToDisplay