DXGKDDI_I2C_RECEIVE_DATA_FROM_DISPLAY Rückruffunktion (dispmprt.h)

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

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-Miniport-Treibers hat zuvor dieses Handle für das Microsoft DirectX-Grafik-Kernel-Subsystem bereitgestellt.

[in] VidPnTargetId

Eine ganze Zahl, die einen der video vorhandenen Ziele auf dem Anzeigeadapter identifiziert.

[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 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 daten an, die er sendet.
I2C_DEVICE_TRANSMITS_DATA_LENGTH Die Datenlänge wird vom I2C-Gerät als Teil der daten bereitgestellt, die sie übermittelt. Das I2C-Gerät sendet mindestens zwei Bytes. Die sieben wichtigsten Bits des zweiten byte ü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 eine zu der Zwischenlänge hinzufügen.

[in] DataLength

Die Länge in Bytes des Puffers, auf den Daten verwiesen wird.

[out] Data

Ein Zeiger auf einen Puffer, der die Daten empfängt. Der Puffer kann im seitenseitigen Arbeitsspeicher enthalten sein.

Rückgabewert

DxgkDdiI2CReceiveDataFromDisplaygibt STATUS_SUCCESS zurück, wenn es erfolgreich ist. Andernfalls gibt es einen der in Ntstatus.h definierten Fehlercodes zurück. 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 gibt keinen Monitor, der mit der von VidPnTargetId identifizierten Videoausgabe verbunden ist.
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 bereitgestellte I2C-Adresse bestätigt. Dies könnte bedeuten, dass kein Gerät auf dem I2C-Bus die angegebene Adresse hat oder dass ein Fehler aufgetreten ist, wenn die Adresse übertragen wurde.
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 angegebene Wert ist kleiner als die erforderliche Datenpuffergröße. Dieser Rückgabewert ist nur sinnvoll, wenn das I2C_DEVICE_TRANSMITS_DATA_LENGTH Flag festgelegt ist.

Bemerkungen

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

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

und Länder.)

DxgkDdiI2CReceiveDataFromDisplayist erforderlich, um Daten von einem I2C-Gerät zu empfangen, das 0x6F hat, aber erlaubt ist, Daten von jedem I2C-Gerät zu empfangen, das eine andere Adresse hat.

DxgkDdiI2CReceiveDataFromDisplay ist berechtigt, zu blockieren, wenn ein anderer Teil des Display-Miniport-Treibers oder der Grafikhardware den I2C-Bus des angegebenen Monitors verwendet. Es ist auch zulässig, zu blockieren, wenn der Display-Miniport-Treiber den I2C-Bus verwendet, um Daten mit hoher Bandbreite Digital Content Protection (HDCP) zu senden oder zu empfangen.

Wenn der Anzeigeadapter HDCP unterstützt, muss DxgkDdiI2CReceiveDataFromDisplay ablehnen, daten von einem I2C-Gerät zu empfangen, 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 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 selbst auf dem Displayadapter befindet.

DxgkDdiI2CReceiveDataFromDisplay sollte pageable gemacht werden.

Anforderungen

   
Unterstützte Mindestversion (Client) Verfügbar in Windows Vista und späteren Versionen der Windows-Betriebssysteme.
Zielplattform Power BI Desktop
Header dispmprt.h (enthalten Dispmprt.h)
IRQL PASSIVE_LEVEL

Weitere Informationen

DxgkDdiI2CTransmitDataToDisplay