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 |