DXGKDDI_I2C_RECEIVE_DATA_FROM_DISPLAY fonction de rappel (dispmprt.h)

Le DxgkDdiI2CReceiveDataFromDisplay retourne les données reçues d’un appareil I2C dans un moniteur.

Syntaxe

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
)
{...}

Paramètres

[in] MiniportDeviceContext

Handle vers un bloc de contexte associé à un adaptateur d’affichage. La fonction DxgkDdiAddDevice du pilote miniport d’affichage a précédemment fourni ce handle au sous-système du noyau graphique Microsoft DirectX.

[in] VidPnTargetId

Entier qui identifie l’une des cibles de la vidéo présente sur l’adaptateur d’affichage.

[in] SevenBitI2CAddress

Adresse de l’appareil I2C à partir duquel les données seront reçues.

[in] Flags

Valeur qui spécifie si la longueur des données est fournie dans le cadre des données transmises par l’appareil I2C. Ce paramètre doit être défini sur l’une des valeurs suivantes.

Valeur Signification
I2C_NO_FLAGS La longueur des données est fournie par le paramètre DataLength. L’appareil I2C ne fournit pas la longueur des données dans le cadre des données qu’il transmet.
I2C_DEVICE_TRANSMITS_DATA_LENGTH La longueur des données est fournie par l’appareil I2C dans le cadre des données qu’il transmet. L’appareil I2C transmet au moins deux octets. Les sept bits les moins significatifs du deuxième octet transmis contiennent la longueur intermédiaire. Vous pouvez calculer le nombre d’octets qui seront transmis après l’octet qui contient la longueur intermédiaire en ajoutant un octet à la longueur intermédiaire.

[in] DataLength

Longueur, en octets, de la mémoire tampon pointée par Data.

[out] Data

Pointeur vers une mémoire tampon qui reçoit les données. La mémoire tampon peut être en mémoire paginée.

Valeur retournée

DxgkDdiI2CReceiveDataFromDisplayretourne STATUS_SUCCESS si elle réussit. Sinon, elle retourne l’un des codes d’erreur définis dans Ntstatus.h. La liste suivante fournit certains des codes d’erreur possibles qui peuvent être retournés.

Code de retour Description
STATUS_GRAPHICS_MONITOR_NOT_CONNECTED Aucun moniteur n’est connecté à la sortie vidéo identifiée par VidPnTargetId.
STATUS_GRAPHICS_I2C_NOT_SUPPORTED La sortie vidéo identifiée par VidPnTargetId n’a pas de bus I2C.
STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST Aucun appareil n’a reconnu l’adresse I2C fournie dans SevenBitI2CAddress. Cela peut signifier qu’aucun appareil du bus I2C n’a l’adresse spécifiée ou qu’une erreur s’est produite lors de la transmission de l’adresse.
STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA L’adresse I2C a été correctement transmise, mais une erreur s’est produite lors de la réception des données de l’appareil I2C.
STATUS_BUFFER_TOO_SMALL La valeur fournie dans DataLength est inférieure à la taille de mémoire tampon de données requise. Cette valeur de retour n’est significative que si l’indicateur I2C_DEVICE_TRANSMITS_DATA_LENGTH est défini.

Remarques

La cible de présentation vidéo identifiée par VidPnTargetId est associée à l’une des sorties vidéo sur la carte graphique. Les données sont reçues à partir d’un appareil I2C dans le moniteur connecté à cette sortie vidéo.

La fonction DxgkDdiI2CReceiveDataFromDisplay est chargée de signaler la condition de début I2C, d’envoyer l’adresse I2C, de recevoir les données de l’appareil I2C, d’envoyer des accusés de réception et de signaler la condition d’arrêt. Pour plus d’informations sur le bus I2C, consultez la spécification du bus I2C, publiée par Philips Semiconductors. La spécification définit un protocole pour lancer la communication I2C, lire et écrire des octets sur la ligne de données I2C et mettre fin à la communication I2C. (Cette ressource peut ne pas être disponible dans certaines langues

et pays.)

DxgkDdiI2CReceiveDataFromDisplayest requis pour recevoir des données d’un appareil I2C qui a une adresse 0x6F mais qui est autorisé à refuser de recevoir des données de tout appareil I2C ayant une adresse différente.

DxgkDdiI2CReceiveDataFromDisplay est autorisé à se bloquer si une autre partie du pilote miniport d’affichage ou du matériel graphique utilise le bus I2C du moniteur spécifié. Il est également autorisé à se bloquer si le pilote de miniport d’affichage utilise le bus I2C pour envoyer ou recevoir des données HDCP (Protection numérique de contenu haute bande passante).

Si la carte graphique prend en charge HDCP, DxgkDdiI2CReceiveDataFromDisplay doit refuser de recevoir des données d’un appareil I2C si l’appareil a une adresse I2C utilisée par HDCP.

DxgkDdiI2CReceiveDataFromDisplay ne doit jamais recevoir de données d’un appareil I2C sur la carte graphique. Autrement dit, cette fonction peut recevoir des données à partir d’un appareil I2C dans un moniteur connecté à l’adaptateur graphique, mais pas à partir d’un appareil I2C qui se trouve sur l’adaptateur d’affichage lui-même.

DxgkDdiI2CReceiveDataFromDisplay doit être rendu paginable.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows.
Plateforme cible Desktop (Expérience utilisateur)
En-tête dispmprt.h (include Dispmprt.h)
IRQL PASSIVE_LEVEL

Voir aussi

DxgkDdiI2CTransmitDataToDisplay